/**
* Returns a smart constructor based on the given predicate.
*
* @tsplus static Maybe.Ops fromPredicate
*/
export function fromPredicate(
a: A,
refinement: Refinement
): Maybe
export function fromPredicate(a: A, predicate: Predicate): Maybe
export function fromPredicate(a: A, predicate: Predicate): Maybe {
return predicate(a) ? Maybe.some(a) : Maybe.none
}