Extensible records in the System E Framework and a new approach to object-oriented type inference - Ryan Heise (2013)