turion / essence-of-live-coding

Universal Live Coding & Functional Reactive Programming Framework
https://www.manuelbaerenz.de/#computerscience
62 stars 6 forks source link

fails with ghc-9.4 for Stackage Nightly #107

Closed juhp closed 1 year ago

juhp commented 1 year ago
Building library for essence-of-live-coding-0.2.6..                                                                     [308/182284]
[ 6 of 41] Compiling LiveCoding.Cell.Monad                                                                                          

/var/stackage/work/unpack-dir/unpacked/essence-of-live-coding-0.2.6-1d9736c86ef45ccba8284a4881f4f3c3e0269ac83cbb9904143336a7082d2684
/src/LiveCoding/Cell/Monad.hs:48:6: error:                                                                                          
    • Could not deduce (base-4.17.0.0:Data.Typeable.Internal.Typeable                                                               
                          t)                                      
        arising from a superclass required to satisfy ‘Data (t s)’,                                                                 
        arising from a type ambiguity check for                                                                                     
        the type signature for ‘hoistCellKleisliStateChange’                                                                        
      from the context: (Monad m1, Monad m2,                                                                                        
                         forall s. Data s => Data (t s))                                                                            
        bound by the type signature for:                                                                                            
                   hoistCellKleisliStateChange :: forall (m1 :: * -> *) (m2 :: * -> *)
                                                         (t :: * -> *) a1 b1 a2 b2.                                                 
                                                  (Monad m1, Monad m2,                                                              
                                                   forall s. Data s => Data (t s)) =>                                               
                                                  (forall s.                                                                        
                                                   (s -> a1 -> m1 (b1, s))                                                          
                                                   -> t s -> a2 -> m2 (b2, t s))                                                    
                                                  -> (forall s. s -> t s)                                                           
                                                  -> Cell m1 a1 b1                                                                  
                                                  -> Cell m2 a2 b2                                                                  
        at src/LiveCoding/Cell/Monad.hs:(48,6)-(53,18)                                                                              
      or from: Data s                                                                                                               
        bound by a quantified context                                                                                               
        at src/LiveCoding/Cell/Monad.hs:(48,6)-(53,18)                                                                              
    • In the ambiguity check for ‘hoistCellKleisliStateChange’                                                                      
      To defer the ambiguity check to use sites, enable AllowAmbiguousTypes                                                         
      In the type signature:                                      
        hoistCellKleisliStateChange :: (Monad m1,                                                                                   
                                        Monad m2,                                                                                   
                                        (forall s. Data s => Data (t s))) =>                                                        
                                       (forall s.                                                                                   
                                        (s -> a1 -> m1 (b1, s)) -> (t s -> a2 -> m2 (b2, t s)))
                                       -> (forall s. (s -> t s)) -> Cell m1 a1 b1 -> Cell m2 a2 b2
   |                                                              
48 |   :: (Monad m1, Monad m2, (forall s . Data s => Data (t s)))                                                                   
   |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...         

ps Could I suggest using a https url for the git repo in .cabal rather than ssh?