import * as Monad from './maybe.impl'; import { noop } from '../function'; export class Maybe extends Monad.Maybe { private constructor() { super(noop as never); } } export type Just = Monad.Just; export function Just(a: a): Maybe { return new Monad.Just(a); } export type Nothing = Monad.Nothing; export const Nothing = Monad.Maybe.mzero;