在评估表达式的类型时,是否可以指示 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]