def or_else(self, fa: F, a: Union[F, Callable[[], F]]): return fa if self.present(fa) else maybe.call_by_name(a)
def to_either(self, fa: Maybe[A], left: Union[B, Callable[[], B]] ) -> either.Either[A, B]: from tryp.either import Left, Right return fa.cata(Right, lambda: Left(call_by_name(left)))