как мне обойти следующие ограничения системы типов хаскеля.
есть у меня например класс
class C a where f :: a -> b -> a
я делаю инстанс этого класса, для типов T1 и Т2 data T1 = T1 data T2 = T2
instance C T1 where f T1 b = T1
instance C T2 where f T2 b = T1
система типов хаскеля, конечно же єтого не позволяет, так как сигнатура ф-и f :: a -> b -> a т.е. тип первого аргумента и результата - совпадают. а мне хотелось бі чего-то вроде f :: a1 -> b -> a2, где a1, a2 - инстансы класса С
как мне решить данную проблему?