You can embed metadata with sum types on a return object. You can then use the metadata
programmatically to increase correctness, enhance readability, and reduce boilerplate. This blog post goes into more details:
http://fsharpforfunandprofit.com/posts/recipe-part2/#series-...