基本的例子

λ> :t 1
1 :: Num t => t

λ> :t pi
pi::Floating a => a

在上面的示例中,类型检查器为两个常量推断出类型而不是具体类型。在 Haskell 中,Num 类是最通用的数字类(因为它包含整数和实数),但是 pi 必须属于更专业的类,因为它具有非零小数部分。

list0 :: [Integer]
list0 = [1, 2, 3]

list1 :: [Double]
list1 = [1, 2, pi]

上述具体类型由 GHC 推断。像 list0 :: Num a => [a] 这样的更普遍的类型会起作用,但是也会更难保存(例如,如果将一个 Double 强加到 Nums 列表中),由于上面显示的警告。