New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

monad-t

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

monad-t

Transformers for monadic algebraic structures

  • 0.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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)); //=> Either.Right(1)
EitherT(Either.Right(1)); //=> FlutureTMonetEither(1)
EitherT(Future.of(1)); //=> FlutureTMonetEither(1)
EitherT.of(Maybe.Some(1)); //=> EitherT<Maybe.Some(1)

FutureTEither.of(Future.of(Either.Right(1))); //=> FlutureTMonetEither(1)
FutureTEither(Identity.of(1)); //=> FlutureTMonetEither(1)
FutureTEither(Future.of(1)); //=> FlutureTMonetEither(1)
FutureTEither(Either.Right(1)); //=> FlutureTMonetEither(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)); //=> Either.Right(1)
EitherT(Either.Right(1)); //=> FlutureTMonetEither(1)
EitherT(Future.of(1)); //=> FlutureTMonetEither(1)
EitherT.of(Maybe.Some(1)); //=> EitherT<Maybe.Some(1)

FutureTEither.of(Future.of(Either.Right(1))); //=> FlutureTMonetEither(1)
FutureTEither(Identity.of(1)); //=> FlutureTMonetEither(1)
FutureTEither(Future.of(1)); //=> FlutureTMonetEither(1)
FutureTEither(Either.Right(1)); //=> FlutureTMonetEither(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

Keywords

FAQs

Package last updated on 17 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc