Ответ 1
MaybeT . return :: (Monad m) => Maybe a -> MaybeT m a
Я считаю, что стыдно, что у него нет стандартного имени. Более общий вид
liftMaybe :: (MonadPlus m) => Maybe a -> m a
liftMaybe = maybe mzero return
что предпочтительнее использования fail
. Я просто разместил его в удобном модуле где-нибудь.
Hayoo показывает широкое разнообразие имен для этой функции; из них maybeZero
- мой любимый. liftMaybe
, как бы это ни было очевидно, не появляется.