In a sense, prototype languages which deny the "class-instance" are denying a clean total abstraction. They're more like FractionalAbstraction.

Is that really true? Surely they just move the abstraction to runtime rather than compile time? – AdrianHoward

So see also OnAbstraction, DoesAbstractionScale

CategoryAbstraction, CategoryProgramming