UNPKG

monads-co

Version:

An implementation of Haskell's type classes in TS

14 lines (13 loc) 866 B
import { Functor, FunctorHKT } from './Functor'; import { CallHKT } from './HKT'; export interface ApplicativeHKT extends FunctorHKT { output: Applicative<this["input"]>; } export declare abstract class Applicative<A> extends Functor<A> { abstract amap<B, App extends ApplicativeHKT>(mapping: CallHKT<App, (value: A) => B>): CallHKT<App, B>; abstract pure<B, App extends ApplicativeHKT>(value: B): CallHKT<App, B>; static liftToApplicative<A, B, C, App extends ApplicativeHKT>(fn: (value: A) => (value: B) => C): (a: CallHKT<App, A>) => (b: CallHKT<App, B>) => CallHKT<App, C>; andIgnoreRight<B, App extends ApplicativeHKT>(b: CallHKT<App, B>): CallHKT<App, A>; andIgnoreLeft<B, App extends ApplicativeHKT>(b: CallHKT<App, B>): CallHKT<App, B>; and<B, App extends ApplicativeHKT>(b: CallHKT<App, B>): CallHKT<App, [A, B]>; }