StateT bug fix + monadic conditionals
Pre-release
Pre-release
- Fixed: a bug in the
StateT
monad-transformer. One of theSelectMany
overloads wasn't propagating the state correctly. - Changed:
Prelude.local
that creates a local IO and resource environment renamed tolocalIO
to avoid conflicts withReaderT.local
andReader.local
- Added: general purpose
liftIO
inPrelude
- Added: variants of
when
andunless
that take aK<M, bool>
as the source of the flag. Means any monad that binds abool
can be used directly inwhen
andunless
, rather than having to lower it first. - Added: new monadic conditional:
iff
- works likewhen
andunless
, but has anelse
case.K<M, bool>
can be used directly also, meaning that if/then/else monadic expressions can be built without lowering. - Added: applicative
actions
to thePrelude
. Allows for chainingn
applicative actions, discarding their results, apart from the last one, which is returned