import { Apply } from './apply'; /** * ChainFunc function type. */ export type ChainFunc = (a: A) => Chain; /** * Chain extends Apply to provide the "chain" method * for sequencing computations. */ export interface Chain extends Apply { /** * chain (bind/flatMap/>>=). */ chain(f: ChainFunc): Chain; }