UNPKG

monads-co

Version:

An implementation of Haskell's type classes in TS

9 lines (8 loc) 356 B
import { Applicative, ApplicativeHKT } from './Applicative'; import { CallHKT } from './HKT'; export interface MonadHKT extends ApplicativeHKT { output: Monad<this["input"]>; } export declare abstract class Monad<A> extends Applicative<A> { abstract then<B, Mon extends MonadHKT>(mapping: (value: A) => CallHKT<Mon, B>): CallHKT<Mon, B>; }