A sequential computation framework with wrapping the type S. All instances of the monad m must satisfy the following laws:

  • Left identity: For all f and a; m.flatMap(f)(m.pure(a)) equals to f(a),
  • Right identity: For all a; m.flatMap(m.pure)(a) equals to a,
  • Associativity: For all f, g and a; m.flatMap(f)(m.flatMap(g)(a)) equals to m.flatMap((x) => m.flatMap(f)(g(x)))(a).

Type Parameters

  • R

  • M

Hierarchy

Properties

apply: (<T, U>(fn) => ((t) => Instance<Apply1<M, U>>))

Type declaration

ask: (() => Get1<M, R>)

Type declaration

flatMap: (<T1, U1>(a) => ((t) => Instance<Apply1<M, U1>>))

Type declaration

local: ((modifier) => (<A>(m) => Get1<M, A>))

Type declaration

    • (modifier): (<A>(m) => Get1<M, A>)
    • Parameters

      • modifier: ((record) => R)
          • (record): R
          • Parameters

            • record: R

            Returns R

      Returns (<A>(m) => Get1<M, A>)

        • <A>(m): Get1<M, A>
        • Type Parameters

          • A

          Parameters

          Returns Get1<M, A>

map: (<T, U>(fn) => ((t) => Instance<Apply1<M, U>>))

Type declaration

pure: (<T>(t) => Instance<Apply1<M, T>>)

Type declaration

Generated using TypeDoc