
The warning says that the interpreter has ignored a polymorphic case, since it's hard to implement. Your program should still behave the same, although possibly less strictly than you intended. What really mystifies us is why there is such a thing in the program in the first place. Using -ddump-sat we can see that there is indeed a case ... of { DEFAULT -> ... } but how it came to be, I do not know. We may investigate further. J | 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> | | _______________________________________________ | Glasgow-haskell-users mailing list | Glasgow-haskell-users@haskell.org | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
participants (1)
-
Julian Seward (Intl Vendor)