Clojure является функциональным lisp, как сообщается, вовсе не объектно-ориентированным, хотя он работает на JVM, VM, предназначенной для объектно-ориентированного языка. Clojure предоставляет идентичные интерфейсы для итерации по спискам и векторам путем абстрагирования их на интерфейс под названием seq. Это даже реализовано внутренне с использованием интерфейса Java ISeq. Это не пример объектно-ориентированной абстракции? Как можно утверждать, что Clojure не является объектно-ориентированным?
Я предполагаю, что следствие этого вопроса --- когда полиморфизм можно считать отличным от объектной ориентации?