¿Por qué `mfix` no es total en` MaybeT`
losimplementación de transformadores deMonadFix
paraMaybeT
falla si la función alguna vez se evalúa comoNothing
. Por que esNothing
sin propagarsemfix
?
mfix' :: MonadFix m => (a -> MaybeT m a) -> MaybeT m a
mfix' f = MaybeT $ mfix $ \case
Nothing -> return Nothing
Just x -> runMaybeT $ f x
Debe haber una buena razón que no veo porqueListT
no implementaMonadFix
en absoluto, yMaybe
lo implementadel mismo modo como anteriormente.