Add a number of functional programming constructs