My submission for icfp contest 2014