
Can someone explain the following warning? ------------------------------- module Warning where type A = IO () class CA t where a :: t -> A instance CA () where a = return instance (CA t) => CA (IO t) where a = (>>= a) data B = B A class CB t where b :: t -> B instance (CA t) => CB (IO t) where b = B . a ------------------------------- % ghci Warning.hs ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 5.02.2, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package std ... linking ... done. Compiling Warning ( Warning.hs, interpreted ) WARNING: ignoring polymorphic case in interpreted mode. Possibly due to strict polymorphic/functional constructor args. Your program may leak space unexpectedly. Ok, modules loaded: Warning. Warning>