Entry for the 2013 Informatics 1 Functional programming competition.