История изменений
Исправление
dave,
(текущая версия)
:
Про аналог ArrowLoop я, вообще, молчу:
instance MonadFix m => ArrowLoop (Kleisli m) where
loop (Kleisli f) = Kleisli (liftM fst . mfix . f')
where f' x y = f (x, snd y)
Обратить особое внимание на mfix
Исходная версия
dave,
:
Про аналог ArrowLoop я, вообще, молчу:
instance MonadFix m => ArrowLoop (Kleisli m) where
loop (Kleisli f) = Kleisli (liftM fst . mfix . f')
where f' x y = f (x, snd y)
Обратить особое внимание на mfix