JS
А вы какой конкретно код проверяли? И как?
Странно, что у вас получились разные результаты)
Size: a a a
JS
JS
YS
JS
f a
JS
YS
f a
JS
к
к
к
к
YS
к
YS
YS
e
аргументJS
YS
e
аргументe
, и если бы записали в теле только f
и a
- то могло бы вызываться один раз и без оптимизацийYS
к
YS
fallRight :: a -> (a -> Maybe b) -> e -> Either e b
fallRight a f
| Nothing <- fa = Left
| Just b <- fa = const(Right b)
where fa = f a
(вроде не бред написал)