replace $ with (), and reverse
f $ y 3
f (y 3)
change let to bind, and reverse
let x = f 3
x <- f 3
inline let
let x = 3
y = f x
let y = f 3
change fmap to bind and return
f <$> x
do z <- x
f z
replace $ with (), and reverse
f $ y 3
f (y 3)
change let to bind, and reverse
let x = f 3
x <- f 3
inline let
let x = 3
y = f x
let y = f 3
change fmap to bind and return
f <$> x
do z <- x
f z