RE: Instance declaration superclasses

1998-04-27 Thread Frank A. Christoph
GHC complains about: class (Monad m, {-, Monad (t m)-}) = MonadT t m where lift :: m a - (t m) a instance (Monad m) = Monad (EnvT env m) where ... instance (Monad (EnvT env m)) = MonadT (EnvT env) m where ... ... OK, there are two things going on. First, GHC is meant to

Re: Instance declaration superclasses

1998-04-27 Thread Simon L Peyton Jones
GHC complains about: class (Monad m, {-, Monad (t m)-}) = MonadT t m where lift :: m a - (t m) a instance (Monad m) = Monad (EnvT env m) where ... instance Monad m = MonadT (EnvT env) m where ... Even when I use the "decent" definition you suggest, GHC duplicates the

Re: Instance declaration superclasses

1998-04-27 Thread Simon L Peyton Jones
(This is related to my previous post concerning monad transformers.) GHC complains about: class (Monad m, {-, Monad (t m)-}) = MonadT t m where lift :: m a - (t m) a instance (Monad m) = Monad (EnvT env m) where ... instance (Monad (EnvT env m)) = MonadT (EnvT env) m where