Есть ли способ убедить GHCi сказать мне, какие экземпляры классов типов реализованы в некоторых выражениях произвольного типа?
Очевидно, вы можете использовать команду :info
, чтобы найти все экземпляры для конструктора типа .Но как насчет какого-нибудь сложного выражения типа ?
Например, если бы я хотел узнать, какие экземпляры Maybe Int
имеет (не Maybe
, а Maybe Int
), как я могу это сделать?что?
Я пытался
:info Maybe Int
, но это просто дает мне информацию для Maybe
, а затем информацию для Int
.Он рассматривает его как два отдельных конструктора типа, а не как выражение типа.
Особенно, когда у вас сложные стеки монадных преобразователей, не всегда очевидно, какие именно экземпляры может иметь конкретный стек.