- Pick up minor fixes for State
- Pick up minor fixes for Maybe and Writer
- Added
Maybe
- Added
Reader
- Added
Writer
- Split out into individual libraries.
- Cleaned up and simplified namespacing.
- Types now are in
akh.Type
and ``akh.TypeT` - Core methods are now in top level
akh.next
- Types now are in
- Added
m.run()
instance methods to all types.
- Added
EitherT.runEitherT
andEither.runEither
to extract either values without needing to pass in callback functions. - Updated some internal structures to make it more clear that some values are private.
- Fixed exec state returning value instead of state.
- Made sure all code uses modern Khepri.
- Split interfaces into own files.
akh::spec::*
. - Autolifting of state
get
put
andmodify
in most base types. - Added
Codensity
monad. - Removed trampoline.
- Split StateT into two files.
akh::trans::state
has the main, stack safe impl which auto wraps in aCodensity
.akh::trans::statei
has the actual impl, which is stack unsafe but should be used in stacks so as not to dup theCodensity
logic.
- Performance improvements though recompile with khepri V0.23.0
- Performance improvements though recompile with khepri V0.21.13.
- Added
base::liftA
andbase::liftA2
to lift to an applicative. - Added derived applicative operation
ac
that curriesf
with the argumenta
.
- Fixed derived types of
map
andap
on monad using functions instead of methods.
- Removed one extra function call per each chain/concat/map/ap.
structures
now expect the method version of binary functions.
- Transformers expose their inner type with
inner
since there is no type system to recover this information. - Transforming and Transformer will generated have an additional method
liftInner
on the output to lift from the inner Transformer's inner to the outer transformer.liftInner
can be chained to lift multiple levels.var M = StateT (StateT (StateT (StateT Identity)))); // Lift get from inner most state. M.liftInner.liftInner(M.inner.inner.inner.get);
- Fixed
Unique
possibly blowing up stack for large computations.
- Allow
UniqueT
to be passed a seed value. - Fixed
IdentityT
concat
.
- Added
IdentityT
to transform a monad to itself. - Added
Trampoline
monad. - More work on call stack.
- Fixed call stack on
EitherT
andErrorT
. - Performance improvements.
- Fixed call stack on
StateT
.
- Fixed
ContT.lift
andDContT.lift
.
- Temp fix for call stack on
ContT
andDContT
.- Wrap other structures for long running computations in
ContT
.
- Wrap other structures for long running computations in
- Added State.modify.
- Added
IdentityT
. - Added top level generic versions of ops in base that determine type using argument.
- Split out DContT's unique id the logic to its own monad and transformer.
- Added
EitherT
. - Added
ErrorT
- Added
Either
- Added
Error
.
- Fixed #5 nu-stream not included.
- Added applicative functor to all monads using derived interfaces (thanks joneshf).
- Added AMD files.
- Fixed
Identity
using old import. Identity
as functor.ContT
andCont
as functor.DContT
andDCont
as functor.ListT
andList
as functor.StateT
andState
as functor.
- Initial release.