export declare type Nothing = {
kind: 'Nothing';
};
export declare type Just = {
kind: 'Just';
value: A;
};
export declare type Maybe = Just | Nothing;
export declare function Just(value: A): Maybe;
export declare function Nothing(): Maybe;
export declare function isJust(maybe: Maybe): maybe is Just;
export declare function isNothing(maybe: Maybe): maybe is Just;
export declare function withDefault(value: A, maybeValue: Maybe): A;
export declare function map(func: (val: A) => Value, maybeValue: Maybe): Maybe;
export declare function map2(func: (firstValue: A, secondValue: B) => Value, firstMaybeValue: Maybe, secondMaybeValue: Maybe): Maybe;
export declare function map3(func: (firstValue: A, secondValue: B, thirdValue: C) => Value, firstMaybeValue: Maybe, secondMaybeValue: Maybe, thirdMaybeValue: Maybe): Maybe;
export declare function andThen(func: (firstValue: A) => Maybe, maybeValue: Maybe): Maybe;