Как напечатать конструкторы типа в GHCi? - PullRequest
0 голосов
/ 23 апреля 2020

Используя :t Я могу напечатать тип выражения. Но как мне увидеть конструкторы этого типа? Также есть ли ярлык для этого в Haskell режиме для emacs?

Это похоже на базовую c вещь, но я не могу ее найти. Может быть, я просто ищу неправильные термины ...

В общем, какой самый простой способ увидеть распечатку определения типа без необходимости go в документации.

1 Ответ

4 голосов
/ 23 апреля 2020

:info или просто :i - это то, что вы хотите:

>>> :i Either
data Either a b = Left a | Right b  -- Defined in ‘Data.Either’
... plus all of Either's instances

Из документации GHCi :

: информация name ...

Отображение информации о заданных именах. Например, если name является классом, методы класса и их типы будут напечатаны; если name является конструктором типа, то его определение будет напечатано; если name является функцией, то будет напечатан ее тип. Если name было загружено из исходного файла, то GHCi также отобразит местоположение его определения в источнике.

Haskell -мод в Emacs имеет haskell-process-do-info ( source ), для которого Haskell в Emacs Tutorial рекомендует установить привязку клавиш C-c C-n C-i.

(defun haskell-process-do-info (&optional prompt-value) 
  "Print info on the identifier at point.
If PROMPT-VALUE is non-nil, request identifier via mini-buffer."
...
)
...