function composition
allow parens in pattern matching, deconstructing in let statements