Data.Typeable and default instances

Jim Apple japple at
Sun Dec 4 12:23:32 EST 2005

 > {-# OPTIONS -fglasgow-exts #-}
 > import Maybe
 > import Data.Typeable
 > data Nil = Nil deriving (Eq,Typeable,Show)
 > class (Typeable t) => List a t where
 >     init :: (t -> b) -> (forall y . (List a y) => y -> b)
 >     init f z = fromJust $ do x <- cast z
 >                              return $ f x
 > instance List a Nil where

     Could not deduce (List a1 y)
       from the context (List a Nil, Typeable Nil, List a y)
       arising from use of `Main.$dminit' at Main.hs:21:0
     Probable fix: add (List a1 y) to the class or instance method 
     In the definition of `init': init = Main.$dminit
     In the definition for method `Main.init'
     In the instance declaration for `List a Nil'

but copying and pasting the code from init to the instance declaration 
works fine.


More information about the Glasgow-haskell-users mailing list