F# Value Restriction: Explaining the value error restriction, how it occurs, and how to avoid it.
Download Source