Joseph Goguen 1976. A family of declarative "ultra high level" languages. Abstract types, generic modules, subsorts (subtypes withhref="module.php?name=Lexikon&file=search&eid=1&query=multiple inheritance">multiple inheritance), pattern-matching modulo equations, E-strategies (user control over laziness), module expressions (for combining modules), theories and views (for describing module interfaces). For the massively parallel RRM (Rewrite Rule Machine). ["higher-Order Functions Considered Unnecessary for higher-Order Programming", J.A. Goguen, in Research Topics in Functional Programming].