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 F# Data  uses shape inference to allow typed programming against data files and services that don't have a formal schema. Second, I'll show how the pivot type provider in TheGamna  takes the idea further by automatically exposing not just valid fields, but also valid data aggregation operations.
Underlying the work is a simple question - what does safety really mean for a program which accesses data sources that it cannot control?
Cornwallis South West,
University of Kent,