On Thu, 2007-09-13 at 19:34 +0100, Jules Bean wrote: > > Any comments? I'm sure this has been shown before but I don't > remember where. The Monad Transformer Library essentially does this, the types you get are along the lines of: foo :: (Monad m, MonadState s m, MonadReader r m) => m Int