Найти экземпляры для выражения произвольного типа - PullRequest
10 голосов
/ 24 мая 2019

Есть ли способ убедить GHCi сказать мне, какие экземпляры классов типов реализованы в некоторых выражениях произвольного типа?

Очевидно, вы можете использовать команду :info, чтобы найти все экземпляры для конструктора типа .Но как насчет какого-нибудь сложного выражения типа ?

Например, если бы я хотел узнать, какие экземпляры Maybe Int имеет (не Maybe, а Maybe Int), как я могу это сделать?что?

Я пытался

 :info Maybe Int

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

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

...