Каким образом: t в ghci получает доступ ко всей этой интроспективной информации?

Кажется, невозможно проанализировать ограничения класса типов на функции, типы данных и тому подобное. Однако похоже, что ghci это делает.

Prelude> :t show
show :: (Show a) => a -> String

Итак ... каким-то образом он знает ограничение класса типа, так как распечатывает его. Как это происходит?

6
задан imz -- Ivan Zakharyaschev 29 March 2011 в 18:50
поделиться