|
RE: can't derive Monad: msg#00078lang.haskell.glasgow.bugs
Just conservatism. Imagine newtype T = MkT [T] deriving(Eq) You'd get instance Eq [T] => Eq T which will make the type checker loop for sure. I'm not sure what a safe approximation might be. But I'll put your example in a comment in the source code as an example of a safe one that's rejected! Simon | -----Original Message----- | From: glasgow-haskell-bugs-admin@xxxxxxxxxxx [mailto:glasgow-haskell-bugs-admin@xxxxxxxxxxx] On | Behalf Of Dean Herington | Sent: 28 July 2003 23:01 | To: glasgow-haskell-bugs@xxxxxxxxxxx | Subject: can't derive Monad | | The following may not be a bug, but it surprised me. Why does the | circularity cause GHC fits? | | | swan(106)% cat NestStateT.hs | {-# OPTIONS -fglasgow-exts #-} | | import Control.Monad.State | | newtype S1 = S1 [T1 ()] | newtype T1 a = T1 (StateT S1 IO a ) | deriving Monad | | main = undefined | swan(105)% ghci NestStateT.hs | ___ ___ _ | / _ \ /\ /\/ __(_) | / /_\// /_/ / / | | GHC Interactive, version 5.04.3, for Haskell | 98. | / /_\\/ __ / /___| | http://www.haskell.org/ghc/ | \____/\/ /_/\____/|_| Type :? for help. | | Loading package base ... linking ... done. | Loading package haskell98 ... linking ... done. | Compiling Main ( NestStateT.hs, interpreted ) | | NestStateT.hs:6: | Can't make a derived instance of `Monad T1' | (too hard for cunning newtype deriving) | When deriving instances for type `T1' | Failed, modules loaded: none. | Prelude> | | | _______________________________________________ | Glasgow-haskell-bugs mailing list | Glasgow-haskell-bugs@xxxxxxxxxxx | http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | can't derive Monad, Dean Herington |
|---|---|
| Next by Date: | RE: GHC and Mingw32 (cont.), Simon Peyton-Jones |
| Previous by Thread: | can't derive Monad, Dean Herington |
| Next by Thread: | Re: can't derive Monad, Dean Herington |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |