http://blog.ezyang.com/2010/05/design-patterns-in-haskel/ http://www.cs.ox.ac.uk/jeremy.gibbons/publications/hodgp.pdf https://staticallytyped.wordpress.com/2013/03/24/gang-of-four-patterns-with-type-classes-and-implicits-in-scala-part-2/