/**
* @tsplus static Maybe.Aspects filter
* @tsplus pipeable Maybe filter
*/
export function filter(f: Refinement): (self: Maybe) => Maybe
export function filter(f: Predicate): (self: Maybe) => Maybe
export function filter(f: Predicate) {
return (self: Maybe): Maybe =>
self.isNone() ? Maybe.none : f(self.value) ? self : Maybe.none
}