к
Size: a a a
[
к
[
[
JS
(input, f) <- p1 input
(input, a) <- p2 input
pure (input, f a)
[
JS
JS
AP
(input, f) <- p1 inputрассахаривается в
...
p1 input >>= \(input, f) -> ...
или даже(>>=) (p1 input) (\(input, f) -> ...)
AP
JS
do<-
, а для остального оставить. да, знаю, "пиши патчи в GHC"JS
let a = f a
, то вместо затенения получим рекурсию, но это не потому что затенение не работает, а потому что рекурсия работаетJS
AP
AP
IK
(input, f) <- p1 input
(input, a) <- p2 input
pure (input, f a)