We propose a new approach to adding objects to Standard ML (SML) based
on explicit declarations of object types, object constructors, and su
btyping relationships, with a generalization of the SML case statement
to a ''typecase'' on object types. The language, called Object ML (OM
L), has a type system that conservatively extends the SML type system,
preserves sound static typing, and permits type inference. The type s
ystem sacrifices some of the expressiveness found in recently proposed
schemes, but has the virtue of simplicity. We give examples of how fe
atures found in other object-oriented languages can be emulated in OML
, discuss the formal properties of OML, and describe some implementati
on issues.