Допустим, я хочу написать функцию, которая возвращает true не только когда аргументы -- инстансы (прямые потомки) какого-то одного класса, а наследуют от какого то одного класса, но не напрямую, а через цепочку суперклассов. Можно такое расширение над этим Вашим решением написать?
В хаскеле нет наследования типа от типа, так что и нет проблемы расширения. «Наследованием» можно считать в каком-то смысле только инстансы вида
(Class1 params1, …) => Class params, но то уже другая опера.