reflex-frp / reflex

Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.
https://reflex-frp.org
BSD 3-Clause "New" or "Revised" License
1.06k stars 143 forks source link

Compile error for test suite when building based on nixpkgs #475

Open maralorn opened 2 years ago

maralorn commented 2 years ago

When updating to reflex 0.8.2.0 in nixpkgs I get a type check error when compiling the test suite:

reflex> test/RequesterT.hs:68:18: error:
reflex>     • Could not deduce: ConstraintsFor TestRequest Read
reflex>         arising from a use of ‘testMatchRequestsWithResponses’
reflex>     • In the first argument of ‘runApp'’, namely
reflex>         ‘testMatchRequestsWithResponses’
reflex>       In a stmt of a 'do' block:
reflex>         os7 <- runApp'
reflex>                  testMatchRequestsWithResponses [Just $ TestRequest_Increment 1]
reflex>       In the expression:
reflex>         do os1 <- runApp' (unwrapApp testOrdering) $ [Just ()]
reflex>            print os1
reflex>            os2 <- runApp' (unwrapApp testSimultaneous)
reflex>                     $ map Just $ [This (), That (), ....]
reflex>            print os2
reflex>            ....
reflex>    |
reflex> 68 |   os7 <- runApp' testMatchRequestsWithResponses [ Just $ TestRequest_Increment 1 ]
reflex>    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
reflex> 
reflex> test/RequesterT.hs:68:18: error:
reflex>     • No instance for (Show
reflex>                          (TestRequest
reflex>                             (Data.Constraint.Forall.Skolem
reflex>                                (Data.Constraint.Forall.ComposeC Show TestRequest))))
reflex>         arising from a use of ‘testMatchRequestsWithResponses’
reflex>     • In the first argument of ‘runApp'’, namely
reflex>         ‘testMatchRequestsWithResponses’
reflex>       In a stmt of a 'do' block:
reflex>         os7 <- runApp'
reflex>                  testMatchRequestsWithResponses [Just $ TestRequest_Increment 1]
reflex>       In the expression:
reflex>         do os1 <- runApp' (unwrapApp testOrdering) $ [Just ()]
reflex>            print os1
reflex>            os2 <- runApp' (unwrapApp testSimultaneous)
reflex>                     $ map Just $ [This (), That (), ....]
reflex>            print os2
reflex>            ....
reflex>    |
reflex> 68 |   os7 <- runApp' testMatchRequestsWithResponses [ Just $ TestRequest_Increment 1 ]
reflex>    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is without any jailbreaks, with stackage-lts and newest dependencies from hackage.