new major release of transformers package

Ross Paterson ross at soi.city.ac.uk
Thu Mar 8 18:52:13 CET 2012


On Thu, Mar 08, 2012 at 11:09:35AM +0000, Henning Thielemann wrote:
> On Thu, 8 Mar 2012, Ross Paterson wrote:
> 
> > * generalized constructor functions:
> >
> >        state :: Monad m => (s -> (a, s)) -> StateT s m a
> >        reader :: Monad m => (r -> a) -> ReaderT r m a
> >        writer :: Monad m => (a, w) -> WriterT w m a
> 
> I'd prefer to call them stateT, readerT, writerT in order to keep 'state', 
> 'reader', 'writer' with the restricted types. The restricted type should 
> work without type annotations in cases where I really only want type 
> 'State'. Actually stateT, readerT, writerT are only alternative 
> constructors for StateT, ReaderT, WriterT with a restriction on 'm'.

But this means they would have different types from

	StateT :: (s -> m (a, s)) -> StateT s m a
	ReaderT :: (r -> m a) -> ReaderT r m a
	WriterT :: m (a, w) -> WriterT w m a



More information about the Libraries mailing list