From the F# dojo http://www.meetup.com/Functional-Programming-in-F/events/153204122/