Polymorphic Type Inference and Abstract Data Types

Type