Category: Computer 2012 Algebraic data type Jul 29 2012 2011 Liskov substitution principle May 25 2011