是否有可能指示ghci在评估表达式的类型时使用约束的具体类型?



我可以使用ghci来评估fmap的类型:

Prelude> :t fmap
fmap :: Functor f => (a -> b) -> f a -> f b

是否有一种方法可以指示ghci将f绑定到Functor的特定实例并打印出结果类型签名?例如,对于[],它将打印

(a -> b) -> [a] -> [b]

如果没有,有没有什么技巧或迂回的方法来达到同样的效果?这对于派生更复杂的表达式和函子(例如(->) a)的类型签名特别方便。

最简单的方法是

Prelude> :set -XTypeApplications 
Prelude> :t fmap @[]
fmap @[] :: (a -> b) -> [a] -> [b]

最新更新