JS
А вы какой конкретно код проверяли? И как?
Странно, что у вас получились разные результаты)
Size: a a a
JS
JS
YS
JS
f aJS
YS
f aJS
к
к
к
к
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
(вроде не бред написал)