Functional encapsulation and type reconstruction in a strongly-typed, polymorphic language. - Shail Aditya Gupta (1995)