matching generalized for T.Data
line breaks
lambdas typed implicitly