\x y z -> ...
foldr
let { f x y = ... } in ...
let { a = b ; c = d ; ... } in ..
Text.Parsec.Combinator.notFollowedBy