inscrutable warning

Dean Herington heringto@cs.unc.edu
Wed, 06 Feb 2002 11:53:50 -0500


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>