Speaker: Tomas Petricek (http://tomasp.net) Title: Teaching old type systems new tricks with type providers Abstract: Accessing data in statically typed languages is hard - type systems do not understand the structure of external data sources and only make data access more cumbersome, rather than providing useful safety guarantees. Should we give up and leave the messy world of external data to dynamic typing and runtime checks? Of course, not! In this talk, I'll show how type providers simplify programming with data and recover some of the properties that programmers love about static types. First, I'll discuss how the F# Data library (http://fslab.org/FSharp.Data) uses shape inference to allow typed programming against data files and services that use XML, JSON or CSV but don't have a formal schema. Second, I'll show how the pivot type provider in TheGamna (http://thegamma.net) takes the idea further by automatically exposing not just valid data fields, but also valid data aggregation operations and allows data analysts to easily construct simple queries, just by selecting members from an auto-complete list. Underlying the work is a simple question - what does safety really mean for a program which accesses data sources that it cannot control?