UNPKG

@beenotung/tslib

Version:
21 lines (20 loc) 603 B
import { Either } from './either'; /** * Created by beenotung on 2/16/17. */ export interface Maybe<A> { isJust: boolean; isNothing: boolean; map: <B>(f: (a: A) => B) => Maybe<B>; get(): A; withDefault(a: A): Maybe<A>; then(f: (a: A) => void): Maybe<A>; otherwise(f: () => void): Maybe<A>; toEither<E>(e: E): Either<E, A>; } export declare const Nothing: Maybe<any>; export declare namespace Maybe { function fromNullable<A>(a: A): Maybe<A>; function or<A>(a: Maybe<A>, b: Maybe<A>): Maybe<A>; function and<A, B>(a: Maybe<A>, b: Maybe<B>): Maybe<[A, B]>; }