can't derive Monad
Dean Herington
heringto at cs.unc.edu
Mon Jul 28 18:00:31 EDT 2003
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>
More information about the Glasgow-haskell-bugs
mailing list