если есть классы в яп - это не значит что он ООП. В хаскеле класс - это способ описать структуру функции - больше похоже на интерфейсы. Лишь сахар для абстрагиповния от реализации функции. Полиформизм также не говорит о том что язык стал ООП-ым (это вообще понятие из химии пришло) и сначала в программировании было в функциональных языках. лишь потом джава бои начали любое понятие из фп загонять в рамки ООП
В ООП важно что программу можно представить в виде объектов, каждый из которых является экземпляром какого-то класса, как ты собираешься например наследование реализовывать?