вы будете точно знать, какова форма этого леса на верхнем уровне, то есть сколько именно элементов у него есть, или он завершается и т. д. по монотонности. Так что это не имеет значения вообще. Однако я согласен с тем, что экземпляры дерева / списка / розового дерева и т. Д. Вряд ли будут полезны. Все примеры, которые я видел для таких эзотерических случаев, являются более или менее искусственными. Единственный известный мне пример, который является «полезным», - это пример для Fudgets, который является своего рода «деревом» и моделирует семантику термина для базового ввода-вывода; обсуждается в разделе 4.8 диссертации.
изация трансформаторов из заMonadFix
не удается, если функция когда-либо оцениваетMaybeT
, ПочемуNothing
не распространяется поNothing
Должна быть веская причина, которую я не вижу, потому чтоmfix
?
mfix' :: MonadFix m => (a -> MaybeT m a) -> MaybeT m a
mfix' f = MaybeT $ mfix $ \case
Nothing -> return Nothing
Just x -> runMaybeT $ f x
не реализуетListT
на всех, иMonadFix
реализует этоMaybe
таким же образом как указано выше.Пояснение: «таким же образом, как указано выше», я полагаю, вы имеете в виду «происходит сбой, если функция когда-либо оценивается как