/**
* Classic applicative.
*
* @tsplus static Maybe.Aspects ap
* @tsplus pipeable Maybe ap
*/
export function ap(that: Maybe) {
return (self: Maybe<(a: A) => B>): Maybe =>
self.isNone() ?
Maybe.none :
that.isNone() ?
Maybe.none :
Maybe.some(self.value(that.value))
}