Frankly, I consider type providers as one of the most exciting, powerful, and pragmatic F# features. Ability to apply type providers is, in my opinion, among the strongest arguments for the usage of F# in enterprise software development.
Type providers in F# represent a pretty unique practical pattern of manipulating various data sources in a strongly typed manner. This manipulation is accomplished via types, methods, and properties that were derived from the data source features and built at compile-time in a fully automated fashion. The developer is not required to author and/or maintain these automatically provided data manipulation means.
The idea of automatic code generation itself is as old as pyramids, but what makes the difference is versatility, ease of usage, and a painless experience. Those who've ever wrestled with SqlMetal (https://msdn.microsoft.com/en-us/library/bb386987(v=vs.110).aspx) or WSDLTool (https://msdn.microsoft.com/en-us...