Higher order functions: http://learnyouahaskell.com/higher-order-functions