В GHCI я делаю следующее:
:m + Data.Map
let map = fromList [(1, 2)]
lookup 1 map
GHCI знает, что карта является (целочисленным целым числом). Итак, почему он требует двусмысленности между Prelude.lookup и Data.Map.lookup, когда тип ясен, и я могу избежать?
<interactive>:1:0:
Ambiguous occurrence `lookup'
It could refer to either `Prelude.lookup', imported from Prelude
or `Data.Map.lookup', imported from Data.Map
> :t map
map :: Map Integer Integer
> :t Prelude.lookup
Prelude.lookup :: (Eq a) => a -> [(a, b)] -> Maybe b
> :t Data.Map.lookup
Data.Map.lookup :: (Ord k) => k -> Map k a -> Maybe a