Extensible Records In The System E Framework And A New Approach To Object-Oriented Type Inference