monad-t
Transformers for monadic algebraic structures bridging types from various monadic libraries.
All transformers are fully fantasy-land compatible.
Read this article
to fully understand what monad transformers are and how to fully utilize their power of transformation.
Example
const { MonetEitherT: EitherT, FlutureTMonetEither: FutureTEither } = require('monad-t');
const { Future } = require('fluture');
const { Identity, Either, Maybe } = require('monet');
EitherT(Identity.of(1));
EitherT(Either.Right(1));
EitherT(Future.of(1));
EitherT.of(Maybe.Some(1));
FutureTEither.of(Future.of(Either.Right(1)));
FutureTEither(Identity.of(1));
FutureTEither(Future.of(1));
FutureTEither(Either.Right(1));
Optional dependencies
Usually developers use one or two monadic libraries in their projects. For example
developer can use monet and fluture in a project and it is not convenient
to install all of the optional dependencies of this package (there may be quite a lot in the future).
We recommend to use requires from a specific modules of this library so that
you won't end up with Cannot find module error when requiring.
const EitherT = require('monad-t/lib/MonetEitherT');
const FutureTEither = require('monad-t/lib/FlutureTMonetEither');
EitherT(Identity.of(1));
EitherT(Either.Right(1));
EitherT(Future.of(1));
EitherT.of(Maybe.Some(1));
FutureTEither.of(Future.of(Either.Right(1)));
FutureTEither(Identity.of(1));
FutureTEither(Future.of(1));
FutureTEither(Either.Right(1));
API Documentation
0.0.1, 0.0.2,
0.0.3, 0.1.0,
0.2.0, 0.2.1,
0.2.2, 0.2.3,
0.3.0, LATEST
Typescript support
Although monad-t is written in ES2016, we support Typescript. When monad-t gets
imported into Typescript project, typings are automatically imported and used.
Author
char0n (Vladimir Gorej)
vladimir.gorej@gmail.com
https://www.linkedin.com/in/vladimirgorej/
Contributors
- Michael Kuk
- Michal Svely
- Honza Beseda