## Uses of Interface
com.jnape.palatable.lambda.functions.specialized.Kleisli

- Packages that use Kleisli
  Package | Description
  --- | ---
  com.jnape.palatable.lambda.functions.builtin.fn2 |
  com.jnape.palatable.lambda.functions.specialized |

- - ### Uses of Kleisli in com.jnape.palatable.lambda.functions.builtin.fn2

    Methods in com.jnape.palatable.lambda.functions.builtin.fn2 that return Kleisli
    Modifier and Type | Method and Description
    --- | ---
    `static <A,B> Kleisli<? super A,? extends B,Lazy<?>,Lazy<B>>` | LazyRec.`lazyRec(Fn2<Kleisli<? super A,? extends B,Lazy<?>,Lazy<B>>,A,Lazy<B>> fn)`

    Method parameters in com.jnape.palatable.lambda.functions.builtin.fn2 with type arguments of type Kleisli
    Modifier and Type | Method and Description
    --- | ---
    `Lazy<B>` | LazyRec.`checkedApply(Fn2<Kleisli<? super A,? extends B,Lazy<?>,Lazy<B>>,A,Lazy<B>> fn, A a)`
    `static <A,B> Kleisli<? super A,? extends B,Lazy<?>,Lazy<B>>` | LazyRec.`lazyRec(Fn2<Kleisli<? super A,? extends B,Lazy<?>,Lazy<B>>,A,Lazy<B>> fn)`
    `static <A,B> Lazy<B>` | LazyRec.`lazyRec(Fn2<Kleisli<? super A,? extends B,Lazy<?>,Lazy<B>>,A,Lazy<B>> fn, A a)`

  - ### Uses of Kleisli in com.jnape.palatable.lambda.functions.specialized

    Methods in com.jnape.palatable.lambda.functions.specialized that return Kleisli
    Modifier and Type | Method and Description
    --- | ---
    `default <C,MC extends Monad<C,M>> Kleisli<A,C,M,MC>` | Kleisli.`andThen(Kleisli<B,C,M,MC> after)` Left-to-right composition of two compatible `Kleisli` arrows, yielding a new `Kleisli` arrow.
    `default <Z,MA extends Monad<A,M>> Kleisli<Z,B,M,MB>` | Kleisli.`compose(Kleisli<Z,A,M,MA> before)` Right-to-left composition of two compatible `Kleisli` arrows, yielding a new `Kleisli` arrow.
    `default <Z> Kleisli<Z,B,M,MB>` | Kleisli.`contraMap(Fn1<? super Z,? extends A> fn)` Contravariantly map `A <- B`.
    `default <Z> Kleisli<Z,B,M,MB>` | Kleisli.`diMapL(Fn1<? super Z,? extends A> fn)` Contravariantly map over the argument to this function, producing a function that takes the new argument type, and produces the same result.
    `default <C> Kleisli<A,B,M,MB>` | Kleisli.`discardR(Applicative<C,Fn1<A,?>> appB)` Sequence both this `Applicative` and `appB`, discarding `appB's` result and returning this `Applicative`.
    `static <A,B,M extends Monad<?,M>,MB extends Monad<B,M>> Kleisli<A,B,M,MB>` | Kleisli.`kleisli(Fn1<? super A,? extends MB> fn)` Adapt a compatible function into a `Kleisli` arrow.

    Methods in com.jnape.palatable.lambda.functions.specialized with parameters of type Kleisli
    Modifier and Type | Method and Description
    --- | ---
    `default <C,MC extends Monad<C,M>> Kleisli<A,C,M,MC>` | Kleisli.`andThen(Kleisli<B,C,M,MC> after)` Left-to-right composition of two compatible `Kleisli` arrows, yielding a new `Kleisli` arrow.
    `default <Z,MA extends Monad<A,M>> Kleisli<Z,B,M,MB>` | Kleisli.`compose(Kleisli<Z,A,M,MA> before)` Right-to-left composition of two compatible `Kleisli` arrows, yielding a new `Kleisli` arrow.