EML generalizes ML-style datatypes and functions to be hierarchically extensible, thus allowing the programmer to seamlessly integrate the object-oriented programmingparadigm with the traditional functional style.
Millstein, Bleckner, Chambers. Modular typechecking for hierarchically extensible datatypes and functions.Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, ACM Press, 2002.