[Haskell-cafe] Classes in type declarations in Hugs

Tomasz Zielonka tomasz.zielonka at gmail.com
Tue Dec 7 02:18:16 EST 2004


On Mon, Dec 06, 2004 at 10:15:19AM -0000, Simon Peyton-Jones wrote:
> | This is where I find ghc's newtype deriving to be incredibly useful.
> | 
> | newtype CPError a = CPError (Either Error a)
> |         deriving(Monad,MonadError)
> | 
> | now CPError is a monad and an instance of MonadError and you are free
> to
> | override or inherit more interesting instances at will without
> | conflicting with the basic types for Either :)
> 
> Aha!  I've always wondered whether anyone uses this feature, which I
> implemented at John Hughes's suggestion.  I'd be interested to know if
> you are alone, or whether others do so too.

>From my code:

...
deriving (MonadIO, MonadReader PGExecEnv, Functor, MonadCont)

...
deriving (Monad, MonadWriter PP.Doc, MonadReader PGExecEnv, MonadIO, Functor)

Best regards,
Tomasz


More information about the Haskell-Cafe mailing list