Suggested changes taken from FSharp.Data