The Moby Programming Language

Major features

Moby has an ML-style module system with opaque signature matching. Definitional specifications are used instead of sharing constraints.
Moby supports parametric polymorphism with explicit quantification (including bounded quantification). Because function types are explicit in the syntax, polymorphic recursion is supported.
Moby supports structural subtyping on object types and by-name subtyping on tagtypes and class types. Subtyping is extended to other type constructors in the standard ways.
Moby supports objects with self-application semantics. An object type specifies the interface of an object, but not its implementation.
Moby supports object creation via classes. Unlike the more complicated class mechanisms of Java and C++, Moby's class mechanism only supports those mechanisms that are intrinsic to classes. We rely on the module system to support namespace management and visibility control.
Moby supports CML-style higher-order concurrency.
Data constructors
Moby supports a variety of mechanisms for defining data constructors, including ML-style datatypes, extensible tagtypes, and abstract value constructors.
Pattern matching
Moby supports ML-style pattern matching for control-flow and data deconstruction.

Last modified: August 2, 2002.
Comments to: John Reppy