The Free On-line Dictionary of Computing (30 December 2018):
OBJ
   Joseph Goguen 1976.  A family of declarative "ultra high
   level" languages.  Abstract types, generic modules, subsorts
   (subtypes with 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].