У меня есть синоним типа, например
type Events t b = Tb.T t b
Базовый тип Tb.T
является экземпляром многих классов типов, например,
instance [safe] (Eq time, Eq body) => Eq (Tb.T time body)
instance [safe] Functor (Tb.T time)
..
Мой синоним типа (конечно) наследует всеэти случаи.Например, это также Functor:
λ> :t flip fmap (undefined :: Events Int String)
flip fmap (undefined :: Events Int String)
:: (String -> b) -> Tb.T Int b
, но этот факт не показан ни в команде :info
команды ghci, ни в сгенерированной документации пикши.Кроме того, я предпочел бы видеть тип возвращаемого значения как Events Int b
вместо Tb.T Int b
.
Есть ли способ обойти это?