Björn Bringert wrote: > Bulat Ziganshin wrote: > Stand-alone deriving declarations are actually a little bit weaker > than normal deriving clauses, since the current implementation does > not let you reference the type arguments of a newtype in the > arguments to the MPTC. This example from the GHC manual cannot > currently be done with stand-alone deriving: > > class StateMonad s m | m -> s where ... > instance Monad m => StateMonad s (State s m) where ... > > newtype Parser tok m a = Parser (State [tok] (Failure m) a) > deriving (Monad, StateMonad [tok]) > > > The below does not work, since tok is not in scope: > > deriving StateMonad [tok] for Parser > > Maybe the syntax should be changed to be: > > deriving (Class t1 ... tn) for Type a1 ... an > > where a1 ... an are type variables. This would allow: > > deriving StateMonad [tok] for Parser tok m a
I'd be much in favour of a story that make derivings at data/newtype declarations simply syntactic sugar for a data/newtype declaration without a deriving clause plus a couple of stand-alone deriving declarations. Manuel _______________________________________________ Cvs-ghc mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/cvs-ghc