Bug#1054704: haskell-what4: FTBFS: make: *** [/usr/share/cdbs/1/class/hlibrary.mk:163: check-ghc-stamp] Error 25
Lucas Nussbaum
lucas at debian.org
Fri Oct 27 20:13:19 BST 2023
Source: haskell-what4
Version: 1.5.1-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20231027 ftbfs-trixie
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> fakeroot debian/rules binary
> test -x debian/rules
> dh_testroot
> dh_prep
> dh_installdirs -A
> mkdir -p "."
> CDBS WARNING: DEB_DH_STRIP_ARGS is deprecated since 0.4.85
> CDBS WARNING: DEB_COMPRESS_EXCLUDE is deprecated since 0.4.85
> Adding cdbs dependencies to debian/libghc-what4-doc.substvars
> dh_installdirs -plibghc-what4-doc \
>
> perl -d:Confess -MDebian::Debhelper::Buildsystem::Haskell::Recipes=/.*/ \
> -E 'check_recipe'
> Running dh_listpackages
> libghc-what4-dev
> libghc-what4-prof
> libghc-what4-doc
> haskell-what4-utils
> Running 10 test suites...
> Test suite config-test: RUNNING...
> ConfigTests
> Set and get
> create multiple options: OK
> create conflicting options: OK
> create conflicting options at different levels: OK
> create duplicate unicode options: OK
> get unset value, no default: OK
> get unset string opt
> get unset integer opt
> get unset bool opt
> get unset value, with default: OK
> get unset default string opt
> get unset default integer opt
> get unset default bool opt
> get set value, with default: OK
> set string opt
> set bool opt
> set integer opt
> get string opt
> get integer opt
> get bool opt
> set invalid values: OK
> initial defaults
> set string opt invalidly
> set integer opt invalidly
> set real opt invalidly
> get and set option values by name: OK
> getting with a Some OptionSetter requires type verification
> setting using special setting functions
> verify set values
> cannot set values with wrong types
> get multiple values at once: OK
> set string opt
> set bool opt
> set alt int opt
> get main config values
> get all config values
> get specific config value
> get unknown config value
> Deprecated Configs
> deprecation removal (case #1): OK
> deprecation rename (case #2): OK
> deprecation rename (case #2), wrong order: OK
> deprecation rename and re-typed (case #3): OK
> deprecation, multiple replacements (case #4): OK
> deprecation, multiple + removed/split (case #4,(#1,#3)): OK
> Config help
> builtin-only config help: OK
> three item (1 deprecated) config help: OK
> all help
> sub help
> specific help
> specific sub help
>
> All 18 tests passed (0.00s)
> Test suite config-test: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-config-test.log
> Test suite what4-serialize-tests: RUNNING...
>
>
> Writing logs to /tmp/brittle/log3008316-0.txt
>
> What4
> SymFns
> same argument type: OK
> ✓ same argument type passed 1 test.
> different argument types: OK
> ✓ different argument types passed 1 test.
> no arguments: OK
> ✓ no arguments passed 1 test.
> two inner arguments: OK
> ✓ two inner arguments passed 1 test.
> argument passthrough: OK
> ✓ argument passthrough passed 1 test.
> negative ints: OK
> ✓ negative ints passed 1 test.
> float lit: OK
> ✓ float lit passed 1 test.
> simple struct: OK
> ✓ simple struct passed 1 test.
> struct field access: OK
> ✓ struct field access passed 1 test.
> array update: OK
> ✓ array update passed 1 test.
> integer to bitvector: OK
> ✓ integer to bitvector passed 1 test.
> float negate: OK
> ✓ float negate passed 1 test.
> float abs: OK
> ✓ float abs passed 1 test.
> same argument type: OK
> ✓ same argument type passed 1 test.
> different argument types: OK
> ✓ different argument types passed 1 test.
> no arguments: OK (0.01s)
> ✓ no arguments passed 1 test.
> two inner arguments: OK
> ✓ two inner arguments passed 1 test.
> argument passthrough: OK
> ✓ argument passthrough passed 1 test.
> negative ints: OK
> ✓ negative ints passed 1 test.
> float lit: OK
> ✓ float lit passed 1 test.
> simple struct: OK
> ✓ simple struct passed 1 test.
> struct field access: OK
> ✓ struct field access passed 1 test.
> array update: OK
> ✓ array update passed 1 test.
> integer to bitvector: OK
> ✓ integer to bitvector passed 1 test.
> float negate: OK
> ✓ float negate passed 1 test.
> float abs: OK
> ✓ float abs passed 1 test.
>
> All 26 tests passed (0.15s)
> Test suite what4-serialize-tests: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-what4-serialize-tests.log
> Test suite template_tests: RUNNING...
> ━━━ Float tests ━━━
> ✗ FloatFromBits <var> failed at test/TestTemplate.hs:646:64
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ┃ │ ━━━ Exception (RunawaySolverTimeout) ━━━
> ┃ │ RunawaySolverTimeout
> 647 ┃ do annotateShow (printSymExpr expr)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> 657 ┃ Right b -> if b then success else failure
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FloatFromBits <var>
>
> ✗ FloatToBits <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatToBinary c at 2:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 2:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0x0:[32]
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FloatToBits <var>
>
> ✗ FloatCast FloatingPointPrecisionRepr 8 24 RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatCast RNE c at 4:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 4:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FloatCast FloatingPointPrecisionRepr 8 24 RNE <var>
>
> ✗ FloatCast FloatingPointPrecisionRepr 11 53 RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatCast RNE c at 6:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 6:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FloatCast FloatingPointPrecisionRepr 11 53 RNE <var>
>
> ✗ FloatToReal <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatToReal c at 8:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 8:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 % 1
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FloatToReal <var>
>
> ✗ RealToFloat FloatingPointPrecisionRepr 8 24 RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ realToFloat RNE c at 10:r
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 10:r |-> 0 % 1
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" RealToFloat FloatingPointPrecisionRepr 8 24 RNE <var>
>
> ✗ BVToFloat FloatingPointPrecisionRepr 8 24 RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ bvToFloat RNE c at 12:bv
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 12:bv |-> 0x0:[32]
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" BVToFloat FloatingPointPrecisionRepr 8 24 RNE <var>
>
> ✗ SBVToFloat FloatingPointPrecisionRepr 8 24 RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ sbvToFloat RNE c at 14:bv
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 14:bv |-> 0x0:[32]
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" SBVToFloat FloatingPointPrecisionRepr 8 24 RNE <var>
>
> ✗ FloatToBV 32 RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatToBV RNE c at 16:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 16:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0x0:[32]
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FloatToBV 32 RNE <var>
>
> ✗ FloatToSBV32 RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatToSBV RNE c at 18:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 18:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0x0:[32]
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FloatToSBV32 RNE <var>
>
> ✗ FIsNaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsNaN c at 20:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 20:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FIsNaN <var>
>
> ✗ FIsNaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNaN +0.0
>
> ✗ FIsNaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNaN -0.0
>
> ✗ FIsNaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNaN NaN
>
> ✗ FIsInf <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsInf c at 22:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 22:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FIsInf <var>
>
> ✗ FIsInf +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsInf +0.0
>
> ✗ FIsInf -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsInf -0.0
>
> ✗ FIsInf NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsInf NaN
>
> ✗ FIsZero <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsZero c at 24:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 24:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FIsZero <var>
>
> ✗ FIsZero +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsZero +0.0
>
> ✗ FIsZero -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsZero -0.0
>
> ✗ FIsZero NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsZero NaN
>
> ✗ FIsPos <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsPos c at 26:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 26:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FIsPos <var>
>
> ✗ FIsPos +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsPos +0.0
>
> ✗ FIsPos -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsPos -0.0
>
> ✗ FIsPos NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsPos NaN
>
> ✗ FIsNeg <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsNeg c at 28:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 28:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FIsNeg <var>
>
> ✗ FIsNeg +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNeg +0.0
>
> ✗ FIsNeg -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNeg -0.0
>
> ✗ FIsNeg NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNeg NaN
>
> ✗ FIsSubnorm <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsSubnorm c at 30:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 30:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FIsSubnorm <var>
>
> ✗ FIsSubnorm +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsSubnorm +0.0
>
> ✗ FIsSubnorm -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsSubnorm -0.0
>
> ✗ FIsSubnorm NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsSubnorm NaN
>
> ✗ FIsNorm <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsNorm c at 32:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 32:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FIsNorm <var>
>
> ✗ FIsNorm +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNorm +0.0
>
> ✗ FIsNorm -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNorm -0.0
>
> ✗ FIsNorm NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FIsNorm NaN
>
> ✗ FLogicEq <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ eq c at 34:f c at 35:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 34:f |-> 0 0x0
> ┃ │ c at 35:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FLogicEq <var> <var>
>
> ✗ FLogicEq <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ eq c at 37:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 37:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicEq <var> +0.0
>
> ✗ FLogicEq <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ eq c at 39:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 39:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicEq <var> -0.0
>
> ✗ FLogicEq <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ eq c at 41:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 41:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicEq <var> NaN
>
> ✗ FLogicEq +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ eq 0 c at 43:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 43:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicEq +0.0 <var>
>
> ✗ FLogicEq +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq +0.0 +0.0
>
> ✗ FLogicEq +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq +0.0 -0.0
>
> ✗ FLogicEq +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq +0.0 NaN
>
> ✗ FLogicEq -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ eq -0 c at 45:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 45:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicEq -0.0 <var>
>
> ✗ FLogicEq -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq -0.0 +0.0
>
> ✗ FLogicEq -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq -0.0 -0.0
>
> ✗ FLogicEq -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq -0.0 NaN
>
> ✗ FLogicEq NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ eq NaN c at 47:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 47:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicEq NaN <var>
>
> ✗ FLogicEq NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq NaN +0.0
>
> ✗ FLogicEq NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq NaN -0.0
>
> ✗ FLogicEq NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicEq NaN NaN
>
> ✗ FLogicNeq <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (eq c at 49:f c at 50:f)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 49:f |-> 0 0x0
> ┃ │ c at 50:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FLogicNeq <var> <var>
>
> ✗ FLogicNeq <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (eq c at 53:f 0)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 53:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicNeq <var> +0.0
>
> ✗ FLogicNeq <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (eq c at 56:f -0)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 56:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicNeq <var> -0.0
>
> ✗ FLogicNeq <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (eq c at 59:f NaN)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 59:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicNeq <var> NaN
>
> ✗ FLogicNeq +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (eq 0 c at 62:f)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 62:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicNeq +0.0 <var>
>
> ✗ FLogicNeq +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq +0.0 +0.0
>
> ✗ FLogicNeq +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq +0.0 -0.0
>
> ✗ FLogicNeq +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq +0.0 NaN
>
> ✗ FLogicNeq -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (eq -0 c at 65:f)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 65:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicNeq -0.0 <var>
>
> ✗ FLogicNeq -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq -0.0 +0.0
>
> ✗ FLogicNeq -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq -0.0 -0.0
>
> ✗ FLogicNeq -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq -0.0 NaN
>
> ✗ FLogicNeq NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (eq NaN c at 68:f)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 68:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLogicNeq NaN <var>
>
> ✗ FLogicNeq NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq NaN +0.0
>
> ✗ FLogicNeq NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq NaN -0.0
>
> ✗ FLogicNeq NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLogicNeq NaN NaN
>
> ✗ FEq <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFpEq c at 71:f c at 72:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 71:f |-> 0 0x0
> ┃ │ c at 72:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FEq <var> <var>
>
> ✗ FEq <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFpEq c at 74:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 74:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FEq <var> +0.0
>
> ✗ FEq <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFpEq c at 76:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 76:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FEq <var> -0.0
>
> ✗ FEq <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFpEq c at 78:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 78:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FEq <var> NaN
>
> ✗ FEq +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFpEq 0 c at 80:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 80:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FEq +0.0 <var>
>
> ✗ FEq +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq +0.0 +0.0
>
> ✗ FEq +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq +0.0 -0.0
>
> ✗ FEq +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq +0.0 NaN
>
> ✗ FEq -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFpEq -0 c at 82:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 82:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FEq -0.0 <var>
>
> ✗ FEq -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq -0.0 +0.0
>
> ✗ FEq -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq -0.0 -0.0
>
> ✗ FEq -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq -0.0 NaN
>
> ✗ FEq NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFpEq NaN c at 84:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 84:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FEq NaN <var>
>
> ✗ FEq NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq NaN +0.0
>
> ✗ FEq NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq NaN -0.0
>
> ✗ FEq NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FEq NaN NaN
>
> ✗ FApart <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v90 = and (not (floatLt c at 86:f c at 87:f)) (not (floatLt c at 87:f c at 86:f))
> ┃ │ in not v90
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 86:f |-> 0 0x0
> ┃ │ c at 87:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FApart <var> <var>
>
> ✗ FApart <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (and (not (floatLt c at 92:f 0)) (not (floatLt 0 c at 92:f)))
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 92:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FApart <var> +0.0
>
> ✗ FApart <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (and (not (floatLt c at 97:f -0)) (not (floatLt -0 c at 97:f)))
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 97:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FApart <var> -0.0
>
> ✗ FApart <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (and (not (floatLt c at 102:f NaN)) (not (floatLt NaN c at 102:f)))
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 102:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FApart <var> NaN
>
> ✗ FApart +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (and (not (floatLt 0 c at 107:f)) (not (floatLt c at 107:f 0)))
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 107:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FApart +0.0 <var>
>
> ✗ FApart +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart +0.0 +0.0
>
> ✗ FApart +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart +0.0 -0.0
>
> ✗ FApart +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart +0.0 NaN
>
> ✗ FApart -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (and (not (floatLt -0 c at 112:f)) (not (floatLt c at 112:f -0)))
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 112:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FApart -0.0 <var>
>
> ✗ FApart -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart -0.0 +0.0
>
> ✗ FApart -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart -0.0 -0.0
>
> ✗ FApart -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart -0.0 NaN
>
> ✗ FApart NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (and (not (floatLt NaN c at 117:f)) (not (floatLt c at 117:f NaN)))
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 117:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FApart NaN <var>
>
> ✗ FApart NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart NaN +0.0
>
> ✗ FApart NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart NaN -0.0
>
> ✗ FApart NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FApart NaN NaN
>
> ✗ FUnordered <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ not (and (not (floatIsNaN c at 122:f)) (not (floatIsNaN c at 123:f)))
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 122:f |-> 0 0x0
> ┃ │ c at 123:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FUnordered <var> <var>
>
> ✗ FUnordered <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsNaN c at 128:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 128:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FUnordered <var> +0.0
>
> ✗ FUnordered <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsNaN c at 130:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 130:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FUnordered <var> -0.0
>
> ✗ FUnordered <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 132:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FUnordered <var> NaN
>
> ✗ FUnordered +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsNaN c at 134:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 134:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FUnordered +0.0 <var>
>
> ✗ FUnordered +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered +0.0 +0.0
>
> ✗ FUnordered +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered +0.0 -0.0
>
> ✗ FUnordered +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered +0.0 NaN
>
> ✗ FUnordered -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatIsNaN c at 136:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 136:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FUnordered -0.0 <var>
>
> ✗ FUnordered -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered -0.0 +0.0
>
> ✗ FUnordered -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered -0.0 -0.0
>
> ✗ FUnordered -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered -0.0 NaN
>
> ✗ FUnordered NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 138:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FUnordered NaN <var>
>
> ✗ FUnordered NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered NaN +0.0
>
> ✗ FUnordered NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered NaN -0.0
>
> ✗ FUnordered NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FUnordered NaN NaN
>
> ✗ FLe <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 140:f c at 141:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 140:f |-> 0 0x0
> ┃ │ c at 141:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FLe <var> <var>
>
> ✗ FLe <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 143:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 143:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLe <var> +0.0
>
> ✗ FLe <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 145:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 145:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLe <var> -0.0
>
> ✗ FLe <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 147:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 147:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLe <var> NaN
>
> ✗ FLe +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe 0 c at 149:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 149:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLe +0.0 <var>
>
> ✗ FLe +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe +0.0 +0.0
>
> ✗ FLe +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe +0.0 -0.0
>
> ✗ FLe +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe +0.0 NaN
>
> ✗ FLe -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe -0 c at 151:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 151:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLe -0.0 <var>
>
> ✗ FLe -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe -0.0 +0.0
>
> ✗ FLe -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe -0.0 -0.0
>
> ✗ FLe -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe -0.0 NaN
>
> ✗ FLe NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe NaN c at 153:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 153:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLe NaN <var>
>
> ✗ FLe NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe NaN +0.0
>
> ✗ FLe NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe NaN -0.0
>
> ✗ FLe NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLe NaN NaN
>
> ✗ FLt <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 155:f c at 156:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 155:f |-> 0 0x0
> ┃ │ c at 156:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FLt <var> <var>
>
> ✗ FLt <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 158:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 158:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLt <var> +0.0
>
> ✗ FLt <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 160:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 160:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLt <var> -0.0
>
> ✗ FLt <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 162:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 162:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLt <var> NaN
>
> ✗ FLt +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt 0 c at 164:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 164:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLt +0.0 <var>
>
> ✗ FLt +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt +0.0 +0.0
>
> ✗ FLt +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt +0.0 -0.0
>
> ✗ FLt +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt +0.0 NaN
>
> ✗ FLt -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt -0 c at 166:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 166:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLt -0.0 <var>
>
> ✗ FLt -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt -0.0 +0.0
>
> ✗ FLt -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt -0.0 -0.0
>
> ✗ FLt -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt -0.0 NaN
>
> ✗ FLt NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt NaN c at 168:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 168:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FLt NaN <var>
>
> ✗ FLt NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt NaN +0.0
>
> ✗ FLt NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt NaN -0.0
>
> ✗ FLt NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FLt NaN NaN
>
> ✗ FGe <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 171:f c at 170:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 170:f |-> 0 0x0
> ┃ │ c at 171:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FGe <var> <var>
>
> ✗ FGe <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe 0 c at 173:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 173:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGe <var> +0.0
>
> ✗ FGe <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe -0 c at 175:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 175:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGe <var> -0.0
>
> ✗ FGe <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe NaN c at 177:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 177:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGe <var> NaN
>
> ✗ FGe +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 179:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 179:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGe +0.0 <var>
>
> ✗ FGe +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe +0.0 +0.0
>
> ✗ FGe +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe +0.0 -0.0
>
> ✗ FGe +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe +0.0 NaN
>
> ✗ FGe -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 181:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 181:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGe -0.0 <var>
>
> ✗ FGe -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe -0.0 +0.0
>
> ✗ FGe -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ true
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ True
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe -0.0 -0.0
>
> ✗ FGe -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe -0.0 NaN
>
> ✗ FGe NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLe c at 183:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 183:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGe NaN <var>
>
> ✗ FGe NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe NaN +0.0
>
> ✗ FGe NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe NaN -0.0
>
> ✗ FGe NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGe NaN NaN
>
> ✗ FGt <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 186:f c at 185:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 185:f |-> 0 0x0
> ┃ │ c at 186:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FGt <var> <var>
>
> ✗ FGt <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt 0 c at 188:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 188:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGt <var> +0.0
>
> ✗ FGt <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt -0 c at 190:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 190:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGt <var> -0.0
>
> ✗ FGt <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt NaN c at 192:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 192:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGt <var> NaN
>
> ✗ FGt +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 194:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 194:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGt +0.0 <var>
>
> ✗ FGt +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt +0.0 +0.0
>
> ✗ FGt +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt +0.0 -0.0
>
> ✗ FGt +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt +0.0 NaN
>
> ✗ FGt -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 196:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 196:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGt -0.0 <var>
>
> ✗ FGt -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt -0.0 +0.0
>
> ✗ FGt -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt -0.0 -0.0
>
> ✗ FGt -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt -0.0 NaN
>
> ✗ FGt NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatLt c at 198:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 198:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FGt NaN <var>
>
> ✗ FGt NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt NaN +0.0
>
> ✗ FGt NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt NaN -0.0
>
> ✗ FGt NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ false
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ False
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FGt NaN NaN
>
> ✗ <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 200:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 200:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" <var>
>
> ✗ +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" +0.0
>
> ✗ -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" -0.0
>
> ✗ NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" NaN
>
> ✗ FloatFromBits <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFromBinary c at 201:bv
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 201:bv |-> 0x0:[32]
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FloatFromBits <var>
>
> ✗ FNeg <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatNeg c at 203:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 203:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FNeg <var>
>
> ✗ FNeg +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg +0.0
>
> ✗ FNeg -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg -0.0
>
> ✗ FNeg NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg NaN
>
> ✗ FAbs <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAbs c at 205:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 205:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAbs <var>
>
> ✗ FAbs +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs +0.0
>
> ✗ FAbs -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs -0.0
>
> ✗ FAbs NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs NaN
>
> ✗ FSqrt RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSqrt RNE c at 207:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 207:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSqrt RNE <var>
>
> ✗ FSqrt RNE +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RNE +0.0
>
> ✗ FSqrt RNE -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RNE -0.0
>
> ✗ FSqrt RNE NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RNE NaN
>
> ✗ FRound RNE <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRound RNE c at 209:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 209:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRound RNE <var>
>
> ✗ FRound RNE +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RNE +0.0
>
> ✗ FRound RNE -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RNE -0.0
>
> ✗ FRound RNE NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RNE NaN
>
> ✗ FAdd RNE <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNE c at 211:f c at 212:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 211:f |-> 0 0x0
> ┃ │ c at 212:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FAdd RNE <var> <var>
>
> ✗ FAdd RNE <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNE c at 214:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 214:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNE <var> +0.0
>
> ✗ FAdd RNE <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNE c at 216:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 216:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNE <var> -0.0
>
> ✗ FAdd RNE <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNE c at 218:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 218:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNE <var> NaN
>
> ✗ FAdd RNE +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNE 0 c at 220:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 220:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNE +0.0 <var>
>
> ✗ FAdd RNE +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE +0.0 +0.0
>
> ✗ FAdd RNE +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE +0.0 -0.0
>
> ✗ FAdd RNE +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE +0.0 NaN
>
> ✗ FAdd RNE -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNE -0 c at 222:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 222:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNE -0.0 <var>
>
> ✗ FAdd RNE -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE -0.0 +0.0
>
> ✗ FAdd RNE -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE -0.0 -0.0
>
> ✗ FAdd RNE -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE -0.0 NaN
>
> ✗ FAdd RNE NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNE NaN c at 224:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 224:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNE NaN <var>
>
> ✗ FAdd RNE NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE NaN +0.0
>
> ✗ FAdd RNE NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE NaN -0.0
>
> ✗ FAdd RNE NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNE NaN NaN
>
> ✗ FSub RNE <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNE c at 226:f c at 227:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 226:f |-> 0 0x0
> ┃ │ c at 227:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FSub RNE <var> <var>
>
> ✗ FSub RNE <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNE c at 229:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 229:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNE <var> +0.0
>
> ✗ FSub RNE <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNE c at 231:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 231:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNE <var> -0.0
>
> ✗ FSub RNE <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNE c at 233:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 233:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNE <var> NaN
>
> ✗ FSub RNE +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNE 0 c at 235:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 235:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNE +0.0 <var>
>
> ✗ FSub RNE +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE +0.0 +0.0
>
> ✗ FSub RNE +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE +0.0 -0.0
>
> ✗ FSub RNE +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE +0.0 NaN
>
> ✗ FSub RNE -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNE -0 c at 237:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 237:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNE -0.0 <var>
>
> ✗ FSub RNE -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE -0.0 +0.0
>
> ✗ FSub RNE -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE -0.0 -0.0
>
> ✗ FSub RNE -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE -0.0 NaN
>
> ✗ FSub RNE NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNE NaN c at 239:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 239:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNE NaN <var>
>
> ✗ FSub RNE NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE NaN +0.0
>
> ✗ FSub RNE NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE NaN -0.0
>
> ✗ FSub RNE NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNE NaN NaN
>
> ✗ FMul RNE <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNE c at 241:f c at 242:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 241:f |-> 0 0x0
> ┃ │ c at 242:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMul RNE <var> <var>
>
> ✗ FMul RNE <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNE c at 244:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 244:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNE <var> +0.0
>
> ✗ FMul RNE <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNE c at 246:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 246:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNE <var> -0.0
>
> ✗ FMul RNE <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNE c at 248:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 248:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNE <var> NaN
>
> ✗ FMul RNE +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNE 0 c at 250:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 250:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNE +0.0 <var>
>
> ✗ FMul RNE +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE +0.0 +0.0
>
> ✗ FMul RNE +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE +0.0 -0.0
>
> ✗ FMul RNE +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE +0.0 NaN
>
> ✗ FMul RNE -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNE -0 c at 252:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 252:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNE -0.0 <var>
>
> ✗ FMul RNE -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE -0.0 +0.0
>
> ✗ FMul RNE -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE -0.0 -0.0
>
> ✗ FMul RNE -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE -0.0 NaN
>
> ✗ FMul RNE NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNE NaN c at 254:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 254:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNE NaN <var>
>
> ✗ FMul RNE NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE NaN +0.0
>
> ✗ FMul RNE NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE NaN -0.0
>
> ✗ FMul RNE NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNE NaN NaN
>
> ✗ FDiv RNE <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNE c at 256:f c at 257:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 256:f |-> 0 0x0
> ┃ │ c at 257:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FDiv RNE <var> <var>
>
> ✗ FDiv RNE <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNE c at 259:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 259:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNE <var> +0.0
>
> ✗ FDiv RNE <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNE c at 261:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 261:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNE <var> -0.0
>
> ✗ FDiv RNE <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNE c at 263:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 263:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNE <var> NaN
>
> ✗ FDiv RNE +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNE 0 c at 265:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 265:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNE +0.0 <var>
>
> ✗ FDiv RNE +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE +0.0 +0.0
>
> ✗ FDiv RNE +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE +0.0 -0.0
>
> ✗ FDiv RNE +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE +0.0 NaN
>
> ✗ FDiv RNE -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNE -0 c at 267:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 267:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNE -0.0 <var>
>
> ✗ FDiv RNE -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE -0.0 +0.0
>
> ✗ FDiv RNE -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE -0.0 -0.0
>
> ✗ FDiv RNE -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE -0.0 NaN
>
> ✗ FDiv RNE NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNE NaN c at 269:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 269:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNE NaN <var>
>
> ✗ FDiv RNE NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE NaN +0.0
>
> ✗ FDiv RNE NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE NaN -0.0
>
> ✗ FDiv RNE NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNE NaN NaN
>
> ✗ FRem <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 271:f c at 272:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 271:f |-> 0 0x0
> ┃ │ c at 272:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FRem <var> <var>
>
> ✗ FRem <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 274:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 274:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> +0.0
>
> ✗ FRem <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 276:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 276:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> -0.0
>
> ✗ FRem <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 278:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 278:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> NaN
>
> ✗ FRem +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem 0 c at 280:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 280:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem +0.0 <var>
>
> ✗ FRem +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 +0.0
>
> ✗ FRem +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 -0.0
>
> ✗ FRem +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 NaN
>
> ✗ FRem -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem -0 c at 282:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 282:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem -0.0 <var>
>
> ✗ FRem -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 +0.0
>
> ✗ FRem -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 -0.0
>
> ✗ FRem -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 NaN
>
> ✗ FRem NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem NaN c at 284:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 284:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem NaN <var>
>
> ✗ FRem NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN +0.0
>
> ✗ FRem NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN -0.0
>
> ✗ FRem NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN NaN
>
> ✗ FMin <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v295 = ite (eq c at 286:f c at 287:f) c at 286:f (ite c at 293:b c at 286:f c at 287:f)
> ┃ │ -- :1:0
> ┃ │ v296 = ite (floatLt c at 287:f c at 286:f) c at 287:f v295
> ┃ │ -- :1:0
> ┃ │ v297 = ite (floatLt c at 286:f c at 287:f) c at 286:f v296
> ┃ │ -- :1:0
> ┃ │ v298 = ite (floatIsNaN c at 287:f) c at 286:f v297
> ┃ │ in ite (floatIsNaN c at 286:f) c at 287:f v298
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 286:f |-> 0 0x0
> ┃ │ c at 287:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMin <var> <var>
>
> ✗ FMin <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v307 = ite (eq c at 300:f 0) c at 300:f (ite c at 305:b c at 300:f 0)
> ┃ │ -- :1:0
> ┃ │ v309 = ite (floatLt c at 300:f 0) c at 300:f (ite (floatLt 0 c at 300:f) 0 v307)
> ┃ │ in ite (floatIsNaN c at 300:f) 0 v309
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 300:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> +0.0
>
> ✗ FMin <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v318 = ite (eq c at 311:f -0) c at 311:f (ite c at 316:b c at 311:f -0)
> ┃ │ -- :1:0
> ┃ │ v319 = ite (floatLt -0 c at 311:f) -0 v318
> ┃ │ -- :1:0
> ┃ │ v320 = ite (floatLt c at 311:f -0) c at 311:f v319
> ┃ │ in ite (floatIsNaN c at 311:f) -0 v320
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 311:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMin <var> -0.0
>
> ✗ FMin <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 322:f) NaN c at 322:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 322:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> NaN
>
> ✗ FMin +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v332 = ite (eq 0 c at 325:f) 0 (ite c at 330:b 0 c at 325:f)
> ┃ │ -- :1:0
> ┃ │ v334 = ite (floatLt 0 c at 325:f) 0 (ite (floatLt c at 325:f 0) c at 325:f v332)
> ┃ │ in ite (floatIsNaN c at 325:f) 0 v334
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 325:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin +0.0 <var>
>
> ✗ FMin +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 +0.0
>
> ✓ FMin +0.0 -0.0 passed 1 test.
> ✗ FMin +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 NaN
>
> ✗ FMin -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v345 = ite (eq -0 c at 338:f) -0 (ite c at 343:b -0 c at 338:f)
> ┃ │ -- :1:0
> ┃ │ v346 = ite (floatLt c at 338:f -0) c at 338:f v345
> ┃ │ in ite (floatIsNaN c at 338:f) -0 (ite (floatLt -0 c at 338:f) -0 v346)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 338:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMin -0.0 <var>
>
> ✓ FMin -0.0 +0.0 passed 1 test.
> ✗ FMin -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 -0.0
>
> ✗ FMin -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 NaN
>
> ✗ FMin NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 351:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 351:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin NaN <var>
>
> ✗ FMin NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN +0.0
>
> ✗ FMin NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN -0.0
>
> ✗ FMin NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN NaN
>
> ✗ FMax <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v361 = ite (eq c at 352:f c at 353:f) c at 352:f (ite c at 359:b c at 352:f c at 353:f)
> ┃ │ -- :1:0
> ┃ │ v362 = ite (floatLt c at 353:f c at 352:f) c at 352:f v361
> ┃ │ -- :1:0
> ┃ │ v363 = ite (floatLt c at 352:f c at 353:f) c at 353:f v362
> ┃ │ -- :1:0
> ┃ │ v364 = ite (floatIsNaN c at 353:f) c at 352:f v363
> ┃ │ in ite (floatIsNaN c at 352:f) c at 353:f v364
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 352:f |-> 0 0x0
> ┃ │ c at 353:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMax <var> <var>
>
> ✗ FMax <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v373 = ite (eq c at 366:f 0) c at 366:f (ite c at 371:b c at 366:f 0)
> ┃ │ -- :1:0
> ┃ │ v375 = ite (floatLt c at 366:f 0) 0 (ite (floatLt 0 c at 366:f) c at 366:f v373)
> ┃ │ in ite (floatIsNaN c at 366:f) 0 v375
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 366:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> +0.0
>
> ✗ FMax <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v384 = ite (eq c at 377:f -0) c at 377:f (ite c at 382:b c at 377:f -0)
> ┃ │ -- :1:0
> ┃ │ v385 = ite (floatLt -0 c at 377:f) c at 377:f v384
> ┃ │ in ite (floatIsNaN c at 377:f) -0 (ite (floatLt c at 377:f -0) -0 v385)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 377:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMax <var> -0.0
>
> ✗ FMax <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 388:f) NaN c at 388:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 388:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> NaN
>
> ✗ FMax +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v398 = ite (eq 0 c at 391:f) 0 (ite c at 396:b 0 c at 391:f)
> ┃ │ -- :1:0
> ┃ │ v400 = ite (floatLt 0 c at 391:f) c at 391:f (ite (floatLt c at 391:f 0) 0 v398)
> ┃ │ in ite (floatIsNaN c at 391:f) 0 v400
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 391:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax +0.0 <var>
>
> ✗ FMax +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 +0.0
>
> ✓ FMax +0.0 -0.0 passed 1 test.
> ✗ FMax +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 NaN
>
> ✗ FMax -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v411 = ite (eq -0 c at 404:f) -0 (ite c at 409:b -0 c at 404:f)
> ┃ │ -- :1:0
> ┃ │ v412 = ite (floatLt c at 404:f -0) -0 v411
> ┃ │ -- :1:0
> ┃ │ v413 = ite (floatLt -0 c at 404:f) c at 404:f v412
> ┃ │ in ite (floatIsNaN c at 404:f) -0 v413
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 404:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMax -0.0 <var>
>
> ✓ FMax -0.0 +0.0 passed 1 test.
> ✗ FMax -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 -0.0
>
> ✗ FMax -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 NaN
>
> ✗ FMax NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 417:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 417:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax NaN <var>
>
> ✗ FMax NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN +0.0
>
> ✗ FMax NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN -0.0
>
> ✗ FMax NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN NaN
>
> ✗ FMA RNE <var> <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 3 shrinks.
> shrink path: 1:a3
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 418:f c at 419:f c at 420:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 418:f |-> 0 0x0
> ┃ │ c at 419:f |-> 0 0x0
> ┃ │ c at 420:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a3" FMA RNE <var> <var> <var>
>
> ✗ FMA RNE <var> <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 422:f c at 423:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 422:f |-> 0 0x0
> ┃ │ c at 423:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE <var> <var> +0.0
>
> ✗ FMA RNE <var> <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 425:f c at 426:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 425:f |-> 0 0x0
> ┃ │ c at 426:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE <var> <var> -0.0
>
> ✗ FMA RNE <var> <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 428:f c at 429:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 428:f |-> 0 0x0
> ┃ │ c at 429:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE <var> <var> NaN
>
> ✗ FMA RNE <var> +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 431:f 0 c at 432:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 431:f |-> 0 0x0
> ┃ │ c at 432:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE <var> +0.0 <var>
>
> ✗ FMA RNE <var> +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 434:f 0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 434:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> +0.0 +0.0
>
> ✗ FMA RNE <var> +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 436:f 0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 436:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> +0.0 -0.0
>
> ✗ FMA RNE <var> +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 438:f 0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 438:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> +0.0 NaN
>
> ✗ FMA RNE <var> -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 440:f -0 c at 441:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 440:f |-> 0 0x0
> ┃ │ c at 441:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE <var> -0.0 <var>
>
> ✗ FMA RNE <var> -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 443:f -0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 443:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> -0.0 +0.0
>
> ✗ FMA RNE <var> -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 445:f -0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 445:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> -0.0 -0.0
>
> ✗ FMA RNE <var> -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 447:f -0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 447:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> -0.0 NaN
>
> ✗ FMA RNE <var> NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 449:f NaN c at 450:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 449:f |-> 0 0x0
> ┃ │ c at 450:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE <var> NaN <var>
>
> ✗ FMA RNE <var> NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 452:f NaN 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 452:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> NaN +0.0
>
> ✗ FMA RNE <var> NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 454:f NaN -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 454:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> NaN -0.0
>
> ✗ FMA RNE <var> NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE c at 456:f NaN NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 456:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE <var> NaN NaN
>
> ✗ FMA RNE +0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE 0 c at 458:f c at 459:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 458:f |-> 0 0x0
> ┃ │ c at 459:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE +0.0 <var> <var>
>
> ✗ FMA RNE +0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE 0 c at 461:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 461:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE +0.0 <var> +0.0
>
> ✗ FMA RNE +0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE 0 c at 463:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 463:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE +0.0 <var> -0.0
>
> ✗ FMA RNE +0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE 0 c at 465:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 465:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE +0.0 <var> NaN
>
> ✗ FMA RNE +0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE 0 0 c at 467:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 467:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE +0.0 +0.0 <var>
>
> ✗ FMA RNE +0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 +0.0 +0.0
>
> ✗ FMA RNE +0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 +0.0 -0.0
>
> ✗ FMA RNE +0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 +0.0 NaN
>
> ✗ FMA RNE +0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE 0 -0 c at 469:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 469:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE +0.0 -0.0 <var>
>
> ✗ FMA RNE +0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 -0.0 +0.0
>
> ✗ FMA RNE +0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 -0.0 -0.0
>
> ✗ FMA RNE +0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 -0.0 NaN
>
> ✗ FMA RNE +0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE 0 NaN c at 471:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 471:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE +0.0 NaN <var>
>
> ✗ FMA RNE +0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 NaN +0.0
>
> ✗ FMA RNE +0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 NaN -0.0
>
> ✗ FMA RNE +0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE +0.0 NaN NaN
>
> ✗ FMA RNE -0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE -0 c at 473:f c at 474:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 473:f |-> 0 0x0
> ┃ │ c at 474:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE -0.0 <var> <var>
>
> ✗ FMA RNE -0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE -0 c at 476:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 476:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE -0.0 <var> +0.0
>
> ✗ FMA RNE -0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE -0 c at 478:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 478:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE -0.0 <var> -0.0
>
> ✗ FMA RNE -0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE -0 c at 480:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 480:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE -0.0 <var> NaN
>
> ✗ FMA RNE -0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE -0 0 c at 482:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 482:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE -0.0 +0.0 <var>
>
> ✗ FMA RNE -0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 +0.0 +0.0
>
> ✗ FMA RNE -0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 +0.0 -0.0
>
> ✗ FMA RNE -0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 +0.0 NaN
>
> ✗ FMA RNE -0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE -0 -0 c at 484:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 484:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE -0.0 -0.0 <var>
>
> ✗ FMA RNE -0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 -0.0 +0.0
>
> ✗ FMA RNE -0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 -0.0 -0.0
>
> ✗ FMA RNE -0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 -0.0 NaN
>
> ✗ FMA RNE -0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE -0 NaN c at 486:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 486:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE -0.0 NaN <var>
>
> ✗ FMA RNE -0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 NaN +0.0
>
> ✗ FMA RNE -0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 NaN -0.0
>
> ✗ FMA RNE -0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE -0.0 NaN NaN
>
> ✗ FMA RNE NaN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE NaN c at 488:f c at 489:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 488:f |-> 0 0x0
> ┃ │ c at 489:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNE NaN <var> <var>
>
> ✗ FMA RNE NaN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE NaN c at 491:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 491:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE NaN <var> +0.0
>
> ✗ FMA RNE NaN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE NaN c at 493:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 493:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE NaN <var> -0.0
>
> ✗ FMA RNE NaN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE NaN c at 495:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 495:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE NaN <var> NaN
>
> ✗ FMA RNE NaN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE NaN 0 c at 497:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 497:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE NaN +0.0 <var>
>
> ✗ FMA RNE NaN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN +0.0 +0.0
>
> ✗ FMA RNE NaN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN +0.0 -0.0
>
> ✗ FMA RNE NaN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN +0.0 NaN
>
> ✗ FMA RNE NaN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE NaN -0 c at 499:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 499:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE NaN -0.0 <var>
>
> ✗ FMA RNE NaN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN -0.0 +0.0
>
> ✗ FMA RNE NaN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN -0.0 -0.0
>
> ✗ FMA RNE NaN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN -0.0 NaN
>
> ✗ FMA RNE NaN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNE NaN NaN c at 501:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 501:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNE NaN NaN <var>
>
> ✗ FMA RNE NaN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN NaN +0.0
>
> ✗ FMA RNE NaN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN NaN -0.0
>
> ✗ FMA RNE NaN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNE NaN NaN NaN
>
> ✗ <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 503:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 503:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" <var>
>
> ✗ +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" +0.0
>
> ✗ -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" -0.0
>
> ✗ NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" NaN
>
> ✗ FloatFromBits <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFromBinary c at 504:bv
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 504:bv |-> 0x0:[32]
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FloatFromBits <var>
>
> ✗ FNeg <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatNeg c at 506:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 506:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FNeg <var>
>
> ✗ FNeg +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg +0.0
>
> ✗ FNeg -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg -0.0
>
> ✗ FNeg NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg NaN
>
> ✗ FAbs <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAbs c at 508:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 508:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAbs <var>
>
> ✗ FAbs +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs +0.0
>
> ✗ FAbs -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs -0.0
>
> ✗ FAbs NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs NaN
>
> ✗ FSqrt RNA <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSqrt RNA c at 510:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 510:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSqrt RNA <var>
>
> ✗ FSqrt RNA +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RNA +0.0
>
> ✗ FSqrt RNA -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RNA -0.0
>
> ✗ FSqrt RNA NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RNA NaN
>
> ✗ FRound RNA <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRound RNA c at 512:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 512:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRound RNA <var>
>
> ✗ FRound RNA +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RNA +0.0
>
> ✗ FRound RNA -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RNA -0.0
>
> ✗ FRound RNA NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RNA NaN
>
> ✗ FAdd RNA <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNA c at 514:f c at 515:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 514:f |-> 0 0x0
> ┃ │ c at 515:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FAdd RNA <var> <var>
>
> ✗ FAdd RNA <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNA c at 517:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 517:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNA <var> +0.0
>
> ✗ FAdd RNA <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNA c at 519:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 519:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNA <var> -0.0
>
> ✗ FAdd RNA <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNA c at 521:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 521:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNA <var> NaN
>
> ✗ FAdd RNA +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNA 0 c at 523:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 523:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNA +0.0 <var>
>
> ✗ FAdd RNA +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA +0.0 +0.0
>
> ✗ FAdd RNA +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA +0.0 -0.0
>
> ✗ FAdd RNA +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA +0.0 NaN
>
> ✗ FAdd RNA -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNA -0 c at 525:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 525:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNA -0.0 <var>
>
> ✗ FAdd RNA -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA -0.0 +0.0
>
> ✗ FAdd RNA -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA -0.0 -0.0
>
> ✗ FAdd RNA -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA -0.0 NaN
>
> ✗ FAdd RNA NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RNA NaN c at 527:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 527:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RNA NaN <var>
>
> ✗ FAdd RNA NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA NaN +0.0
>
> ✗ FAdd RNA NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA NaN -0.0
>
> ✗ FAdd RNA NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RNA NaN NaN
>
> ✗ FSub RNA <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNA c at 529:f c at 530:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 529:f |-> 0 0x0
> ┃ │ c at 530:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FSub RNA <var> <var>
>
> ✗ FSub RNA <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNA c at 532:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 532:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNA <var> +0.0
>
> ✗ FSub RNA <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNA c at 534:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 534:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNA <var> -0.0
>
> ✗ FSub RNA <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNA c at 536:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 536:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNA <var> NaN
>
> ✗ FSub RNA +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNA 0 c at 538:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 538:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNA +0.0 <var>
>
> ✗ FSub RNA +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA +0.0 +0.0
>
> ✗ FSub RNA +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA +0.0 -0.0
>
> ✗ FSub RNA +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA +0.0 NaN
>
> ✗ FSub RNA -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNA -0 c at 540:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 540:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNA -0.0 <var>
>
> ✗ FSub RNA -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA -0.0 +0.0
>
> ✗ FSub RNA -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA -0.0 -0.0
>
> ✗ FSub RNA -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA -0.0 NaN
>
> ✗ FSub RNA NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RNA NaN c at 542:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 542:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RNA NaN <var>
>
> ✗ FSub RNA NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA NaN +0.0
>
> ✗ FSub RNA NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA NaN -0.0
>
> ✗ FSub RNA NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RNA NaN NaN
>
> ✗ FMul RNA <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNA c at 544:f c at 545:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 544:f |-> 0 0x0
> ┃ │ c at 545:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMul RNA <var> <var>
>
> ✗ FMul RNA <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNA c at 547:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 547:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNA <var> +0.0
>
> ✗ FMul RNA <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNA c at 549:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 549:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNA <var> -0.0
>
> ✗ FMul RNA <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNA c at 551:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 551:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNA <var> NaN
>
> ✗ FMul RNA +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNA 0 c at 553:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 553:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNA +0.0 <var>
>
> ✗ FMul RNA +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA +0.0 +0.0
>
> ✗ FMul RNA +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA +0.0 -0.0
>
> ✗ FMul RNA +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA +0.0 NaN
>
> ✗ FMul RNA -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNA -0 c at 555:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 555:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNA -0.0 <var>
>
> ✗ FMul RNA -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA -0.0 +0.0
>
> ✗ FMul RNA -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA -0.0 -0.0
>
> ✗ FMul RNA -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA -0.0 NaN
>
> ✗ FMul RNA NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RNA NaN c at 557:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 557:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RNA NaN <var>
>
> ✗ FMul RNA NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA NaN +0.0
>
> ✗ FMul RNA NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA NaN -0.0
>
> ✗ FMul RNA NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RNA NaN NaN
>
> ✗ FDiv RNA <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNA c at 559:f c at 560:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 559:f |-> 0 0x0
> ┃ │ c at 560:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FDiv RNA <var> <var>
>
> ✗ FDiv RNA <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNA c at 562:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 562:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNA <var> +0.0
>
> ✗ FDiv RNA <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNA c at 564:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 564:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNA <var> -0.0
>
> ✗ FDiv RNA <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNA c at 566:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 566:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNA <var> NaN
>
> ✗ FDiv RNA +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNA 0 c at 568:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 568:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNA +0.0 <var>
>
> ✗ FDiv RNA +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA +0.0 +0.0
>
> ✗ FDiv RNA +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA +0.0 -0.0
>
> ✗ FDiv RNA +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA +0.0 NaN
>
> ✗ FDiv RNA -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNA -0 c at 570:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 570:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNA -0.0 <var>
>
> ✗ FDiv RNA -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA -0.0 +0.0
>
> ✗ FDiv RNA -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA -0.0 -0.0
>
> ✗ FDiv RNA -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA -0.0 NaN
>
> ✗ FDiv RNA NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RNA NaN c at 572:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 572:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RNA NaN <var>
>
> ✗ FDiv RNA NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA NaN +0.0
>
> ✗ FDiv RNA NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA NaN -0.0
>
> ✗ FDiv RNA NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RNA NaN NaN
>
> ✗ FRem <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 574:f c at 575:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 574:f |-> 0 0x0
> ┃ │ c at 575:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FRem <var> <var>
>
> ✗ FRem <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 577:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 577:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> +0.0
>
> ✗ FRem <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 579:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 579:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> -0.0
>
> ✗ FRem <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 581:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 581:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> NaN
>
> ✗ FRem +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem 0 c at 583:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 583:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem +0.0 <var>
>
> ✗ FRem +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 +0.0
>
> ✗ FRem +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 -0.0
>
> ✗ FRem +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 NaN
>
> ✗ FRem -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem -0 c at 585:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 585:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem -0.0 <var>
>
> ✗ FRem -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 +0.0
>
> ✗ FRem -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 -0.0
>
> ✗ FRem -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 NaN
>
> ✗ FRem NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem NaN c at 587:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 587:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem NaN <var>
>
> ✗ FRem NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN +0.0
>
> ✗ FRem NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN -0.0
>
> ✗ FRem NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN NaN
>
> ✗ FMin <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v598 = ite (eq c at 589:f c at 590:f) c at 589:f (ite c at 596:b c at 589:f c at 590:f)
> ┃ │ -- :1:0
> ┃ │ v599 = ite (floatLt c at 590:f c at 589:f) c at 590:f v598
> ┃ │ -- :1:0
> ┃ │ v600 = ite (floatLt c at 589:f c at 590:f) c at 589:f v599
> ┃ │ -- :1:0
> ┃ │ v601 = ite (floatIsNaN c at 590:f) c at 589:f v600
> ┃ │ in ite (floatIsNaN c at 589:f) c at 590:f v601
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 589:f |-> 0 0x0
> ┃ │ c at 590:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMin <var> <var>
>
> ✗ FMin <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v610 = ite (eq c at 603:f 0) c at 603:f (ite c at 608:b c at 603:f 0)
> ┃ │ -- :1:0
> ┃ │ v612 = ite (floatLt c at 603:f 0) c at 603:f (ite (floatLt 0 c at 603:f) 0 v610)
> ┃ │ in ite (floatIsNaN c at 603:f) 0 v612
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 603:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> +0.0
>
> ✗ FMin <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v621 = ite (eq c at 614:f -0) c at 614:f (ite c at 619:b c at 614:f -0)
> ┃ │ -- :1:0
> ┃ │ v622 = ite (floatLt -0 c at 614:f) -0 v621
> ┃ │ -- :1:0
> ┃ │ v623 = ite (floatLt c at 614:f -0) c at 614:f v622
> ┃ │ in ite (floatIsNaN c at 614:f) -0 v623
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 614:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMin <var> -0.0
>
> ✗ FMin <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 625:f) NaN c at 625:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 625:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> NaN
>
> ✗ FMin +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v635 = ite (eq 0 c at 628:f) 0 (ite c at 633:b 0 c at 628:f)
> ┃ │ -- :1:0
> ┃ │ v637 = ite (floatLt 0 c at 628:f) 0 (ite (floatLt c at 628:f 0) c at 628:f v635)
> ┃ │ in ite (floatIsNaN c at 628:f) 0 v637
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 628:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin +0.0 <var>
>
> ✗ FMin +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 +0.0
>
> ✓ FMin +0.0 -0.0 passed 1 test.
> ✗ FMin +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 NaN
>
> ✗ FMin -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v648 = ite (eq -0 c at 641:f) -0 (ite c at 646:b -0 c at 641:f)
> ┃ │ -- :1:0
> ┃ │ v649 = ite (floatLt c at 641:f -0) c at 641:f v648
> ┃ │ in ite (floatIsNaN c at 641:f) -0 (ite (floatLt -0 c at 641:f) -0 v649)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 641:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMin -0.0 <var>
>
> ✓ FMin -0.0 +0.0 passed 1 test.
> ✗ FMin -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 -0.0
>
> ✗ FMin -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 NaN
>
> ✗ FMin NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 654:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 654:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin NaN <var>
>
> ✗ FMin NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN +0.0
>
> ✗ FMin NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN -0.0
>
> ✗ FMin NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN NaN
>
> ✗ FMax <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v664 = ite (eq c at 655:f c at 656:f) c at 655:f (ite c at 662:b c at 655:f c at 656:f)
> ┃ │ -- :1:0
> ┃ │ v665 = ite (floatLt c at 656:f c at 655:f) c at 655:f v664
> ┃ │ -- :1:0
> ┃ │ v666 = ite (floatLt c at 655:f c at 656:f) c at 656:f v665
> ┃ │ -- :1:0
> ┃ │ v667 = ite (floatIsNaN c at 656:f) c at 655:f v666
> ┃ │ in ite (floatIsNaN c at 655:f) c at 656:f v667
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 655:f |-> 0 0x0
> ┃ │ c at 656:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMax <var> <var>
>
> ✗ FMax <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v676 = ite (eq c at 669:f 0) c at 669:f (ite c at 674:b c at 669:f 0)
> ┃ │ -- :1:0
> ┃ │ v678 = ite (floatLt c at 669:f 0) 0 (ite (floatLt 0 c at 669:f) c at 669:f v676)
> ┃ │ in ite (floatIsNaN c at 669:f) 0 v678
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 669:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> +0.0
>
> ✗ FMax <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v687 = ite (eq c at 680:f -0) c at 680:f (ite c at 685:b c at 680:f -0)
> ┃ │ -- :1:0
> ┃ │ v688 = ite (floatLt -0 c at 680:f) c at 680:f v687
> ┃ │ in ite (floatIsNaN c at 680:f) -0 (ite (floatLt c at 680:f -0) -0 v688)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 680:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMax <var> -0.0
>
> ✗ FMax <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 691:f) NaN c at 691:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 691:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> NaN
>
> ✗ FMax +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v701 = ite (eq 0 c at 694:f) 0 (ite c at 699:b 0 c at 694:f)
> ┃ │ -- :1:0
> ┃ │ v703 = ite (floatLt 0 c at 694:f) c at 694:f (ite (floatLt c at 694:f 0) 0 v701)
> ┃ │ in ite (floatIsNaN c at 694:f) 0 v703
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 694:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax +0.0 <var>
>
> ✗ FMax +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 +0.0
>
> ✓ FMax +0.0 -0.0 passed 1 test.
> ✗ FMax +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 NaN
>
> ✗ FMax -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v714 = ite (eq -0 c at 707:f) -0 (ite c at 712:b -0 c at 707:f)
> ┃ │ -- :1:0
> ┃ │ v715 = ite (floatLt c at 707:f -0) -0 v714
> ┃ │ -- :1:0
> ┃ │ v716 = ite (floatLt -0 c at 707:f) c at 707:f v715
> ┃ │ in ite (floatIsNaN c at 707:f) -0 v716
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 707:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMax -0.0 <var>
>
> ✓ FMax -0.0 +0.0 passed 1 test.
> ✗ FMax -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 -0.0
>
> ✗ FMax -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 NaN
>
> ✗ FMax NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 720:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 720:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax NaN <var>
>
> ✗ FMax NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN +0.0
>
> ✗ FMax NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN -0.0
>
> ✗ FMax NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN NaN
>
> ✗ FMA RNA <var> <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 3 shrinks.
> shrink path: 1:a3
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 721:f c at 722:f c at 723:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 721:f |-> 0 0x0
> ┃ │ c at 722:f |-> 0 0x0
> ┃ │ c at 723:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a3" FMA RNA <var> <var> <var>
>
> ✗ FMA RNA <var> <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 725:f c at 726:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 725:f |-> 0 0x0
> ┃ │ c at 726:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA <var> <var> +0.0
>
> ✗ FMA RNA <var> <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 728:f c at 729:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 728:f |-> 0 0x0
> ┃ │ c at 729:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA <var> <var> -0.0
>
> ✗ FMA RNA <var> <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 731:f c at 732:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 731:f |-> 0 0x0
> ┃ │ c at 732:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA <var> <var> NaN
>
> ✗ FMA RNA <var> +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 734:f 0 c at 735:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 734:f |-> 0 0x0
> ┃ │ c at 735:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA <var> +0.0 <var>
>
> ✗ FMA RNA <var> +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 737:f 0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 737:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> +0.0 +0.0
>
> ✗ FMA RNA <var> +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 739:f 0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 739:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> +0.0 -0.0
>
> ✗ FMA RNA <var> +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 741:f 0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 741:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> +0.0 NaN
>
> ✗ FMA RNA <var> -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 743:f -0 c at 744:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 743:f |-> 0 0x0
> ┃ │ c at 744:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA <var> -0.0 <var>
>
> ✗ FMA RNA <var> -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 746:f -0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 746:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> -0.0 +0.0
>
> ✗ FMA RNA <var> -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 748:f -0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 748:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> -0.0 -0.0
>
> ✗ FMA RNA <var> -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 750:f -0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 750:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> -0.0 NaN
>
> ✗ FMA RNA <var> NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 752:f NaN c at 753:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 752:f |-> 0 0x0
> ┃ │ c at 753:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA <var> NaN <var>
>
> ✗ FMA RNA <var> NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 755:f NaN 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 755:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> NaN +0.0
>
> ✗ FMA RNA <var> NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 757:f NaN -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 757:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> NaN -0.0
>
> ✗ FMA RNA <var> NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA c at 759:f NaN NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 759:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA <var> NaN NaN
>
> ✗ FMA RNA +0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA 0 c at 761:f c at 762:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 761:f |-> 0 0x0
> ┃ │ c at 762:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA +0.0 <var> <var>
>
> ✗ FMA RNA +0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA 0 c at 764:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 764:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA +0.0 <var> +0.0
>
> ✗ FMA RNA +0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA 0 c at 766:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 766:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA +0.0 <var> -0.0
>
> ✗ FMA RNA +0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA 0 c at 768:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 768:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA +0.0 <var> NaN
>
> ✗ FMA RNA +0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA 0 0 c at 770:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 770:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA +0.0 +0.0 <var>
>
> ✗ FMA RNA +0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 +0.0 +0.0
>
> ✗ FMA RNA +0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 +0.0 -0.0
>
> ✗ FMA RNA +0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 +0.0 NaN
>
> ✗ FMA RNA +0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA 0 -0 c at 772:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 772:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA +0.0 -0.0 <var>
>
> ✗ FMA RNA +0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 -0.0 +0.0
>
> ✗ FMA RNA +0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 -0.0 -0.0
>
> ✗ FMA RNA +0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 -0.0 NaN
>
> ✗ FMA RNA +0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA 0 NaN c at 774:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 774:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA +0.0 NaN <var>
>
> ✗ FMA RNA +0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 NaN +0.0
>
> ✗ FMA RNA +0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 NaN -0.0
>
> ✗ FMA RNA +0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA +0.0 NaN NaN
>
> ✗ FMA RNA -0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA -0 c at 776:f c at 777:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 776:f |-> 0 0x0
> ┃ │ c at 777:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA -0.0 <var> <var>
>
> ✗ FMA RNA -0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA -0 c at 779:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 779:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA -0.0 <var> +0.0
>
> ✗ FMA RNA -0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA -0 c at 781:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 781:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA -0.0 <var> -0.0
>
> ✗ FMA RNA -0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA -0 c at 783:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 783:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA -0.0 <var> NaN
>
> ✗ FMA RNA -0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA -0 0 c at 785:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 785:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA -0.0 +0.0 <var>
>
> ✗ FMA RNA -0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 +0.0 +0.0
>
> ✗ FMA RNA -0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 +0.0 -0.0
>
> ✗ FMA RNA -0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 +0.0 NaN
>
> ✗ FMA RNA -0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA -0 -0 c at 787:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 787:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA -0.0 -0.0 <var>
>
> ✗ FMA RNA -0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 -0.0 +0.0
>
> ✗ FMA RNA -0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 -0.0 -0.0
>
> ✗ FMA RNA -0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 -0.0 NaN
>
> ✗ FMA RNA -0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA -0 NaN c at 789:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 789:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA -0.0 NaN <var>
>
> ✗ FMA RNA -0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 NaN +0.0
>
> ✗ FMA RNA -0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 NaN -0.0
>
> ✗ FMA RNA -0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA -0.0 NaN NaN
>
> ✗ FMA RNA NaN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA NaN c at 791:f c at 792:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 791:f |-> 0 0x0
> ┃ │ c at 792:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RNA NaN <var> <var>
>
> ✗ FMA RNA NaN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA NaN c at 794:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 794:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA NaN <var> +0.0
>
> ✗ FMA RNA NaN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA NaN c at 796:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 796:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA NaN <var> -0.0
>
> ✗ FMA RNA NaN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA NaN c at 798:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 798:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA NaN <var> NaN
>
> ✗ FMA RNA NaN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA NaN 0 c at 800:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 800:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA NaN +0.0 <var>
>
> ✗ FMA RNA NaN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN +0.0 +0.0
>
> ✗ FMA RNA NaN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN +0.0 -0.0
>
> ✗ FMA RNA NaN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN +0.0 NaN
>
> ✗ FMA RNA NaN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA NaN -0 c at 802:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 802:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA NaN -0.0 <var>
>
> ✗ FMA RNA NaN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN -0.0 +0.0
>
> ✗ FMA RNA NaN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN -0.0 -0.0
>
> ✗ FMA RNA NaN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN -0.0 NaN
>
> ✗ FMA RNA NaN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RNA NaN NaN c at 804:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 804:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RNA NaN NaN <var>
>
> ✗ FMA RNA NaN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN NaN +0.0
>
> ✗ FMA RNA NaN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN NaN -0.0
>
> ✗ FMA RNA NaN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RNA NaN NaN NaN
>
> ✗ <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 806:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 806:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" <var>
>
> ✗ +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" +0.0
>
> ✗ -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" -0.0
>
> ✗ NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" NaN
>
> ✗ FloatFromBits <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFromBinary c at 807:bv
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 807:bv |-> 0x0:[32]
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FloatFromBits <var>
>
> ✗ FNeg <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatNeg c at 809:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 809:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FNeg <var>
>
> ✗ FNeg +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg +0.0
>
> ✗ FNeg -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg -0.0
>
> ✗ FNeg NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg NaN
>
> ✗ FAbs <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAbs c at 811:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 811:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAbs <var>
>
> ✗ FAbs +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs +0.0
>
> ✗ FAbs -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs -0.0
>
> ✗ FAbs NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs NaN
>
> ✗ FSqrt RTP <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSqrt RTP c at 813:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 813:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSqrt RTP <var>
>
> ✗ FSqrt RTP +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTP +0.0
>
> ✗ FSqrt RTP -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTP -0.0
>
> ✗ FSqrt RTP NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTP NaN
>
> ✗ FRound RTP <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRound RTP c at 815:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 815:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRound RTP <var>
>
> ✗ FRound RTP +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTP +0.0
>
> ✗ FRound RTP -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTP -0.0
>
> ✗ FRound RTP NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTP NaN
>
> ✗ FAdd RTP <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTP c at 817:f c at 818:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 817:f |-> 0 0x0
> ┃ │ c at 818:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FAdd RTP <var> <var>
>
> ✗ FAdd RTP <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTP c at 820:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 820:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTP <var> +0.0
>
> ✗ FAdd RTP <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTP c at 822:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 822:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTP <var> -0.0
>
> ✗ FAdd RTP <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTP c at 824:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 824:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTP <var> NaN
>
> ✗ FAdd RTP +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTP 0 c at 826:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 826:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTP +0.0 <var>
>
> ✗ FAdd RTP +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP +0.0 +0.0
>
> ✗ FAdd RTP +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hFlush: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP +0.0 -0.0
>
> ✗ FAdd RTP +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP +0.0 NaN
>
> ✗ FAdd RTP -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTP -0 c at 828:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 828:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTP -0.0 <var>
>
> ✗ FAdd RTP -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP -0.0 +0.0
>
> ✗ FAdd RTP -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP -0.0 -0.0
>
> ✗ FAdd RTP -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP -0.0 NaN
>
> ✗ FAdd RTP NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTP NaN c at 830:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 830:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTP NaN <var>
>
> ✗ FAdd RTP NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP NaN +0.0
>
> ✗ FAdd RTP NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP NaN -0.0
>
> ✗ FAdd RTP NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTP NaN NaN
>
> ✗ FSub RTP <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTP c at 832:f c at 833:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 832:f |-> 0 0x0
> ┃ │ c at 833:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FSub RTP <var> <var>
>
> ✗ FSub RTP <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTP c at 835:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 835:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTP <var> +0.0
>
> ✗ FSub RTP <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTP c at 837:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 837:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTP <var> -0.0
>
> ✗ FSub RTP <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTP c at 839:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 839:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTP <var> NaN
>
> ✗ FSub RTP +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTP 0 c at 841:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 841:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTP +0.0 <var>
>
> ✗ FSub RTP +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP +0.0 +0.0
>
> ✗ FSub RTP +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP +0.0 -0.0
>
> ✗ FSub RTP +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP +0.0 NaN
>
> ✗ FSub RTP -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTP -0 c at 843:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 843:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTP -0.0 <var>
>
> ✗ FSub RTP -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP -0.0 +0.0
>
> ✗ FSub RTP -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP -0.0 -0.0
>
> ✗ FSub RTP -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP -0.0 NaN
>
> ✗ FSub RTP NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTP NaN c at 845:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 845:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTP NaN <var>
>
> ✗ FSub RTP NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP NaN +0.0
>
> ✗ FSub RTP NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP NaN -0.0
>
> ✗ FSub RTP NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTP NaN NaN
>
> ✗ FMul RTP <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTP c at 847:f c at 848:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 847:f |-> 0 0x0
> ┃ │ c at 848:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMul RTP <var> <var>
>
> ✗ FMul RTP <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTP c at 850:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 850:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTP <var> +0.0
>
> ✗ FMul RTP <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTP c at 852:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 852:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTP <var> -0.0
>
> ✗ FMul RTP <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTP c at 854:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 854:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTP <var> NaN
>
> ✗ FMul RTP +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTP 0 c at 856:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 856:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTP +0.0 <var>
>
> ✗ FMul RTP +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP +0.0 +0.0
>
> ✗ FMul RTP +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP +0.0 -0.0
>
> ✗ FMul RTP +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP +0.0 NaN
>
> ✗ FMul RTP -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTP -0 c at 858:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 858:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTP -0.0 <var>
>
> ✗ FMul RTP -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP -0.0 +0.0
>
> ✗ FMul RTP -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP -0.0 -0.0
>
> ✗ FMul RTP -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP -0.0 NaN
>
> ✗ FMul RTP NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTP NaN c at 860:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 860:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTP NaN <var>
>
> ✗ FMul RTP NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP NaN +0.0
>
> ✗ FMul RTP NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP NaN -0.0
>
> ✗ FMul RTP NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTP NaN NaN
>
> ✗ FDiv RTP <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTP c at 862:f c at 863:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 862:f |-> 0 0x0
> ┃ │ c at 863:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FDiv RTP <var> <var>
>
> ✗ FDiv RTP <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTP c at 865:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 865:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTP <var> +0.0
>
> ✗ FDiv RTP <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTP c at 867:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 867:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTP <var> -0.0
>
> ✗ FDiv RTP <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTP c at 869:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 869:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTP <var> NaN
>
> ✗ FDiv RTP +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTP 0 c at 871:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 871:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTP +0.0 <var>
>
> ✗ FDiv RTP +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP +0.0 +0.0
>
> ✗ FDiv RTP +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP +0.0 -0.0
>
> ✗ FDiv RTP +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP +0.0 NaN
>
> ✗ FDiv RTP -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTP -0 c at 873:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 873:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTP -0.0 <var>
>
> ✗ FDiv RTP -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP -0.0 +0.0
>
> ✗ FDiv RTP -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP -0.0 -0.0
>
> ✗ FDiv RTP -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP -0.0 NaN
>
> ✗ FDiv RTP NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTP NaN c at 875:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 875:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTP NaN <var>
>
> ✗ FDiv RTP NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP NaN +0.0
>
> ✗ FDiv RTP NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP NaN -0.0
>
> ✗ FDiv RTP NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTP NaN NaN
>
> ✗ FRem <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 877:f c at 878:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 877:f |-> 0 0x0
> ┃ │ c at 878:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FRem <var> <var>
>
> ✗ FRem <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 880:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 880:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> +0.0
>
> ✗ FRem <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 882:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 882:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> -0.0
>
> ✗ FRem <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 884:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 884:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> NaN
>
> ✗ FRem +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem 0 c at 886:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 886:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem +0.0 <var>
>
> ✗ FRem +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 +0.0
>
> ✗ FRem +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 -0.0
>
> ✗ FRem +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 NaN
>
> ✗ FRem -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem -0 c at 888:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 888:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem -0.0 <var>
>
> ✗ FRem -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 +0.0
>
> ✗ FRem -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 -0.0
>
> ✗ FRem -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 NaN
>
> ✗ FRem NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem NaN c at 890:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 890:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem NaN <var>
>
> ✗ FRem NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN +0.0
>
> ✗ FRem NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN -0.0
>
> ✗ FRem NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN NaN
>
> ✗ FMin <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v901 = ite (eq c at 892:f c at 893:f) c at 892:f (ite c at 899:b c at 892:f c at 893:f)
> ┃ │ -- :1:0
> ┃ │ v902 = ite (floatLt c at 893:f c at 892:f) c at 893:f v901
> ┃ │ -- :1:0
> ┃ │ v903 = ite (floatLt c at 892:f c at 893:f) c at 892:f v902
> ┃ │ -- :1:0
> ┃ │ v904 = ite (floatIsNaN c at 893:f) c at 892:f v903
> ┃ │ in ite (floatIsNaN c at 892:f) c at 893:f v904
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 892:f |-> 0 0x0
> ┃ │ c at 893:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMin <var> <var>
>
> ✗ FMin <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v913 = ite (eq c at 906:f 0) c at 906:f (ite c at 911:b c at 906:f 0)
> ┃ │ -- :1:0
> ┃ │ v915 = ite (floatLt c at 906:f 0) c at 906:f (ite (floatLt 0 c at 906:f) 0 v913)
> ┃ │ in ite (floatIsNaN c at 906:f) 0 v915
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 906:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> +0.0
>
> ✗ FMin <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v924 = ite (eq c at 917:f -0) c at 917:f (ite c at 922:b c at 917:f -0)
> ┃ │ -- :1:0
> ┃ │ v925 = ite (floatLt -0 c at 917:f) -0 v924
> ┃ │ -- :1:0
> ┃ │ v926 = ite (floatLt c at 917:f -0) c at 917:f v925
> ┃ │ in ite (floatIsNaN c at 917:f) -0 v926
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 917:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMin <var> -0.0
>
> ✗ FMin <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 928:f) NaN c at 928:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 928:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> NaN
>
> ✗ FMin +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v938 = ite (eq 0 c at 931:f) 0 (ite c at 936:b 0 c at 931:f)
> ┃ │ -- :1:0
> ┃ │ v940 = ite (floatLt 0 c at 931:f) 0 (ite (floatLt c at 931:f 0) c at 931:f v938)
> ┃ │ in ite (floatIsNaN c at 931:f) 0 v940
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 931:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin +0.0 <var>
>
> ✗ FMin +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 +0.0
>
> ✓ FMin +0.0 -0.0 passed 1 test.
> ✗ FMin +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 NaN
>
> ✗ FMin -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v951 = ite (eq -0 c at 944:f) -0 (ite c at 949:b -0 c at 944:f)
> ┃ │ -- :1:0
> ┃ │ v952 = ite (floatLt c at 944:f -0) c at 944:f v951
> ┃ │ in ite (floatIsNaN c at 944:f) -0 (ite (floatLt -0 c at 944:f) -0 v952)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 944:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMin -0.0 <var>
>
> ✓ FMin -0.0 +0.0 passed 1 test.
> ✗ FMin -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 -0.0
>
> ✗ FMin -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 NaN
>
> ✗ FMin NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 957:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 957:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin NaN <var>
>
> ✗ FMin NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN +0.0
>
> ✗ FMin NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN -0.0
>
> ✗ FMin NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN NaN
>
> ✗ FMax <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v967 = ite (eq c at 958:f c at 959:f) c at 958:f (ite c at 965:b c at 958:f c at 959:f)
> ┃ │ -- :1:0
> ┃ │ v968 = ite (floatLt c at 959:f c at 958:f) c at 958:f v967
> ┃ │ -- :1:0
> ┃ │ v969 = ite (floatLt c at 958:f c at 959:f) c at 959:f v968
> ┃ │ -- :1:0
> ┃ │ v970 = ite (floatIsNaN c at 959:f) c at 958:f v969
> ┃ │ in ite (floatIsNaN c at 958:f) c at 959:f v970
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 958:f |-> 0 0x0
> ┃ │ c at 959:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMax <var> <var>
>
> ✗ FMax <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v979 = ite (eq c at 972:f 0) c at 972:f (ite c at 977:b c at 972:f 0)
> ┃ │ -- :1:0
> ┃ │ v981 = ite (floatLt c at 972:f 0) 0 (ite (floatLt 0 c at 972:f) c at 972:f v979)
> ┃ │ in ite (floatIsNaN c at 972:f) 0 v981
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 972:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> +0.0
>
> ✗ FMax <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v990 = ite (eq c at 983:f -0) c at 983:f (ite c at 988:b c at 983:f -0)
> ┃ │ -- :1:0
> ┃ │ v991 = ite (floatLt -0 c at 983:f) c at 983:f v990
> ┃ │ in ite (floatIsNaN c at 983:f) -0 (ite (floatLt c at 983:f -0) -0 v991)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 983:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMax <var> -0.0
>
> ✗ FMax <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 994:f) NaN c at 994:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 994:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> NaN
>
> ✗ FMax +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1004 = ite (eq 0 c at 997:f) 0 (ite c at 1002:b 0 c at 997:f)
> ┃ │ -- :1:0
> ┃ │ v1006 = ite (floatLt 0 c at 997:f) c at 997:f (ite (floatLt c at 997:f 0) 0 v1004)
> ┃ │ in ite (floatIsNaN c at 997:f) 0 v1006
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 997:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax +0.0 <var>
>
> ✗ FMax +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 +0.0
>
> ✓ FMax +0.0 -0.0 passed 1 test.
> ✗ FMax +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 NaN
>
> ✗ FMax -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1017 = ite (eq -0 c at 1010:f) -0 (ite c at 1015:b -0 c at 1010:f)
> ┃ │ -- :1:0
> ┃ │ v1018 = ite (floatLt c at 1010:f -0) -0 v1017
> ┃ │ -- :1:0
> ┃ │ v1019 = ite (floatLt -0 c at 1010:f) c at 1010:f v1018
> ┃ │ in ite (floatIsNaN c at 1010:f) -0 v1019
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1010:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMax -0.0 <var>
>
> ✓ FMax -0.0 +0.0 passed 1 test.
> ✗ FMax -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 -0.0
>
> ✗ FMax -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 NaN
>
> ✗ FMax NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 1023:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1023:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax NaN <var>
>
> ✗ FMax NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN +0.0
>
> ✗ FMax NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN -0.0
>
> ✗ FMax NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN NaN
>
> ✗ FMA RTP <var> <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 3 shrinks.
> shrink path: 1:a3
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1024:f c at 1025:f c at 1026:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1024:f |-> 0 0x0
> ┃ │ c at 1025:f |-> 0 0x0
> ┃ │ c at 1026:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a3" FMA RTP <var> <var> <var>
>
> ✗ FMA RTP <var> <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1028:f c at 1029:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1028:f |-> 0 0x0
> ┃ │ c at 1029:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP <var> <var> +0.0
>
> ✗ FMA RTP <var> <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1031:f c at 1032:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1031:f |-> 0 0x0
> ┃ │ c at 1032:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP <var> <var> -0.0
>
> ✗ FMA RTP <var> <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1034:f c at 1035:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1034:f |-> 0 0x0
> ┃ │ c at 1035:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP <var> <var> NaN
>
> ✗ FMA RTP <var> +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1037:f 0 c at 1038:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1037:f |-> 0 0x0
> ┃ │ c at 1038:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP <var> +0.0 <var>
>
> ✗ FMA RTP <var> +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1040:f 0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1040:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> +0.0 +0.0
>
> ✗ FMA RTP <var> +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1042:f 0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1042:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> +0.0 -0.0
>
> ✗ FMA RTP <var> +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1044:f 0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1044:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> +0.0 NaN
>
> ✗ FMA RTP <var> -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1046:f -0 c at 1047:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1046:f |-> 0 0x0
> ┃ │ c at 1047:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP <var> -0.0 <var>
>
> ✗ FMA RTP <var> -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1049:f -0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1049:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> -0.0 +0.0
>
> ✗ FMA RTP <var> -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1051:f -0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1051:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> -0.0 -0.0
>
> ✗ FMA RTP <var> -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1053:f -0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1053:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> -0.0 NaN
>
> ✗ FMA RTP <var> NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1055:f NaN c at 1056:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1055:f |-> 0 0x0
> ┃ │ c at 1056:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP <var> NaN <var>
>
> ✗ FMA RTP <var> NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1058:f NaN 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1058:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> NaN +0.0
>
> ✗ FMA RTP <var> NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1060:f NaN -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1060:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> NaN -0.0
>
> ✗ FMA RTP <var> NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP c at 1062:f NaN NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1062:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP <var> NaN NaN
>
> ✗ FMA RTP +0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP 0 c at 1064:f c at 1065:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1064:f |-> 0 0x0
> ┃ │ c at 1065:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP +0.0 <var> <var>
>
> ✗ FMA RTP +0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP 0 c at 1067:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1067:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP +0.0 <var> +0.0
>
> ✗ FMA RTP +0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP 0 c at 1069:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1069:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP +0.0 <var> -0.0
>
> ✗ FMA RTP +0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP 0 c at 1071:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1071:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP +0.0 <var> NaN
>
> ✗ FMA RTP +0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP 0 0 c at 1073:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1073:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP +0.0 +0.0 <var>
>
> ✗ FMA RTP +0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 +0.0 +0.0
>
> ✗ FMA RTP +0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 +0.0 -0.0
>
> ✗ FMA RTP +0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 +0.0 NaN
>
> ✗ FMA RTP +0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP 0 -0 c at 1075:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1075:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP +0.0 -0.0 <var>
>
> ✗ FMA RTP +0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 -0.0 +0.0
>
> ✗ FMA RTP +0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 -0.0 -0.0
>
> ✗ FMA RTP +0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 -0.0 NaN
>
> ✗ FMA RTP +0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP 0 NaN c at 1077:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1077:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP +0.0 NaN <var>
>
> ✗ FMA RTP +0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 NaN +0.0
>
> ✗ FMA RTP +0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 NaN -0.0
>
> ✗ FMA RTP +0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP +0.0 NaN NaN
>
> ✗ FMA RTP -0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP -0 c at 1079:f c at 1080:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1079:f |-> 0 0x0
> ┃ │ c at 1080:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP -0.0 <var> <var>
>
> ✗ FMA RTP -0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP -0 c at 1082:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1082:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP -0.0 <var> +0.0
>
> ✗ FMA RTP -0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP -0 c at 1084:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1084:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP -0.0 <var> -0.0
>
> ✗ FMA RTP -0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP -0 c at 1086:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1086:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP -0.0 <var> NaN
>
> ✗ FMA RTP -0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP -0 0 c at 1088:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1088:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP -0.0 +0.0 <var>
>
> ✗ FMA RTP -0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 +0.0 +0.0
>
> ✗ FMA RTP -0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 +0.0 -0.0
>
> ✗ FMA RTP -0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 +0.0 NaN
>
> ✗ FMA RTP -0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP -0 -0 c at 1090:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1090:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP -0.0 -0.0 <var>
>
> ✗ FMA RTP -0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 -0.0 +0.0
>
> ✗ FMA RTP -0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 -0.0 -0.0
>
> ✗ FMA RTP -0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 -0.0 NaN
>
> ✗ FMA RTP -0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP -0 NaN c at 1092:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1092:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP -0.0 NaN <var>
>
> ✗ FMA RTP -0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 NaN +0.0
>
> ✗ FMA RTP -0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 NaN -0.0
>
> ✗ FMA RTP -0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP -0.0 NaN NaN
>
> ✗ FMA RTP NaN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP NaN c at 1094:f c at 1095:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1094:f |-> 0 0x0
> ┃ │ c at 1095:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTP NaN <var> <var>
>
> ✗ FMA RTP NaN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP NaN c at 1097:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1097:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP NaN <var> +0.0
>
> ✗ FMA RTP NaN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP NaN c at 1099:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1099:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP NaN <var> -0.0
>
> ✗ FMA RTP NaN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP NaN c at 1101:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1101:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP NaN <var> NaN
>
> ✗ FMA RTP NaN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP NaN 0 c at 1103:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1103:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP NaN +0.0 <var>
>
> ✗ FMA RTP NaN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN +0.0 +0.0
>
> ✗ FMA RTP NaN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN +0.0 -0.0
>
> ✗ FMA RTP NaN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN +0.0 NaN
>
> ✗ FMA RTP NaN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP NaN -0 c at 1105:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1105:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP NaN -0.0 <var>
>
> ✗ FMA RTP NaN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN -0.0 +0.0
>
> ✗ FMA RTP NaN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN -0.0 -0.0
>
> ✗ FMA RTP NaN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN -0.0 NaN
>
> ✗ FMA RTP NaN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTP NaN NaN c at 1107:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1107:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTP NaN NaN <var>
>
> ✗ FMA RTP NaN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN NaN +0.0
>
> ✗ FMA RTP NaN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN NaN -0.0
>
> ✗ FMA RTP NaN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTP NaN NaN NaN
>
> ✗ <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 1109:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1109:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" <var>
>
> ✗ +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" +0.0
>
> ✗ -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" -0.0
>
> ✗ NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" NaN
>
> ✗ FloatFromBits <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFromBinary c at 1110:bv
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1110:bv |-> 0x0:[32]
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FloatFromBits <var>
>
> ✗ FNeg <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatNeg c at 1112:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1112:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FNeg <var>
>
> ✗ FNeg +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg +0.0
>
> ✗ FNeg -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg -0.0
>
> ✗ FNeg NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg NaN
>
> ✗ FAbs <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAbs c at 1114:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1114:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAbs <var>
>
> ✗ FAbs +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs +0.0
>
> ✗ FAbs -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs -0.0
>
> ✗ FAbs NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs NaN
>
> ✗ FSqrt RTN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSqrt RTN c at 1116:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1116:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSqrt RTN <var>
>
> ✗ FSqrt RTN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTN +0.0
>
> ✗ FSqrt RTN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTN -0.0
>
> ✗ FSqrt RTN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTN NaN
>
> ✗ FRound RTN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRound RTN c at 1118:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1118:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRound RTN <var>
>
> ✗ FRound RTN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTN +0.0
>
> ✗ FRound RTN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTN -0.0
>
> ✗ FRound RTN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTN NaN
>
> ✗ FAdd RTN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTN c at 1120:f c at 1121:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1120:f |-> 0 0x0
> ┃ │ c at 1121:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FAdd RTN <var> <var>
>
> ✗ FAdd RTN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTN c at 1123:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1123:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTN <var> +0.0
>
> ✗ FAdd RTN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTN c at 1125:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1125:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTN <var> -0.0
>
> ✗ FAdd RTN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTN c at 1127:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1127:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTN <var> NaN
>
> ✗ FAdd RTN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTN 0 c at 1129:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1129:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTN +0.0 <var>
>
> ✗ FAdd RTN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN +0.0 +0.0
>
> ✗ FAdd RTN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN +0.0 -0.0
>
> ✗ FAdd RTN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN +0.0 NaN
>
> ✗ FAdd RTN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTN -0 c at 1131:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1131:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTN -0.0 <var>
>
> ✗ FAdd RTN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN -0.0 +0.0
>
> ✗ FAdd RTN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN -0.0 -0.0
>
> ✗ FAdd RTN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN -0.0 NaN
>
> ✗ FAdd RTN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTN NaN c at 1133:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1133:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTN NaN <var>
>
> ✗ FAdd RTN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN NaN +0.0
>
> ✗ FAdd RTN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN NaN -0.0
>
> ✗ FAdd RTN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTN NaN NaN
>
> ✗ FSub RTN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTN c at 1135:f c at 1136:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1135:f |-> 0 0x0
> ┃ │ c at 1136:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FSub RTN <var> <var>
>
> ✗ FSub RTN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTN c at 1138:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1138:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTN <var> +0.0
>
> ✗ FSub RTN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTN c at 1140:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1140:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTN <var> -0.0
>
> ✗ FSub RTN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTN c at 1142:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1142:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTN <var> NaN
>
> ✗ FSub RTN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTN 0 c at 1144:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1144:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTN +0.0 <var>
>
> ✗ FSub RTN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN +0.0 +0.0
>
> ✗ FSub RTN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN +0.0 -0.0
>
> ✗ FSub RTN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN +0.0 NaN
>
> ✗ FSub RTN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTN -0 c at 1146:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1146:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTN -0.0 <var>
>
> ✗ FSub RTN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN -0.0 +0.0
>
> ✗ FSub RTN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN -0.0 -0.0
>
> ✗ FSub RTN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN -0.0 NaN
>
> ✗ FSub RTN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTN NaN c at 1148:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1148:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTN NaN <var>
>
> ✗ FSub RTN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN NaN +0.0
>
> ✗ FSub RTN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN NaN -0.0
>
> ✗ FSub RTN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTN NaN NaN
>
> ✗ FMul RTN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTN c at 1150:f c at 1151:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1150:f |-> 0 0x0
> ┃ │ c at 1151:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMul RTN <var> <var>
>
> ✗ FMul RTN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTN c at 1153:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1153:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTN <var> +0.0
>
> ✗ FMul RTN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTN c at 1155:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1155:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTN <var> -0.0
>
> ✗ FMul RTN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTN c at 1157:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1157:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTN <var> NaN
>
> ✗ FMul RTN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTN 0 c at 1159:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1159:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTN +0.0 <var>
>
> ✗ FMul RTN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN +0.0 +0.0
>
> ✗ FMul RTN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN +0.0 -0.0
>
> ✗ FMul RTN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN +0.0 NaN
>
> ✗ FMul RTN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTN -0 c at 1161:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1161:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTN -0.0 <var>
>
> ✗ FMul RTN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN -0.0 +0.0
>
> ✗ FMul RTN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN -0.0 -0.0
>
> ✗ FMul RTN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN -0.0 NaN
>
> ✗ FMul RTN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTN NaN c at 1163:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1163:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTN NaN <var>
>
> ✗ FMul RTN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN NaN +0.0
>
> ✗ FMul RTN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN NaN -0.0
>
> ✗ FMul RTN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTN NaN NaN
>
> ✗ FDiv RTN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTN c at 1165:f c at 1166:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1165:f |-> 0 0x0
> ┃ │ c at 1166:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FDiv RTN <var> <var>
>
> ✗ FDiv RTN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTN c at 1168:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1168:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTN <var> +0.0
>
> ✗ FDiv RTN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTN c at 1170:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1170:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTN <var> -0.0
>
> ✗ FDiv RTN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTN c at 1172:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1172:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTN <var> NaN
>
> ✗ FDiv RTN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTN 0 c at 1174:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1174:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTN +0.0 <var>
>
> ✗ FDiv RTN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN +0.0 +0.0
>
> ✗ FDiv RTN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN +0.0 -0.0
>
> ✗ FDiv RTN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN +0.0 NaN
>
> ✗ FDiv RTN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTN -0 c at 1176:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1176:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTN -0.0 <var>
>
> ✗ FDiv RTN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN -0.0 +0.0
>
> ✗ FDiv RTN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN -0.0 -0.0
>
> ✗ FDiv RTN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN -0.0 NaN
>
> ✗ FDiv RTN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTN NaN c at 1178:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1178:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTN NaN <var>
>
> ✗ FDiv RTN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN NaN +0.0
>
> ✗ FDiv RTN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN NaN -0.0
>
> ✗ FDiv RTN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTN NaN NaN
>
> ✗ FRem <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1180:f c at 1181:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1180:f |-> 0 0x0
> ┃ │ c at 1181:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FRem <var> <var>
>
> ✗ FRem <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1183:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1183:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> +0.0
>
> ✗ FRem <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1185:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1185:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> -0.0
>
> ✗ FRem <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1187:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1187:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> NaN
>
> ✗ FRem +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem 0 c at 1189:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1189:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem +0.0 <var>
>
> ✗ FRem +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 +0.0
>
> ✗ FRem +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 -0.0
>
> ✗ FRem +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 NaN
>
> ✗ FRem -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem -0 c at 1191:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1191:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem -0.0 <var>
>
> ✗ FRem -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 +0.0
>
> ✗ FRem -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 -0.0
>
> ✗ FRem -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 NaN
>
> ✗ FRem NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem NaN c at 1193:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1193:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem NaN <var>
>
> ✗ FRem NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN +0.0
>
> ✗ FRem NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN -0.0
>
> ✗ FRem NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN NaN
>
> ✗ FMin <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1204 = ite (eq c at 1195:f c at 1196:f) c at 1195:f (ite c at 1202:b c at 1195:f c at 1196:f)
> ┃ │ -- :1:0
> ┃ │ v1205 = ite (floatLt c at 1196:f c at 1195:f) c at 1196:f v1204
> ┃ │ -- :1:0
> ┃ │ v1206 = ite (floatLt c at 1195:f c at 1196:f) c at 1195:f v1205
> ┃ │ -- :1:0
> ┃ │ v1207 = ite (floatIsNaN c at 1196:f) c at 1195:f v1206
> ┃ │ in ite (floatIsNaN c at 1195:f) c at 1196:f v1207
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1195:f |-> 0 0x0
> ┃ │ c at 1196:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMin <var> <var>
>
> ✗ FMin <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1216 = ite (eq c at 1209:f 0) c at 1209:f (ite c at 1214:b c at 1209:f 0)
> ┃ │ -- :1:0
> ┃ │ v1217 = ite (floatLt 0 c at 1209:f) 0 v1216
> ┃ │ -- :1:0
> ┃ │ v1218 = ite (floatLt c at 1209:f 0) c at 1209:f v1217
> ┃ │ in ite (floatIsNaN c at 1209:f) 0 v1218
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1209:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> +0.0
>
> ✗ FMin <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1227 = ite (eq c at 1220:f -0) c at 1220:f (ite c at 1225:b c at 1220:f -0)
> ┃ │ -- :1:0
> ┃ │ v1228 = ite (floatLt -0 c at 1220:f) -0 v1227
> ┃ │ -- :1:0
> ┃ │ v1229 = ite (floatLt c at 1220:f -0) c at 1220:f v1228
> ┃ │ in ite (floatIsNaN c at 1220:f) -0 v1229
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1220:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMin <var> -0.0
>
> ✗ FMin <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 1231:f) NaN c at 1231:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1231:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> NaN
>
> ✗ FMin +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1241 = ite (eq 0 c at 1234:f) 0 (ite c at 1239:b 0 c at 1234:f)
> ┃ │ -- :1:0
> ┃ │ v1242 = ite (floatLt c at 1234:f 0) c at 1234:f v1241
> ┃ │ in ite (floatIsNaN c at 1234:f) 0 (ite (floatLt 0 c at 1234:f) 0 v1242)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1234:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin +0.0 <var>
>
> ✗ FMin +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 +0.0
>
> ✓ FMin +0.0 -0.0 passed 1 test.
> ✗ FMin +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 NaN
>
> ✗ FMin -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1254 = ite (eq -0 c at 1247:f) -0 (ite c at 1252:b -0 c at 1247:f)
> ┃ │ -- :1:0
> ┃ │ v1255 = ite (floatLt c at 1247:f -0) c at 1247:f v1254
> ┃ │ in ite (floatIsNaN c at 1247:f) -0 (ite (floatLt -0 c at 1247:f) -0 v1255)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1247:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMin -0.0 <var>
>
> ✓ FMin -0.0 +0.0 passed 1 test.
> ✗ FMin -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 -0.0
>
> ✗ FMin -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 NaN
>
> ✗ FMin NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 1260:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1260:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin NaN <var>
>
> ✗ FMin NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN +0.0
>
> ✗ FMin NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN -0.0
>
> ✗ FMin NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN NaN
>
> ✗ FMax <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1270 = ite (eq c at 1261:f c at 1262:f) c at 1261:f (ite c at 1268:b c at 1261:f c at 1262:f)
> ┃ │ -- :1:0
> ┃ │ v1271 = ite (floatLt c at 1262:f c at 1261:f) c at 1261:f v1270
> ┃ │ -- :1:0
> ┃ │ v1272 = ite (floatLt c at 1261:f c at 1262:f) c at 1262:f v1271
> ┃ │ -- :1:0
> ┃ │ v1273 = ite (floatIsNaN c at 1262:f) c at 1261:f v1272
> ┃ │ in ite (floatIsNaN c at 1261:f) c at 1262:f v1273
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1261:f |-> 0 0x0
> ┃ │ c at 1262:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMax <var> <var>
>
> ✗ FMax <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1282 = ite (eq c at 1275:f 0) c at 1275:f (ite c at 1280:b c at 1275:f 0)
> ┃ │ -- :1:0
> ┃ │ v1283 = ite (floatLt 0 c at 1275:f) c at 1275:f v1282
> ┃ │ in ite (floatIsNaN c at 1275:f) 0 (ite (floatLt c at 1275:f 0) 0 v1283)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1275:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> +0.0
>
> ✗ FMax <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1293 = ite (eq c at 1286:f -0) c at 1286:f (ite c at 1291:b c at 1286:f -0)
> ┃ │ -- :1:0
> ┃ │ v1294 = ite (floatLt -0 c at 1286:f) c at 1286:f v1293
> ┃ │ in ite (floatIsNaN c at 1286:f) -0 (ite (floatLt c at 1286:f -0) -0 v1294)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1286:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMax <var> -0.0
>
> ✗ FMax <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 1297:f) NaN c at 1297:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1297:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> NaN
>
> ✗ FMax +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1307 = ite (eq 0 c at 1300:f) 0 (ite c at 1305:b 0 c at 1300:f)
> ┃ │ -- :1:0
> ┃ │ v1308 = ite (floatLt c at 1300:f 0) 0 v1307
> ┃ │ -- :1:0
> ┃ │ v1309 = ite (floatLt 0 c at 1300:f) c at 1300:f v1308
> ┃ │ in ite (floatIsNaN c at 1300:f) 0 v1309
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1300:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax +0.0 <var>
>
> ✗ FMax +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 +0.0
>
> ✓ FMax +0.0 -0.0 passed 1 test.
> ✗ FMax +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 NaN
>
> ✗ FMax -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1320 = ite (eq -0 c at 1313:f) -0 (ite c at 1318:b -0 c at 1313:f)
> ┃ │ -- :1:0
> ┃ │ v1321 = ite (floatLt c at 1313:f -0) -0 v1320
> ┃ │ -- :1:0
> ┃ │ v1322 = ite (floatLt -0 c at 1313:f) c at 1313:f v1321
> ┃ │ in ite (floatIsNaN c at 1313:f) -0 v1322
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1313:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMax -0.0 <var>
>
> ✓ FMax -0.0 +0.0 passed 1 test.
> ✗ FMax -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 -0.0
>
> ✗ FMax -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 NaN
>
> ✗ FMax NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 1326:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1326:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax NaN <var>
>
> ✗ FMax NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN +0.0
>
> ✗ FMax NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN -0.0
>
> ✗ FMax NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN NaN
>
> ✗ FMA RTN <var> <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 3 shrinks.
> shrink path: 1:a3
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1327:f c at 1328:f c at 1329:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1327:f |-> 0 0x0
> ┃ │ c at 1328:f |-> 0 0x0
> ┃ │ c at 1329:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a3" FMA RTN <var> <var> <var>
>
> ✗ FMA RTN <var> <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1331:f c at 1332:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1331:f |-> 0 0x0
> ┃ │ c at 1332:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN <var> <var> +0.0
>
> ✗ FMA RTN <var> <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1334:f c at 1335:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1334:f |-> 0 0x0
> ┃ │ c at 1335:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN <var> <var> -0.0
>
> ✗ FMA RTN <var> <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1337:f c at 1338:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1337:f |-> 0 0x0
> ┃ │ c at 1338:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN <var> <var> NaN
>
> ✗ FMA RTN <var> +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1340:f 0 c at 1341:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1340:f |-> 0 0x0
> ┃ │ c at 1341:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN <var> +0.0 <var>
>
> ✗ FMA RTN <var> +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1343:f 0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1343:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> +0.0 +0.0
>
> ✗ FMA RTN <var> +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1345:f 0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1345:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> +0.0 -0.0
>
> ✗ FMA RTN <var> +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1347:f 0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1347:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> +0.0 NaN
>
> ✗ FMA RTN <var> -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1349:f -0 c at 1350:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1349:f |-> 0 0x0
> ┃ │ c at 1350:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN <var> -0.0 <var>
>
> ✗ FMA RTN <var> -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1352:f -0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1352:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> -0.0 +0.0
>
> ✗ FMA RTN <var> -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1354:f -0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1354:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> -0.0 -0.0
>
> ✗ FMA RTN <var> -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1356:f -0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1356:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> -0.0 NaN
>
> ✗ FMA RTN <var> NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1358:f NaN c at 1359:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1358:f |-> 0 0x0
> ┃ │ c at 1359:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN <var> NaN <var>
>
> ✗ FMA RTN <var> NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1361:f NaN 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1361:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> NaN +0.0
>
> ✗ FMA RTN <var> NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1363:f NaN -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1363:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> NaN -0.0
>
> ✗ FMA RTN <var> NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN c at 1365:f NaN NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1365:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN <var> NaN NaN
>
> ✗ FMA RTN +0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN 0 c at 1367:f c at 1368:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1367:f |-> 0 0x0
> ┃ │ c at 1368:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN +0.0 <var> <var>
>
> ✗ FMA RTN +0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN 0 c at 1370:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1370:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN +0.0 <var> +0.0
>
> ✗ FMA RTN +0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN 0 c at 1372:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1372:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN +0.0 <var> -0.0
>
> ✗ FMA RTN +0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN 0 c at 1374:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1374:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN +0.0 <var> NaN
>
> ✗ FMA RTN +0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN 0 0 c at 1376:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1376:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN +0.0 +0.0 <var>
>
> ✗ FMA RTN +0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 +0.0 +0.0
>
> ✗ FMA RTN +0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 +0.0 -0.0
>
> ✗ FMA RTN +0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 +0.0 NaN
>
> ✗ FMA RTN +0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN 0 -0 c at 1378:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1378:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN +0.0 -0.0 <var>
>
> ✗ FMA RTN +0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 -0.0 +0.0
>
> ✗ FMA RTN +0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 -0.0 -0.0
>
> ✗ FMA RTN +0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 -0.0 NaN
>
> ✗ FMA RTN +0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN 0 NaN c at 1380:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1380:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN +0.0 NaN <var>
>
> ✗ FMA RTN +0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 NaN +0.0
>
> ✗ FMA RTN +0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 NaN -0.0
>
> ✗ FMA RTN +0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN +0.0 NaN NaN
>
> ✗ FMA RTN -0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN -0 c at 1382:f c at 1383:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1382:f |-> 0 0x0
> ┃ │ c at 1383:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN -0.0 <var> <var>
>
> ✗ FMA RTN -0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN -0 c at 1385:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1385:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN -0.0 <var> +0.0
>
> ✗ FMA RTN -0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN -0 c at 1387:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1387:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN -0.0 <var> -0.0
>
> ✗ FMA RTN -0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN -0 c at 1389:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1389:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN -0.0 <var> NaN
>
> ✗ FMA RTN -0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN -0 0 c at 1391:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1391:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN -0.0 +0.0 <var>
>
> ✗ FMA RTN -0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 +0.0 +0.0
>
> ✗ FMA RTN -0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 +0.0 -0.0
>
> ✗ FMA RTN -0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 +0.0 NaN
>
> ✗ FMA RTN -0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN -0 -0 c at 1393:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1393:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN -0.0 -0.0 <var>
>
> ✗ FMA RTN -0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 -0.0 +0.0
>
> ✗ FMA RTN -0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 -0.0 -0.0
>
> ✗ FMA RTN -0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 -0.0 NaN
>
> ✗ FMA RTN -0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN -0 NaN c at 1395:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1395:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN -0.0 NaN <var>
>
> ✗ FMA RTN -0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 NaN +0.0
>
> ✗ FMA RTN -0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 NaN -0.0
>
> ✗ FMA RTN -0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN -0.0 NaN NaN
>
> ✗ FMA RTN NaN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN NaN c at 1397:f c at 1398:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1397:f |-> 0 0x0
> ┃ │ c at 1398:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTN NaN <var> <var>
>
> ✗ FMA RTN NaN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN NaN c at 1400:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1400:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN NaN <var> +0.0
>
> ✗ FMA RTN NaN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN NaN c at 1402:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1402:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN NaN <var> -0.0
>
> ✗ FMA RTN NaN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN NaN c at 1404:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1404:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN NaN <var> NaN
>
> ✗ FMA RTN NaN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN NaN 0 c at 1406:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1406:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN NaN +0.0 <var>
>
> ✗ FMA RTN NaN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN +0.0 +0.0
>
> ✗ FMA RTN NaN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN +0.0 -0.0
>
> ✗ FMA RTN NaN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN +0.0 NaN
>
> ✗ FMA RTN NaN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN NaN -0 c at 1408:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1408:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN NaN -0.0 <var>
>
> ✗ FMA RTN NaN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN -0.0 +0.0
>
> ✗ FMA RTN NaN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN -0.0 -0.0
>
> ✗ FMA RTN NaN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN -0.0 NaN
>
> ✗ FMA RTN NaN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTN NaN NaN c at 1410:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1410:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTN NaN NaN <var>
>
> ✗ FMA RTN NaN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN NaN +0.0
>
> ✗ FMA RTN NaN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN NaN -0.0
>
> ✗ FMA RTN NaN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTN NaN NaN NaN
>
> ✗ <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 1412:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1412:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" <var>
>
> ✗ +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" +0.0
>
> ✗ -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" -0.0
>
> ✗ NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" NaN
>
> ✗ FloatFromBits <var> failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFromBinary c at 1413:bv
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1413:bv |-> 0x0:[32]
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FloatFromBits <var>
>
> ✗ FNeg <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatNeg c at 1415:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1415:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FNeg <var>
>
> ✗ FNeg +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg +0.0
>
> ✗ FNeg -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg -0.0
>
> ✗ FNeg NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FNeg NaN
>
> ✗ FAbs <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAbs c at 1417:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1417:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAbs <var>
>
> ✗ FAbs +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs +0.0
>
> ✗ FAbs -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs -0.0
>
> ✗ FAbs NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAbs NaN
>
> ✗ FSqrt RTZ <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSqrt RTZ c at 1419:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1419:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSqrt RTZ <var>
>
> ✗ FSqrt RTZ +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTZ +0.0
>
> ✗ FSqrt RTZ -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTZ -0.0
>
> ✗ FSqrt RTZ NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSqrt RTZ NaN
>
> ✗ FRound RTZ <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRound RTZ c at 1421:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1421:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRound RTZ <var>
>
> ✗ FRound RTZ +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTZ +0.0
>
> ✗ FRound RTZ -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTZ -0.0
>
> ✗ FRound RTZ NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRound RTZ NaN
>
> ✗ FAdd RTZ <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTZ c at 1423:f c at 1424:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1423:f |-> 0 0x0
> ┃ │ c at 1424:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FAdd RTZ <var> <var>
>
> ✗ FAdd RTZ <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTZ c at 1426:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1426:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTZ <var> +0.0
>
> ✗ FAdd RTZ <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTZ c at 1428:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1428:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTZ <var> -0.0
>
> ✗ FAdd RTZ <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTZ c at 1430:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1430:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTZ <var> NaN
>
> ✗ FAdd RTZ +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTZ 0 c at 1432:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1432:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTZ +0.0 <var>
>
> ✗ FAdd RTZ +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ +0.0 +0.0
>
> ✗ FAdd RTZ +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ +0.0 -0.0
>
> ✗ FAdd RTZ +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ +0.0 NaN
>
> ✗ FAdd RTZ -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTZ -0 c at 1434:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1434:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTZ -0.0 <var>
>
> ✗ FAdd RTZ -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ -0.0 +0.0
>
> ✗ FAdd RTZ -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ -0.0 -0.0
>
> ✗ FAdd RTZ -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ -0.0 NaN
>
> ✗ FAdd RTZ NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatAdd RTZ NaN c at 1436:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1436:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FAdd RTZ NaN <var>
>
> ✗ FAdd RTZ NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ NaN +0.0
>
> ✗ FAdd RTZ NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ NaN -0.0
>
> ✗ FAdd RTZ NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FAdd RTZ NaN NaN
>
> ✗ FSub RTZ <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTZ c at 1438:f c at 1439:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1438:f |-> 0 0x0
> ┃ │ c at 1439:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FSub RTZ <var> <var>
>
> ✗ FSub RTZ <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTZ c at 1441:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1441:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTZ <var> +0.0
>
> ✗ FSub RTZ <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTZ c at 1443:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1443:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTZ <var> -0.0
>
> ✗ FSub RTZ <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTZ c at 1445:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1445:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTZ <var> NaN
>
> ✗ FSub RTZ +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTZ 0 c at 1447:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1447:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTZ +0.0 <var>
>
> ✗ FSub RTZ +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ +0.0 +0.0
>
> ✗ FSub RTZ +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ +0.0 -0.0
>
> ✗ FSub RTZ +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ +0.0 NaN
>
> ✗ FSub RTZ -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTZ -0 c at 1449:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1449:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTZ -0.0 <var>
>
> ✗ FSub RTZ -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ -0.0 +0.0
>
> ✗ FSub RTZ -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ -0.0 -0.0
>
> ✗ FSub RTZ -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ -0.0 NaN
>
> ✗ FSub RTZ NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatSub RTZ NaN c at 1451:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1451:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FSub RTZ NaN <var>
>
> ✗ FSub RTZ NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ NaN +0.0
>
> ✗ FSub RTZ NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ NaN -0.0
>
> ✗ FSub RTZ NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FSub RTZ NaN NaN
>
> ✗ FMul RTZ <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTZ c at 1453:f c at 1454:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1453:f |-> 0 0x0
> ┃ │ c at 1454:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMul RTZ <var> <var>
>
> ✗ FMul RTZ <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTZ c at 1456:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1456:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTZ <var> +0.0
>
> ✗ FMul RTZ <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTZ c at 1458:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1458:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTZ <var> -0.0
>
> ✗ FMul RTZ <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTZ c at 1460:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1460:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTZ <var> NaN
>
> ✗ FMul RTZ +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTZ 0 c at 1462:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1462:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTZ +0.0 <var>
>
> ✗ FMul RTZ +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ +0.0 +0.0
>
> ✗ FMul RTZ +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ +0.0 -0.0
>
> ✗ FMul RTZ +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ +0.0 NaN
>
> ✗ FMul RTZ -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTZ -0 c at 1464:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1464:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTZ -0.0 <var>
>
> ✗ FMul RTZ -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ -0.0 +0.0
>
> ✗ FMul RTZ -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ -0.0 -0.0
>
> ✗ FMul RTZ -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ -0.0 NaN
>
> ✗ FMul RTZ NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatMul RTZ NaN c at 1466:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1466:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMul RTZ NaN <var>
>
> ✗ FMul RTZ NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ NaN +0.0
>
> ✗ FMul RTZ NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ NaN -0.0
>
> ✗ FMul RTZ NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMul RTZ NaN NaN
>
> ✗ FDiv RTZ <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTZ c at 1468:f c at 1469:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1468:f |-> 0 0x0
> ┃ │ c at 1469:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FDiv RTZ <var> <var>
>
> ✗ FDiv RTZ <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTZ c at 1471:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1471:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTZ <var> +0.0
>
> ✗ FDiv RTZ <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTZ c at 1473:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1473:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTZ <var> -0.0
>
> ✗ FDiv RTZ <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTZ c at 1475:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1475:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTZ <var> NaN
>
> ✗ FDiv RTZ +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTZ 0 c at 1477:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1477:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTZ +0.0 <var>
>
> ✗ FDiv RTZ +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ +0.0 +0.0
>
> ✗ FDiv RTZ +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ +0.0 -0.0
>
> ✗ FDiv RTZ +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ +0.0 NaN
>
> ✗ FDiv RTZ -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTZ -0 c at 1479:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1479:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTZ -0.0 <var>
>
> ✗ FDiv RTZ -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ -0.0 +0.0
>
> ✗ FDiv RTZ -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ -0.0 -0.0
>
> ✗ FDiv RTZ -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ -0.0 NaN
>
> ✗ FDiv RTZ NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatDiv RTZ NaN c at 1481:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1481:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FDiv RTZ NaN <var>
>
> ✗ FDiv RTZ NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ NaN +0.0
>
> ✗ FDiv RTZ NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ NaN -0.0
>
> ✗ FDiv RTZ NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FDiv RTZ NaN NaN
>
> ✗ FRem <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1483:f c at 1484:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1483:f |-> 0 0x0
> ┃ │ c at 1484:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FRem <var> <var>
>
> ✗ FRem <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1486:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1486:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> +0.0
>
> ✗ FRem <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1488:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1488:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> -0.0
>
> ✗ FRem <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem c at 1490:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1490:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem <var> NaN
>
> ✗ FRem +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem 0 c at 1492:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1492:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem +0.0 <var>
>
> ✗ FRem +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 +0.0
>
> ✗ FRem +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 -0.0
>
> ✗ FRem +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem +0.0 NaN
>
> ✗ FRem -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem -0 c at 1494:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1494:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem -0.0 <var>
>
> ✗ FRem -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 +0.0
>
> ✗ FRem -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 -0.0
>
> ✗ FRem -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem -0.0 NaN
>
> ✗ FRem NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatRem NaN c at 1496:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1496:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FRem NaN <var>
>
> ✗ FRem NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN +0.0
>
> ✗ FRem NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN -0.0
>
> ✗ FRem NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FRem NaN NaN
>
> ✗ FMin <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1507 = ite (eq c at 1498:f c at 1499:f) c at 1498:f (ite c at 1505:b c at 1498:f c at 1499:f)
> ┃ │ -- :1:0
> ┃ │ v1508 = ite (floatLt c at 1499:f c at 1498:f) c at 1499:f v1507
> ┃ │ -- :1:0
> ┃ │ v1509 = ite (floatLt c at 1498:f c at 1499:f) c at 1498:f v1508
> ┃ │ -- :1:0
> ┃ │ v1510 = ite (floatIsNaN c at 1499:f) c at 1498:f v1509
> ┃ │ in ite (floatIsNaN c at 1498:f) c at 1499:f v1510
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1498:f |-> 0 0x0
> ┃ │ c at 1499:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMin <var> <var>
>
> ✗ FMin <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1519 = ite (eq c at 1512:f 0) c at 1512:f (ite c at 1517:b c at 1512:f 0)
> ┃ │ -- :1:0
> ┃ │ v1520 = ite (floatLt 0 c at 1512:f) 0 v1519
> ┃ │ -- :1:0
> ┃ │ v1521 = ite (floatLt c at 1512:f 0) c at 1512:f v1520
> ┃ │ in ite (floatIsNaN c at 1512:f) 0 v1521
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1512:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> +0.0
>
> ✗ FMin <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1530 = ite (eq c at 1523:f -0) c at 1523:f (ite c at 1528:b c at 1523:f -0)
> ┃ │ -- :1:0
> ┃ │ v1531 = ite (floatLt -0 c at 1523:f) -0 v1530
> ┃ │ -- :1:0
> ┃ │ v1532 = ite (floatLt c at 1523:f -0) c at 1523:f v1531
> ┃ │ in ite (floatIsNaN c at 1523:f) -0 v1532
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1523:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMin <var> -0.0
>
> ✗ FMin <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 1534:f) NaN c at 1534:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1534:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin <var> NaN
>
> ✗ FMin +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1544 = ite (eq 0 c at 1537:f) 0 (ite c at 1542:b 0 c at 1537:f)
> ┃ │ -- :1:0
> ┃ │ v1545 = ite (floatLt c at 1537:f 0) c at 1537:f v1544
> ┃ │ in ite (floatIsNaN c at 1537:f) 0 (ite (floatLt 0 c at 1537:f) 0 v1545)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1537:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin +0.0 <var>
>
> ✗ FMin +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 +0.0
>
> ✓ FMin +0.0 -0.0 passed 1 test.
> ✗ FMin +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin +0.0 NaN
>
> ✗ FMin -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1557 = ite (eq -0 c at 1550:f) -0 (ite c at 1555:b -0 c at 1550:f)
> ┃ │ -- :1:0
> ┃ │ v1558 = ite (floatLt c at 1550:f -0) c at 1550:f v1557
> ┃ │ in ite (floatIsNaN c at 1550:f) -0 (ite (floatLt -0 c at 1550:f) -0 v1558)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1550:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMin -0.0 <var>
>
> ✓ FMin -0.0 +0.0 passed 1 test.
> ✗ FMin -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 -0.0
>
> ✗ FMin -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin -0.0 NaN
>
> ✗ FMin NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 1563:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1563:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMin NaN <var>
>
> ✗ FMin NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN +0.0
>
> ✗ FMin NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN -0.0
>
> ✗ FMin NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMin NaN NaN
>
> ✗ FMax <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1573 = ite (eq c at 1564:f c at 1565:f) c at 1564:f (ite c at 1571:b c at 1564:f c at 1565:f)
> ┃ │ -- :1:0
> ┃ │ v1574 = ite (floatLt c at 1565:f c at 1564:f) c at 1564:f v1573
> ┃ │ -- :1:0
> ┃ │ v1575 = ite (floatLt c at 1564:f c at 1565:f) c at 1565:f v1574
> ┃ │ -- :1:0
> ┃ │ v1576 = ite (floatIsNaN c at 1565:f) c at 1564:f v1575
> ┃ │ in ite (floatIsNaN c at 1564:f) c at 1565:f v1576
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1564:f |-> 0 0x0
> ┃ │ c at 1565:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMax <var> <var>
>
> ✗ FMax <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1585 = ite (eq c at 1578:f 0) c at 1578:f (ite c at 1583:b c at 1578:f 0)
> ┃ │ -- :1:0
> ┃ │ v1586 = ite (floatLt 0 c at 1578:f) c at 1578:f v1585
> ┃ │ in ite (floatIsNaN c at 1578:f) 0 (ite (floatLt c at 1578:f 0) 0 v1586)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1578:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> +0.0
>
> ✗ FMax <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1596 = ite (eq c at 1589:f -0) c at 1589:f (ite c at 1594:b c at 1589:f -0)
> ┃ │ -- :1:0
> ┃ │ v1597 = ite (floatLt -0 c at 1589:f) c at 1589:f v1596
> ┃ │ in ite (floatIsNaN c at 1589:f) -0 (ite (floatLt c at 1589:f -0) -0 v1597)
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1589:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:b" FMax <var> -0.0
>
> ✗ FMax <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ ite (floatIsNaN c at 1600:f) NaN c at 1600:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1600:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax <var> NaN
>
> ✗ FMax +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1610 = ite (eq 0 c at 1603:f) 0 (ite c at 1608:b 0 c at 1603:f)
> ┃ │ -- :1:0
> ┃ │ v1611 = ite (floatLt c at 1603:f 0) 0 v1610
> ┃ │ -- :1:0
> ┃ │ v1612 = ite (floatLt 0 c at 1603:f) c at 1603:f v1611
> ┃ │ in ite (floatIsNaN c at 1603:f) 0 v1612
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1603:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax +0.0 <var>
>
> ✗ FMax +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 +0.0
>
> ✓ FMax +0.0 -0.0 passed 1 test.
> ✗ FMax +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax +0.0 NaN
>
> ✗ FMax -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 2 tests and 1 shrink.
> shrink path: 2:b
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ let -- :1:0
> ┃ │ v1623 = ite (eq -0 c at 1616:f) -0 (ite c at 1621:b -0 c at 1616:f)
> ┃ │ -- :1:0
> ┃ │ v1624 = ite (floatLt c at 1616:f -0) -0 v1623
> ┃ │ -- :1:0
> ┃ │ v1625 = ite (floatLt -0 c at 1616:f) c at 1616:f v1624
> ┃ │ in ite (floatIsNaN c at 1616:f) -0 v1625
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1616:f |-> -0 0x80000000
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "2:b" FMax -0.0 <var>
>
> ✓ FMax -0.0 +0.0 passed 1 test.
> ✗ FMax -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 -0.0
>
> ✗ FMax -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax -0.0 NaN
>
> ✗ FMax NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ c at 1629:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1629:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMax NaN <var>
>
> ✗ FMax NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN +0.0
>
> ✗ FMax NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN -0.0
>
> ✗ FMax NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMax NaN NaN
>
> ✗ FMA RTZ <var> <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 3 shrinks.
> shrink path: 1:a3
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1630:f c at 1631:f c at 1632:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1630:f |-> 0 0x0
> ┃ │ c at 1631:f |-> 0 0x0
> ┃ │ c at 1632:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a3" FMA RTZ <var> <var> <var>
>
> ✗ FMA RTZ <var> <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1634:f c at 1635:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1634:f |-> 0 0x0
> ┃ │ c at 1635:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ <var> <var> +0.0
>
> ✗ FMA RTZ <var> <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1637:f c at 1638:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1637:f |-> 0 0x0
> ┃ │ c at 1638:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ <var> <var> -0.0
>
> ✗ FMA RTZ <var> <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1640:f c at 1641:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1640:f |-> 0 0x0
> ┃ │ c at 1641:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ <var> <var> NaN
>
> ✗ FMA RTZ <var> +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1643:f 0 c at 1644:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1643:f |-> 0 0x0
> ┃ │ c at 1644:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ <var> +0.0 <var>
>
> ✗ FMA RTZ <var> +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1646:f 0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1646:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> +0.0 +0.0
>
> ✗ FMA RTZ <var> +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1648:f 0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1648:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> +0.0 -0.0
>
> ✗ FMA RTZ <var> +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1650:f 0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1650:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> +0.0 NaN
>
> ✗ FMA RTZ <var> -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1652:f -0 c at 1653:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1652:f |-> 0 0x0
> ┃ │ c at 1653:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ <var> -0.0 <var>
>
> ✗ FMA RTZ <var> -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1655:f -0 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1655:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> -0.0 +0.0
>
> ✗ FMA RTZ <var> -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1657:f -0 -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1657:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> -0.0 -0.0
>
> ✗ FMA RTZ <var> -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1659:f -0 NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1659:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> -0.0 NaN
>
> ✗ FMA RTZ <var> NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1661:f NaN c at 1662:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1661:f |-> 0 0x0
> ┃ │ c at 1662:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ <var> NaN <var>
>
> ✗ FMA RTZ <var> NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1664:f NaN 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1664:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> NaN +0.0
>
> ✗ FMA RTZ <var> NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1666:f NaN -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1666:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> NaN -0.0
>
> ✗ FMA RTZ <var> NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ c at 1668:f NaN NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1668:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ <var> NaN NaN
>
> ✗ FMA RTZ +0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ 0 c at 1670:f c at 1671:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1670:f |-> 0 0x0
> ┃ │ c at 1671:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ +0.0 <var> <var>
>
> ✗ FMA RTZ +0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ 0 c at 1673:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1673:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ +0.0 <var> +0.0
>
> ✗ FMA RTZ +0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ 0 c at 1675:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1675:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ +0.0 <var> -0.0
>
> ✗ FMA RTZ +0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ 0 c at 1677:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1677:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ +0.0 <var> NaN
>
> ✗ FMA RTZ +0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ 0 0 c at 1679:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1679:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ +0.0 +0.0 <var>
>
> ✗ FMA RTZ +0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 +0.0 +0.0
>
> ✗ FMA RTZ +0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 +0.0 -0.0
>
> ✗ FMA RTZ +0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 +0.0 NaN
>
> ✗ FMA RTZ +0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ 0 -0 c at 1681:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1681:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ +0.0 -0.0 <var>
>
> ✗ FMA RTZ +0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 -0.0 +0.0
>
> ✗ FMA RTZ +0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 -0.0 -0.0
>
> ✗ FMA RTZ +0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 -0.0 NaN
>
> ✗ FMA RTZ +0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ 0 NaN c at 1683:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1683:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ +0.0 NaN <var>
>
> ✗ FMA RTZ +0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 NaN +0.0
>
> ✗ FMA RTZ +0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 NaN -0.0
>
> ✗ FMA RTZ +0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ +0.0 NaN NaN
>
> ✗ FMA RTZ -0.0 <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ -0 c at 1685:f c at 1686:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1685:f |-> 0 0x0
> ┃ │ c at 1686:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ -0.0 <var> <var>
>
> ✗ FMA RTZ -0.0 <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ -0 c at 1688:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1688:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ -0.0 <var> +0.0
>
> ✗ FMA RTZ -0.0 <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ -0 c at 1690:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1690:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ -0.0 <var> -0.0
>
> ✗ FMA RTZ -0.0 <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ -0 c at 1692:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1692:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ -0.0 <var> NaN
>
> ✗ FMA RTZ -0.0 +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ -0 0 c at 1694:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1694:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ -0.0 +0.0 <var>
>
> ✗ FMA RTZ -0.0 +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 +0.0 +0.0
>
> ✗ FMA RTZ -0.0 +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ -0 0x80000000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 +0.0 -0.0
>
> ✗ FMA RTZ -0.0 +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 +0.0 NaN
>
> ✗ FMA RTZ -0.0 -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ -0 -0 c at 1696:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1696:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ -0.0 -0.0 <var>
>
> ✗ FMA RTZ -0.0 -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 -0.0 +0.0
>
> ✗ FMA RTZ -0.0 -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ 0 0x0
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 -0.0 -0.0
>
> ✗ FMA RTZ -0.0 -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 -0.0 NaN
>
> ✗ FMA RTZ -0.0 NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ -0 NaN c at 1698:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1698:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ -0.0 NaN <var>
>
> ✗ FMA RTZ -0.0 NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 NaN +0.0
>
> ✗ FMA RTZ -0.0 NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 NaN -0.0
>
> ✗ FMA RTZ -0.0 NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ -0.0 NaN NaN
>
> ✗ FMA RTZ NaN <var> <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 2 shrinks.
> shrink path: 1:a2
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ NaN c at 1700:f c at 1701:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1700:f |-> 0 0x0
> ┃ │ c at 1701:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a2" FMA RTZ NaN <var> <var>
>
> ✗ FMA RTZ NaN <var> +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ NaN c at 1703:f 0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1703:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ NaN <var> +0.0
>
> ✗ FMA RTZ NaN <var> -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ NaN c at 1705:f -0
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1705:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ NaN <var> -0.0
>
> ✗ FMA RTZ NaN <var> NaN failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ NaN c at 1707:f NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1707:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ NaN <var> NaN
>
> ✗ FMA RTZ NaN +0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ NaN 0 c at 1709:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1709:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ NaN +0.0 <var>
>
> ✗ FMA RTZ NaN +0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN +0.0 +0.0
>
> ✗ FMA RTZ NaN +0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN +0.0 -0.0
>
> ✗ FMA RTZ NaN +0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN +0.0 NaN
>
> ✗ FMA RTZ NaN -0.0 <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ NaN -0 c at 1711:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1711:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ NaN -0.0 <var>
>
> ✗ FMA RTZ NaN -0.0 +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN -0.0 +0.0
>
> ✗ FMA RTZ NaN -0.0 -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN -0.0 -0.0
>
> ✗ FMA RTZ NaN -0.0 NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN -0.0 NaN
>
> ✗ FMA RTZ NaN NaN <var> failed at test/TestTemplate.hs:656:66
> after 1 test and 1 shrink.
> shrink path: 1:a
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ floatFMA RTZ NaN NaN c at 1713:f
> 648 ┃ gmap <- forAllWith showMap gmapGen
> ┃ │ c at 1713:f |-> 0 0x0
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:a" FMA RTZ NaN NaN <var>
>
> ✗ FMA RTZ NaN NaN +0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN NaN +0.0
>
> ✗ FMA RTZ NaN NaN -0.0 failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN NaN -0.0
>
> ✗ FMA RTZ NaN NaN NaN failed at test/TestTemplate.hs:656:66
> after 1 test.
> shrink path: 1:
>
> ┏━━ test/TestTemplate.hs ━━━
> 637 ┃ templateGroundEvalTestAlt ::
> 638 ┃ OnlineSolver solver =>
> 639 ┃ ExprBuilder t st fs ->
> 640 ┃ SolverProcess t solver ->
> 641 ┃ TestTemplate tp ->
> 642 ┃ Int ->
> 643 ┃ IO Property
> 644 ┃ templateGroundEvalTestAlt sym proc t numTests =
> 645 ┃ do (sz, gmapGen, expr) <- templateGen sym t
> 646 ┃ pure $ withTests (fromIntegral (max 1 (numTests * sz))) $ property $
> 647 ┃ do annotateShow (printSymExpr expr)
> ┃ │ NaN
> 648 ┃ gmap <- forAllWith showMap gmapGen
> 649 ┃ v <- liftIO (runMaybeT (mapGroundEval gmap expr))
> 650 ┃ case v of
> 651 ┃ Nothing -> success
> 652 ┃ Just v_ ->
> 653 ┃ do annotate (showGroundVal (exprType expr) v_)
> ┃ │ NaN 0x7fc00000
> 654 ┃ res <- liftIO (try (verifySolverEval sym proc gmap expr v_))
> 655 ┃ case res of
> 656 ┃ Left (ex :: IOError) -> footnote (show ex) >> failure
> ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 657 ┃ Right b -> if b then success else failure
>
> fd:5: hPutBuf: resource vanished (Broken pipe)
>
> This failure can be reproduced by running:
> > recheckAt (Seed 14059094355795328472 1048524260324818183) "1:" FMA RTZ NaN NaN NaN
>
> ✗ 1147 failed, 20 succeeded.
> Test suite template_tests: FAIL
> Test suite logged to: dist-ghc/test/what4-1.5.1-template_tests.log
> Test suite expr-builder-smtlib2: RUNNING...
> SOLVER SELF-REPORTED VERSIONS::
> Solver cvc4 -> This is CVC4 version 1.8
> Solver cvc5 -> This is cvc5 version 1.0.5
> Solver z3 -> Z3 version 4.8.12 - 64 bit
> Tests
> Float interpreted as real: OK
> Float uninterpreted: OK
> Float interpreted as IEEE float: OK
> float binary simplification: OK
> real float binary simplification: OK
> float cast simplification: OK
> float cast no simplification: OK
> select shl simplification: OK
> select lshr simplification: OK
> bv or-shl-zext -> concat simplification: OK
> bv domain arith scale: OK
> test bvSwap: OK
> test bvBitreverse: OK
> test unsafeSetAbstractValue1: OK
> test unsafeSetAbstractValue2: OK
> CVC4 0-tuple: IGNORED
> This test stalls the solver for some reason; line-buffering issue?
> CVC4 1-tuple: OK (0.02s)
> CVC4 pair: OK (0.03s)
> CVC4 forall binder: OK (0.02s)
> CVC4 string1: OK (0.02s)
> CVC4 string2: OK (0.05s)
> CVC4 string3: OK (0.17s)
> CVC4 string4: OK (0.15s)
> CVC4 string5: OK (0.04s)
> CVC4 string6: OK (0.02s)
> CVC4 string7: OK (1.45s)
> CVC4 binder tuple1: OK (0.03s)
> CVC4 binder tuple2: OK (0.05s)
> CVC4 rounding: OK (0.10s)
> CVC4 multidim array: OK (0.03s)
> CVC4 #182 test case: OK (0.03s)
> CVC4 0-tuple: IGNORED
> This test stalls the solver for some reason; line-buffering issue?
> CVC4 1-tuple: OK (0.03s)
> CVC4 pair: OK (0.04s)
> CVC4 forall binder: OK (0.02s)
> CVC4 string1: OK (0.03s)
> CVC4 string2: OK (0.05s)
> CVC4 string3: OK (0.26s)
> CVC4 string4: OK (0.19s)
> CVC4 string5: OK (0.04s)
> CVC4 string6: OK (0.02s)
> CVC4 string7: OK (1.37s)
> CVC4 binder tuple1: OK (0.01s)
> CVC4 binder tuple2: OK (0.02s)
> CVC4 rounding: OK (0.08s)
> CVC4 multidim array: OK (0.04s)
> CVC4 #182 test case: OK (0.02s)
> uninterpreted function scope: OK (0.04s)
> rotate test1: OK (0.03s)
> rotate test2: OK (0.04s)
> rotate test3: OK (0.04s)
> boundvarasfree: OK (0.04s)
> solver info queries
> test get solver version: OK
> test get solver name: OK
> test solver version bounds: OK
> Unsat float formula: OK (0.06s)
> Unsat float formula: OK (0.05s)
> Sat float formula: OK (3.50s)
> Sat float formula: OK (0.05s)
> Sat float formula: OK (0.06s)
> float to binary: OK (0.06s)
> float from binary: OK (0.08s)
> nested bitvector ites: OK (0.04s)
> z3 symbol prime (') char: OK (0.03s)
> Z3 0-tuple: OK (0.03s)
> Z3 1-tuple: OK (0.04s)
> Z3 pair: OK (0.04s)
> Z3 forall binder: OK (0.03s)
> Z3 string1: OK (0.07s)
> Z3 string2: OK (0.06s)
> Z3 string3: OK (0.30s)
> Z3 string4: OK (0.48s)
> Z3 string5: OK (0.06s)
> Z3 string6: OK (0.05s)
> Z3 string7: OK (0.66s)
> Z3 binder tuple1: OK (0.03s)
> Z3 binder tuple2: OK (0.03s)
> Z3 rounding: OK (0.08s)
> Z3 multidim array: OK (0.03s)
> Z3 #182 test case: OK (0.04s)
> arrayCopy: OK (0.18s)
> arraySet: OK (0.10s)
> arrayCopy/arraySet: OK (0.03s)
>
> All 83 tests passed (10.92s)
> Test suite expr-builder-smtlib2: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-expr-builder-smtlib2.log
> Test suite iteexprs_tests: RUNNING...
> Ite Expressions
> Typed pred true
> concrete Bool pred true: OK
> concrete Integer pred true: OK
> concrete BV pred true: OK
> concrete Struct pred true: OK
> concrete Array pred true: OK
> Typed pred false
> concrete Bool pred false: OK
> concrete Integer pred false: OK
> concrete BV pred false: OK
> concrete Struct pred false: OK
> concrete Array pred false: OK
> ConcretePredNegation
> Typed not true
> concrete Bool not true: OK
> concrete Integer not true: OK
> concrete BV not true: OK
> concrete Struct not true: OK
> concrete Array not true: OK
> Typed not false
> concrete Bool not false: OK
> concrete Integer not false: OK
> concrete BV not false: OK
> concrete Struct not false: OK
> concrete Array not false: OK
> Typed not not true
> concrete Bool not not true: OK
> concrete Integer not not true: OK
> concrete BV not not true: OK
> concrete Struct not not true: OK
> concrete Array not not true: OK
> Typed not not false
> concrete Bool not not false: OK
> concrete Integer not not false: OK
> concrete BV not not false: OK
> concrete Struct not not false: OK
> concrete Array not not false: OK
> ConcretePredAnd
> Typed and true true
> concrete Bool and true true: OK
> concrete Integer and true true: OK
> concrete BV and true true: OK
> concrete Struct and true true: OK
> concrete Array and true true: OK
> Typed and true false
> concrete Bool and true false: OK
> concrete Integer and true false: OK
> concrete BV and true false: OK
> concrete Struct and true false: OK
> concrete Array and true false: OK
> Typed and false true
> concrete Bool and false true: OK
> concrete Integer and false true: OK
> concrete BV and false true: OK
> concrete Struct and false true: OK
> concrete Array and false true: OK
> Typed and false false
> concrete Bool and false false: OK
> concrete Integer and false false: OK
> concrete BV and false false: OK
> concrete Struct and false false: OK
> concrete Array and false false: OK
> Typed and true (not true)
> concrete Bool and true (not true): OK
> concrete Integer and true (not true): OK
> concrete BV and true (not true): OK
> concrete Struct and true (not true): OK
> concrete Array and true (not true): OK
> Typed and (not false) true
> concrete Bool and (not false) true: OK
> concrete Integer and (not false) true: OK
> concrete BV and (not false) true: OK
> concrete Struct and (not false) true: OK
> concrete Array and (not false) true: OK
> Typed not (and false true)
> concrete Bool not (and false true): OK
> concrete Integer not (and false true): OK
> concrete BV not (and false true): OK
> concrete Struct not (and false true): OK
> concrete Array not (and false true): OK
> ConcretePredOr
> Typed or true true
> concrete Bool or true true: OK
> concrete Integer or true true: OK
> concrete BV or true true: OK
> concrete Struct or true true: OK
> concrete Array or true true: OK
> Typed or true false
> concrete Bool or true false: OK
> concrete Integer or true false: OK
> concrete BV or true false: OK
> concrete Struct or true false: OK
> concrete Array or true false: OK
> Typed or false true
> concrete Bool or false true: OK
> concrete Integer or false true: OK
> concrete BV or false true: OK
> concrete Struct or false true: OK
> concrete Array or false true: OK
> Typed or false false
> concrete Bool or false false: OK
> concrete Integer or false false: OK
> concrete BV or false false: OK
> concrete Struct or false false: OK
> concrete Array or false false: OK
> Typed or true (not true)
> concrete Bool or true (not true): OK
> concrete Integer or true (not true): OK
> concrete BV or true (not true): OK
> concrete Struct or true (not true): OK
> concrete Array or true (not true): OK
> Typed or (not false) false
> concrete Bool or (not false) false: OK
> concrete Integer or (not false) false: OK
> concrete BV or (not false) false: OK
> concrete Struct or (not false) false: OK
> concrete Array or (not false) false: OK
> Typed not (or false false)
> concrete Bool not (or false false): OK
> concrete Integer not (or false false): OK
> concrete BV not (or false false): OK
> concrete Struct not (or false false): OK
> concrete Array not (or false false): OK
> ConcreteEqPred
> Typed equal trues
> concrete Bool equal trues: OK
> concrete Integer equal trues: OK
> concrete BV equal trues: OK
> concrete Struct equal trues: OK
> concrete Array equal trues: OK
> Typed equal falses
> concrete Bool equal falses: OK
> concrete Integer equal falses: OK
> concrete BV equal falses: OK
> concrete Struct equal falses: OK
> concrete Array equal falses: OK
> Typed not equal
> concrete Bool not equal: OK
> concrete Integer not equal: OK
> concrete BV not equal: OK
> concrete Struct not equal: OK
> concrete Array not equal: OK
> Typed eq right neg
> concrete Bool eq right neg: OK
> concrete Integer eq right neg: OK
> concrete BV eq right neg: OK
> concrete Struct eq right neg: OK
> concrete Array eq right neg: OK
> Typed eq left neq
> concrete Bool eq left neq: OK
> concrete Integer eq left neq: OK
> concrete BV eq left neq: OK
> concrete Struct eq left neq: OK
> concrete Array eq left neq: OK
> Typed not (eq false true)
> concrete Bool not (eq false true): OK
> concrete Integer not (eq false true): OK
> concrete BV not (eq false true): OK
> concrete Struct not (eq false true): OK
> concrete Array not (eq false true): OK
> ConcreteXORPred
> Typed xor trues
> concrete Bool xor trues: OK
> concrete Integer xor trues: OK
> concrete BV xor trues: OK
> concrete Struct xor trues: OK
> concrete Array xor trues: OK
> Typed xor falses
> concrete Bool xor falses: OK
> concrete Integer xor falses: OK
> concrete BV xor falses: OK
> concrete Struct xor falses: OK
> concrete Array xor falses: OK
> Typed xor t f
> concrete Bool xor t f: OK
> concrete Integer xor t f: OK
> concrete BV xor t f: OK
> concrete Struct xor t f: OK
> concrete Array xor t f: OK
> Typed xor right neg
> concrete Bool xor right neg: OK
> concrete Integer xor right neg: OK
> concrete BV xor right neg: OK
> concrete Struct xor right neg: OK
> concrete Array xor right neg: OK
> Typed xor left neq
> concrete Bool xor left neq: OK
> concrete Integer xor left neq: OK
> concrete BV xor left neq: OK
> concrete Struct xor left neq: OK
> concrete Array xor left neq: OK
> Typed not (xor f t)
> concrete Bool not (xor f t): OK
> concrete Integer not (xor f t): OK
> concrete BV not (xor f t): OK
> concrete Struct not (xor f t): OK
> concrete Array not (xor f t): OK
> generated concrete predicates
> bool mux: OK (1.46s)
> ✓ bool mux passed 500 tests.
> and cases 6% █▏·················· ✓ 2%
> or cases 59% ███████████▊········ ✓ 2%
> eq cases 7% █▍·················· ✓ 2%
> xor cases 43% ████████▋··········· ✓ 2%
> not cases 47% █████████▍·········· ✓ 2%
> intEq cases 9% █▋·················· ✓ 2%
> intLe cases 5% ▉··················· ✓ 2%
> intLt cases 7% █▍·················· ✓ 2%
> intAdd cases 11% ██▏················· ✓ 2%
> intSub cases 10% ██·················· ✓ 2%
> intMul cases 10% ██·················· ✓ 2%
> intDiv cases 11% ██▏················· ✓ 2%
> intMod cases 11% ██▏················· ✓ 2%
> intIte cases 10% ██·················· ✓ 2%
> bvCount... cases 59% ███████████▊········ ✓ 2%
> int mux: OK (1.11s)
> ✓ int mux passed 500 tests.
> and cases 6% █··················· ✓ 2%
> or cases 64% ████████████▊······· ✓ 2%
> eq cases 8% █▌·················· ✓ 2%
> xor cases 45% █████████··········· ✓ 2%
> not cases 48% █████████▌·········· ✓ 2%
> intEq cases 5% █··················· ✓ 2%
> intLe cases 5% █··················· ✓ 2%
> intLt cases 5% █··················· ✓ 2%
> intAdd cases 8% █▌·················· ✓ 2%
> intSub cases 8% █▋·················· ✓ 2%
> intMul cases 7% █▍·················· ✓ 2%
> intDiv cases 8% █▋·················· ✓ 2%
> intMod cases 8% █▌·················· ✓ 2%
> intIte cases 8% █▋·················· ✓ 2%
> bvCount... cases 62% ████████████▍······· ✓ 2%
> bv16 mux: OK (0.81s)
> ✓ bv16 mux passed 500 tests.
> and cases 5% █··················· ✓ 2%
> or cases 58% ███████████▌········ ✓ 2%
> eq cases 6% █▏·················· ✓ 2%
> xor cases 42% ████████▎··········· ✓ 2%
> not cases 45% █████████··········· ✓ 2%
> intEq cases 5% █··················· ✓ 2%
> intLe cases 4% ▉··················· ✓ 2%
> intLt cases 5% ▉··················· ✓ 2%
> intAdd cases 7% █▍·················· ✓ 2%
> intSub cases 8% █▋·················· ✓ 2%
> intMul cases 7% █▍·················· ✓ 2%
> intDiv cases 8% █▌·················· ✓ 2%
> intMod cases 8% █▋·················· ✓ 2%
> intIte cases 8% █▋·················· ✓ 2%
> bvCount... cases 59% ███████████▊········ ✓ 2%
> struct mux: OK (1.72s)
> ✓ struct mux passed 500 tests.
> and cases 7% █▎·················· ✓ 2%
> or cases 63% ████████████▌······· ✓ 2%
> eq cases 5% █··················· ✓ 2%
> xor cases 46% █████████▏·········· ✓ 2%
> not cases 50% ██████████·········· ✓ 2%
> intEq cases 7% █▎·················· ✓ 2%
> intLe cases 6% █··················· ✓ 2%
> intLt cases 7% █▍·················· ✓ 2%
> intAdd cases 10% ██·················· ✓ 2%
> intSub cases 10% ██·················· ✓ 2%
> intMul cases 10% ██·················· ✓ 2%
> intDiv cases 10% ██·················· ✓ 2%
> intMod cases 10% █▉·················· ✓ 2%
> intIte cases 10% █▉·················· ✓ 2%
> bvCount... cases 60% ████████████········ ✓ 2%
> array mux: OK (0.84s)
> ✓ array mux passed 500 tests.
> and cases 3% ▋··················· ✓ 2%
> or cases 63% ████████████▌······· ✓ 2%
> eq cases 6% █··················· ✓ 2%
> xor cases 43% ████████▌··········· ✓ 2%
> not cases 47% █████████▍·········· ✓ 2%
> intEq cases 3% ▋··················· ✓ 2%
> intLe cases 7% █▎·················· ✓ 2%
> intLt cases 6% █▏·················· ✓ 2%
> intAdd cases 9% █▉·················· ✓ 2%
> intSub cases 10% █▉·················· ✓ 2%
> intMul cases 10% █▉·················· ✓ 2%
> intDiv cases 9% █▊·················· ✓ 2%
> intMod cases 9% █▊·················· ✓ 2%
> intIte cases 10% █▉·················· ✓ 2%
> bvCount... cases 61% ████████████········ ✓ 2%
>
> All 165 tests passed (5.97s)
> Test suite iteexprs_tests: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-iteexprs_tests.log
> Test suite bvdomain_tests_hh: RUNNING...
> Bitvector Domain
> Arith Domain
> correct_any: OK (0.06s)
> ✓ correct_any passed 5000 tests.
> correct_ubounds: OK (0.09s)
> ✓ correct_ubounds passed 5000 tests.
> correct_sbounds: OK (0.08s)
> ✓ correct_sbounds passed 5000 tests.
> correct_singleton: OK (0.06s)
> ✓ correct_singleton passed 5000 tests.
> correct_overlap: OK (0.26s)
> ✓ correct_overlap passed 5000 tests.
> correct_union: OK (0.14s)
> ✓ correct_union passed 5000 tests.
> correct_zero_ext: OK (0.09s)
> ✓ correct_zero_ext passed 5000 tests.
> correct_sign_ext: OK (0.09s)
> ✓ correct_sign_ext passed 5000 tests.
> correct_concat: OK (0.13s)
> ✓ correct_concat passed 5000 tests.
> correct_shrink: OK (0.10s)
> ✓ correct_shrink passed 5000 tests.
> correct_trunc: OK (0.09s)
> ✓ correct_trunc passed 5000 tests.
> correct_select: OK (0.12s)
> ✓ correct_select passed 5000 tests.
> correct_add: OK (0.11s)
> ✓ correct_add passed 5000 tests.
> correct_neg: OK (0.08s)
> ✓ correct_neg passed 5000 tests.
> correct_not: OK (0.08s)
> ✓ correct_not passed 5000 tests.
> correct_mul: OK (0.12s)
> ✓ correct_mul passed 5000 tests.
> correct_scale: OK (0.10s)
> ✓ correct_scale passed 5000 tests.
> correct_scale_eq: OK (0.08s)
> ✓ correct_scale_eq passed 5000 tests.
> correct_udiv: OK (0.16s)
> ✓ correct_udiv passed 5000 tests.
> correct_urem: OK (0.14s)
> ✓ correct_urem passed 5000 tests.
> correct_sdiv: OK (0.16s)
> ✓ correct_sdiv passed 5000 tests.
> correct_sdivRange: OK (2.77s)
> ✓ correct_sdivRange passed 5000 tests.
> correct_srem: OK (0.15s)
> ✓ correct_srem passed 5000 tests.
> correct_shl: OK (0.11s)
> ✓ correct_shl passed 5000 tests.
> correct_lshr: OK (0.12s)
> ✓ correct_lshr passed 5000 tests.
> correct_ashr: OK (0.12s)
> ✓ correct_ashr passed 5000 tests.
> correct_eq: OK (0.12s)
> ✓ correct_eq passed 5000 tests.
> correct_ult: OK (0.12s)
> ✓ correct_ult passed 5000 tests.
> correct_slt: OK (0.12s)
> ✓ correct_slt passed 5000 tests.
> correct_isUltSumCommonEquiv: OK (0.28s)
> ✓ correct_isUltSumCommonEquiv passed 5000 tests.
> correct_unknowns: OK (0.09s)
> ✓ correct_unknowns passed 5000 tests.
> correct_bitbounds: OK (0.09s)
> ✓ correct_bitbounds passed 5000 tests.
> Bitwise Domain
> correct_any: OK (0.04s)
> ✓ correct_any passed 5000 tests.
> correct_singleton: OK (0.06s)
> ✓ correct_singleton passed 5000 tests.
> correct_overlap: OK (0.41s)
> ✓ correct_overlap passed 5000 tests.
> correct_union1: OK (0.13s)
> ✓ correct_union1 passed 5000 tests.
> correct_union2: OK (0.18s)
> ✓ correct_union2 passed 5000 tests.
> correct_intersection: OK (0.42s)
> ✓ correct_intersection passed 5000 tests.
> correct_zero_ext: OK (0.09s)
> ✓ correct_zero_ext passed 5000 tests.
> correct_sign_ext: OK (0.11s)
> ✓ correct_sign_ext passed 5000 tests.
> correct_concat: OK (0.13s)
> ✓ correct_concat passed 5000 tests.
> correct_shrink: OK (0.12s)
> ✓ correct_shrink passed 5000 tests.
> correct_trunc: OK (0.15s)
> ✓ correct_trunc passed 5000 tests.
> correct_select: OK (0.18s)
> ✓ correct_select passed 5000 tests.
> correct_shl: OK (0.09s)
> ✓ correct_shl passed 5000 tests.
> correct_lshr: OK (0.12s)
> ✓ correct_lshr passed 5000 tests.
> correct_ashr: OK (0.14s)
> ✓ correct_ashr passed 5000 tests.
> correct_rol: OK (0.14s)
> ✓ correct_rol passed 5000 tests.
> correct_ror: OK (0.11s)
> ✓ correct_ror passed 5000 tests.
> correct_eq: OK (0.11s)
> ✓ correct_eq passed 5000 tests.
> correct_not: OK (0.09s)
> ✓ correct_not passed 5000 tests.
> correct_and: OK (0.13s)
> ✓ correct_and passed 5000 tests.
> correct_or: OK (0.13s)
> ✓ correct_or passed 5000 tests.
> correct_xor: OK (0.13s)
> ✓ correct_xor passed 5000 tests.
> correct_testBit: OK (0.11s)
> ✓ correct_testBit passed 5000 tests.
> XOR Domain
> correct_singleton: OK (0.07s)
> ✓ correct_singleton passed 5000 tests.
> correct_xor: OK (0.13s)
> ✓ correct_xor passed 5000 tests.
> correct_and: OK (0.12s)
> ✓ correct_and passed 5000 tests.
> correct_and_scalar: OK (0.10s)
> ✓ correct_and_scalar passed 5000 tests.
> correct_bitbounds: OK (0.07s)
> ✓ correct_bitbounds passed 5000 tests.
> Overall Domain
> singleton/union size: OK (0.47s)
> ✓ singleton/union size passed 5000 tests.
> correct_bra1: OK (0.09s)
> ✓ correct_bra1 passed 5000 tests.
> correct_bra2: OK (0.22s)
> ✓ correct_bra2 passed 5000 tests.
> correct_brb1: OK (0.24s)
> ✓ correct_brb1 passed 5000 tests.
> correct_brb2: OK (0.32s)
> ✓ correct_brb2 passed 5000 tests.
> correct_any: OK (0.04s)
> ✓ correct_any passed 5000 tests.
> correct_ubounds: OK (0.09s)
> ✓ correct_ubounds passed 5000 tests.
> correct_sbounds: OK (0.10s)
> ✓ correct_sbounds passed 5000 tests.
> correct_singleton: OK (0.06s)
> ✓ correct_singleton passed 5000 tests.
> correct_overlap: OK (0.42s)
> ✓ correct_overlap passed 5000 tests.
> precise_overlap: OK (0.18s)
> ✓ precise_overlap passed 5000 tests.
> correct_union: OK (0.22s)
> ✓ correct_union passed 5000 tests.
> correct_zero_ext: OK (0.11s)
> ✓ correct_zero_ext passed 5000 tests.
> correct_sign_ext: OK (0.11s)
> ✓ correct_sign_ext passed 5000 tests.
> correct_concat: OK (0.16s)
> ✓ correct_concat passed 5000 tests.
> correct_select: OK (0.18s)
> ✓ correct_select passed 5000 tests.
> correct_add: OK (0.20s)
> ✓ correct_add passed 5000 tests.
> correct_neg: OK (0.11s)
> ✓ correct_neg passed 5000 tests.
> correct_scale: OK (0.14s)
> ✓ correct_scale passed 5000 tests.
> correct_mul: OK (0.16s)
> ✓ correct_mul passed 5000 tests.
> correct_udiv: OK (0.18s)
> ✓ correct_udiv passed 5000 tests.
> correct_urem: OK (0.20s)
> ✓ correct_urem passed 5000 tests.
> correct_sdiv: OK (0.18s)
> ✓ correct_sdiv passed 5000 tests.
> correct_srem: OK (0.22s)
> ✓ correct_srem passed 5000 tests.
> correct_shl: OK (0.19s)
> ✓ correct_shl passed 5000 tests.
> correct_lshr: OK (0.15s)
> ✓ correct_lshr passed 5000 tests.
> correct_ashr: OK (0.15s)
> ✓ correct_ashr passed 5000 tests.
> correct_rol: OK (0.16s)
> ✓ correct_rol passed 5000 tests.
> correct_ror: OK (0.16s)
> ✓ correct_ror passed 5000 tests.
> correct_eq: OK (0.21s)
> ✓ correct_eq passed 5000 tests.
> correct_ult: OK (0.18s)
> ✓ correct_ult passed 5000 tests.
> correct_slt: OK (0.15s)
> ✓ correct_slt passed 5000 tests.
> correct_not: OK (0.10s)
> ✓ correct_not passed 5000 tests.
> correct_and: OK (0.16s)
> ✓ correct_and passed 5000 tests.
> correct_or: OK (0.15s)
> ✓ correct_or passed 5000 tests.
> correct_xor: OK (0.14s)
> ✓ correct_xor passed 5000 tests.
> correct_testBit: OK (0.12s)
> ✓ correct_testBit passed 5000 tests.
> correct_popcnt: OK (0.09s)
> ✓ correct_popcnt passed 5000 tests.
> correct_clz: OK (0.10s)
> ✓ correct_clz passed 5000 tests.
> correct_ctz: OK (0.09s)
> ✓ correct_ctz passed 5000 tests.
> Transfer
> correct_arithToBitwise: OK (0.07s)
> ✓ correct_arithToBitwise passed 5000 tests.
> correct_bitwiseToArith: OK (0.08s)
> ✓ correct_bitwiseToArith passed 5000 tests.
> correct_bitwiseToXorDomain: OK (0.09s)
> ✓ correct_bitwiseToXorDomain passed 5000 tests.
> correct_arithToXorDomain: OK (0.08s)
> ✓ correct_arithToXorDomain passed 5000 tests.
> correct_xorToBitwiseDomain: OK (0.09s)
> ✓ correct_xorToBitwiseDomain passed 5000 tests.
> correct_asXorDomain: OK (0.10s)
> ✓ correct_asXorDomain passed 5000 tests.
> correct_fromXorDomain: OK (0.09s)
> ✓ correct_fromXorDomain passed 5000 tests.
>
> All 107 tests passed (17.93s)
> Test suite bvdomain_tests_hh: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-bvdomain_tests_hh.log
> Test suite bvdomain_tests: RUNNING...
> Bitvector Domain
> Arith Domain
> correct_any: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_ubounds: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_sbounds: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_singleton: OK (0.01s)
> +++ OK, passed 5000 tests.
> correct_overlap: OK (0.07s)
> +++ OK, passed 5000 tests; 13367 discarded.
> correct_union: OK (0.02s)
> +++ OK, passed 5000 tests; 1493 discarded.
> correct_zero_ext: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_sign_ext: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_concat: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_shrink: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_trunc: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_select: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_add: OK (0.05s)
> +++ OK, passed 5000 tests.
> correct_neg: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_not: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_mul: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_scale: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_scale_eq: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_udiv: OK (0.03s)
> +++ OK, passed 5000 tests; 182 discarded.
> correct_urem: OK (0.03s)
> +++ OK, passed 5000 tests; 175 discarded.
> correct_sdiv: OK (0.03s)
> +++ OK, passed 5000 tests; 174 discarded.
> correct_sdivRange: OK (0.39s)
> +++ OK, passed 5000 tests; 147435 discarded.
> correct_srem: OK (0.03s)
> +++ OK, passed 5000 tests; 180 discarded.
> correct_shl: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_lshr: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_ashr: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_eq: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_ult: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_slt: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_isUltSumCommonEquiv: OK (1.08s)
> +++ OK, passed 5000 tests; 132885 discarded.
> correct_unknowns: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_bitbounds: OK (0.02s)
> +++ OK, passed 5000 tests.
> Bitwise Domain
> correct_any: OK
> +++ OK, passed 5000 tests.
> correct_singleton: OK (0.01s)
> +++ OK, passed 5000 tests.
> correct_overlap: OK (1.49s)
> +++ OK, passed 5000 tests; 437985 discarded.
> correct_union1: OK (0.01s)
> +++ OK, passed 5000 tests.
> correct_union2: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_intersection: OK (1.48s)
> +++ OK, passed 5000 tests; 419213 discarded.
> correct_zero_ext: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_sign_ext: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_concat: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_shrink: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_trunc: OK (0.01s)
> +++ OK, passed 5000 tests.
> correct_select: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_shl: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_lshr: OK
> +++ OK, passed 5000 tests.
> correct_ashr: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_rol: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_ror: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_eq: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_not: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_and: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_or: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_xor: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_testBit: OK (0.02s)
> +++ OK, passed 5000 tests.
> XOR Domain
> correct_singleton: OK (0.01s)
> +++ OK, passed 5000 tests.
> correct_xor: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_and: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_and_scalar: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_bitbounds: OK (0.02s)
> +++ OK, passed 5000 tests.
> Overall Domain
> singleton/union size: OK (0.73s)
> +++ OK, passed 5000 tests.
> correct_bra1: OK (0.02s)
> +++ OK, passed 5000 tests; 4740 discarded.
> correct_bra2: OK (0.29s)
> +++ OK, passed 5000 tests; 119401 discarded.
> correct_brb1: OK (0.53s)
> +++ OK, passed 5000 tests; 191545 discarded.
> correct_brb2: OK (1.47s)
> +++ OK, passed 5000 tests; 436091 discarded.
> correct_any: OK
> +++ OK, passed 5000 tests.
> correct_ubounds: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_sbounds: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_singleton: OK (0.01s)
> +++ OK, passed 5000 tests.
> correct_overlap: OK (0.23s)
> +++ OK, passed 5000 tests; 54856 discarded.
> precise_overlap: OK (0.03s)
> +++ OK, passed 5000 tests; 3806 discarded.
> correct_union: OK (0.05s)
> +++ OK, passed 5000 tests; 5748 discarded.
> correct_zero_ext: OK
> +++ OK, passed 5000 tests.
> correct_sign_ext: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_concat: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_select: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_add: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_neg: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_scale: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_mul: OK (0.05s)
> +++ OK, passed 5000 tests.
> correct_udiv: OK (0.05s)
> +++ OK, passed 5000 tests; 125 discarded.
> correct_urem: OK (0.05s)
> +++ OK, passed 5000 tests; 145 discarded.
> correct_sdiv: OK (0.05s)
> +++ OK, passed 5000 tests; 137 discarded.
> correct_srem: OK (0.05s)
> +++ OK, passed 5000 tests; 147 discarded.
> correct_shl: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_lshr: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_ashr: OK (0.05s)
> +++ OK, passed 5000 tests.
> correct_rol: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_ror: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_eq: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_ult: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_slt: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_not: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_and: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_or: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_xor: OK (0.04s)
> +++ OK, passed 5000 tests.
> correct_testBit: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_popcnt: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_clz: OK (0.03s)
> +++ OK, passed 5000 tests.
> correct_ctz: OK (0.02s)
> +++ OK, passed 5000 tests.
> Transfer
> correct_arithToBitwise: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_bitwiseToArith: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_bitwiseToXorDomain: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_arithToXorDomain: OK
> +++ OK, passed 5000 tests.
> correct_xorToBitwiseDomain: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_asXorDomain: OK (0.02s)
> +++ OK, passed 5000 tests.
> correct_fromXorDomain: OK
> +++ OK, passed 5000 tests.
>
> All 107 tests passed (10.54s)
> Test suite bvdomain_tests: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-bvdomain_tests.log
> Test suite exprs_tests: RUNNING...
> What4 Expressions
> d <- intDiv sym x y; m <- intMod sym x y ===> y * d + m == x and 0 <= m < y: OK
> ✓ d <- intDiv sym x y; m <- intMod sym x y ===> y * d + m == x and 0 <= m < y passed 100 tests.
> bvIsNeg
> -1.32 bvIsNeg.32: OK
> -1 bvIsNeg.32: OK
> 0xffffffff bvIsNeg.32: OK
> 0x80000000 bvIsNeg.32: OK
> 0x7fffffff !bvIsNeg.32: OK
> 0 !bvIsNeg.32: OK
> bvIsNeg.32: OK
> ✓ bvIsNeg.32 passed 100 tests.
> !bvIsNeg.32: OK
> ✓ !bvIsNeg.32 passed 100 tests.
> int operators
> n * m == m * n: OK
> ✓ n * m == m * n passed 100 tests.
> |n| >= 0: OK
> ✓ |n| >= 0 passed 100 tests.
> integer division and mod
> y * (div x y) + (mod x y) == x: OK
> ✓ y * (div x y) + (mod x y) == x passed 100 tests.
> mod x y == mod x (- y) == mod x (abs y): OK
> ✓ mod x y == mod x (- y) == mod x (abs y) passed 100 tests.
> div x (-y) == -(div x y): OK
> ✓ div x (-y) == -(div x y) passed 100 tests.
> int min/max
> (j <= c && c <= i) -> intMax j i == intMax i j == i: OK
> ✓ (j <= c && c <= i) -> intMax j i == intMax i j == i passed 100 tests.
> (lo_i <= i && lo_j <= j) -> (max lo_j lo_j) <= intMax i j: OK
> ✓ (lo_i <= i && lo_j <= j) -> (max lo_j lo_j) <= intMax i j passed 100 tests.
> (i <= c && c <= j) -> intMin j i == intMin i j == i: OK
> ✓ (i <= c && c <= j) -> intMin j i == intMin i j == i passed 100 tests.
> (i <= hi_i && j <= hi_j) -> intMin i j <= (min hi_j hi_j): OK
> ✓ (i <= hi_i && j <= hi_j) -> intMin i j <= (min hi_j hi_j) passed 100 tests.
> stringEmpty: OK
> ✓ stringEmpty passed 100 tests.
> injective conversion
> realToInteger: OK
> ✓ realToInteger passed 100 tests.
> bvToInteger: OK
> ✓ bvToInteger passed 100 tests.
> sbvToInteger: OK
> ✓ sbvToInteger passed 100 tests.
> predToBV: OK
> ✓ predToBV passed 100 tests.
> integerToBV
> bvToInteger (integerToBv x w) == mod x (2^w): OK
> ✓ bvToInteger (integerToBv x w) == mod x (2^w) passed 100 tests.
> bvToInteger (integerToBV x w) == x when 0 <= x < 2^w: OK
> ✓ bvToInteger (integerToBV x w) == x when 0 <= x < 2^w passed 100 tests.
> sbvToInteger (integerToBV x w) == mod (x + 2^(w-1)) (2^w) - 2^(w-1): OK
> ✓ sbvToInteger (integerToBV x w) == mod (x + 2^(w-1)) (2^w) - 2^(w-1) passed 100 tests.
> sbvToInteger (integerToBV x w) == x when -2^(w-1) <= x < 2^(w-1): OK
> ✓ sbvToInteger (integerToBV x w) == x when -2^(w-1) <= x < 2^(w-1) passed 100 tests.
> integerToBV (bvToInteger y) w == y when y is a SymBV sym w: OK
> ✓ integerToBV (bvToInteger y) w == y when y is a SymBV sym w passed 100 tests.
> integerToBV (sbvToInteger y) w == y when y is a SymBV sym w: OK
> ✓ integerToBV (sbvToInteger y) w == y when y is a SymBV sym w passed 100 tests.
>
> All 29 tests passed (0.06s)
> Test suite exprs_tests: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-exprs_tests.log
> Test suite invariant-synthesis: RUNNING...
> SOLVER SELF-REPORTED VERSIONS::
> Solver cvc5 -> This is cvc5 version 1.0.5
> Solver z3 -> Z3 version 4.8.12 - 64 bit
> Tests
> int cvc5 test: OK (0.07s)
> int z3 test: OK (0.12s)
> bv cvc5 test: OK (0.33s)
>
> All 3 tests passed (0.52s)
> Test suite invariant-synthesis: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-invariant-synthesis.log
> Test suite abduct: RUNNING...
> Tests
> testing SAT query for abduction: OK (0.02s)
> getting 3 abducts using cvc5 offline: OK (0.57s)
> getting 3 abducts using cvc5 online: OK (0.76s)
>
> All 3 tests passed (1.35s)
> Test suite abduct: PASS
> Test suite logged to: dist-ghc/test/what4-1.5.1-abduct.log
> 9 of 10 test suites (9 of 10 test cases) passed.
> -e: error: debian/hlibrary.setup test --builddir=dist-ghc --show-details=direct returned exit code 1
> at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 880.
> Debian::Debhelper::Dh_Lib::error("debian/hlibrary.setup test --builddir=dist-ghc --show-details"...) called at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 610
> Debian::Debhelper::Dh_Lib::error_exitcode("debian/hlibrary.setup test --builddir=dist-ghc --show-details"...) called at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 473
> Debian::Debhelper::Dh_Lib::doit("debian/hlibrary.setup", "test", "--builddir=dist-ghc", "--show-details=direct") called at /usr/share/perl5/Debian/Debhelper/Buildsystem/Haskell/Recipes.pm line 692
> Debian::Debhelper::Buildsystem::Haskell::Recipes::check_recipe() called at -e line 1
> make: *** [/usr/share/cdbs/1/class/hlibrary.mk:163: check-ghc-stamp] Error 25
The full build log is available from:
http://qa-logs.debian.net/2023/10/27/haskell-what4_1.5.1-2_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231027;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231027&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
More information about the Pkg-haskell-maintainers
mailing list