Datatype generic programming refers to an assortment of techniques, libraries and language extensions used for defining programs that are parameterized by datatypes, or rather by shapes of datatypes. Popularized by work such as Scrap Your Boilerplate and Generic Haskell, its applications include pretty-printers, serializers and random value generators. While similar work has been done in F#, most .NET applications "out there" rely on tedious use of reflection which results in inefficient, hard-to-read implementations that are prone to breakage. In this talk I'll be presenting TypeShape, a small library for generic programming with emphasis on practical application and extensibility. TypeShape takes advantage of F# active patterns and object expressions to concisely define extensive, generic programs. It is already being used in real-world libraries such as FsPickler and FSharp.AWS.DynamoDB.
Eirik George Tsarpalis is a mathematician who's been a professional F# developer for the past 4 years. He's core developer and primary contributor to the MBrace project and has authored an assortment of open source tools including FsPickler, Argu, Vagabond and QuotationCompiler.