Кажется невозможным интроспекция ограничений типа класса на функции и типы данных и т. Д. Однако ghci, похоже, это делает.Как: t в ghci получить доступ ко всей этой интроспективной информации?
Prelude> :t show
show :: (Show a) => a -> String
Итак ... как-то он знает ограничение типа класса, так как оно распечатывает его. Как это делается?