monads-co
Version:
An implementation of Haskell's type classes in TS
9 lines (8 loc) • 356 B
TypeScript
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>;
}