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;