使用ghci,我有時會使用多行模式輸入定義(如interactive-evaluation documentation中所述)。 例如, > :{
Prelude| sumToN :: (Eq a, Num a) => a -> a
Prelude| sumToN n
Prelude| | signum n /= 1 = 0
Prelude| | otherwise = 1 + sumTo
當我進入GHCI命令:t我看到的多態類型: ghci> :t 42
42 :: Num t => t
ghci> :t div
div :: Integral a => a -> a -> a
但經過我實際評估這些功能我看到的類型默認規則的結果。根據Haskell報告和/或ghc實現應用類型違約規則後,有沒有一些命令或能力可以在ghci中觀察如何更改類型?
我想知道具體爲什麼地圖不在以下工作: {-# Language RankNTypes #-}
module Demo where
import Numeric.AD
newtype Fun = Fun (forall a. Num a => [a] -> a)
test1 :: Fun
test1 = Fun $ \[u, v] -> (v - (u * u * u))
test