title: Haskell Ambiguous Occurrences -- how to avoid?
body: <p>I do the following in GHCI:</p>
  
  <pre><code>:m + Data.Map
  let map = fromList [(1, 2)]
  lookup 1 map
  </code></pre>
  
  <p>GHCI knows that map is a (Map Integer Integer). So why does it claim an ambiguity between Prelude.lookup and Data.Map.lookup when the type is clear and can I avoid?</p>
  
  <pre><code>&lt;interactive&gt;:1:0:
      Ambiguous occurrence `lookup'
      It could refer to either `Prelude.lookup', imported from Prelude
                            or `Data.Map.lookup', imported from Data.Map
  
  &gt; :t map
  map :: Map Integer Integer
  &gt; :t Prelude.lookup
  Prelude.lookup :: (Eq a) =&gt; a -&gt; [(a, b)] -&gt; Maybe b
  &gt; :t Data.Map.lookup
  Data.Map.lookup :: (Ord k) =&gt; k -&gt; Map k a -&gt; Maybe a
  </code></pre>