Haskell design patterns. (2015)