Скажем, у меня есть следующий тип:
newtype T1 a = T1 a
Я могу сделать для него Show
экземпляр:
instance showT1Generic :: Show a => Show (T1 a) where
show (T1 a) = "generic: " <> show a
Однако, допустим, я хочу сделать что-то особенное для типов T1 Int
. Я пробовал это сделать:
instance showT1Int :: Show (T1 Int) where
show (T1 a) = "int: " <> show a
и он компилируется, однако запуск в psci
работает не так, как ожидалось:
> T1 'a'
generic: 'a'
> T1 1
generic: 1
Я делаю это неправильно?