revie pattern-matching-and-functional-composition