Minoru@fvnever: по-моему, «механически» это примерно одно и то же. А вот используются по-разному: в Haskell принято взять самый-самый общий из подходящих тайпклассов, а в ООП обычно берут конкретный класс, лепят поверх него интерфейс и пытаются повсюду использовать интерфейс, на всякий случай. Почти что диаметрально противоположные подходы