Jay B. Pattern Calculus. Computing with Functions and Structures 2009