We're talking about abstract data types
Common Lisp yes, and its research predecessors, but not Lisp in 1972
CLU itself was based on Algol, and influenced C++
DEFINE STRUCTURE + type functions + function/procedures is all one needs in PL/I to achieve similar workflow,
https://www.ibm.com/docs/en/epfz/5.1 (No earlier online version found)
And if you want to read PL/I documentation that uses the term "abstract data types",
https://www.ibm.com/docs/en/z-netview/5.4.0?topic=SSZJDU_5.4...
Interlisp initially created in 1970, besides the lists everyone knows, introduced atoms, string, arrays and compound data types, which alongside macros provided the necessary foundation to create abstract data types
https://www.softwarepreservation.org/projects/LISP/interlisp...
And going back to CLU,
> The language which most closely resembles, in form, the language presented here is SIMULA 67. 8 SlMULA class definitions have many similarities with cluster definitions.
"Programming with Abstract Data Types (1974)"
https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.136...
Either way, it doesn't really matter, as it's clear that C does not include any of those ideas, and the CII style isn't idiomatic
Especially when it was created, but even today!
And it's trivial to upgrade to from C
So basically, use EITHER idiomatic C, which means long functions / few internal interfaces, reuse with ABIs not APIs, bespoke data structures, etc.
OR use C++ and ADTs (type safety, abstraction, polymorphism). Or use Rust if you don't need compatibility.
So books like CII are of very limited use, especially not for beginners. They will be fighting with the language and not understanding what it's about.
Anyway, I agree with the sentiment.