
Probably because you don't apply "x" to "xx" anywhere? On 6 Jun 2009, at 11:48, John Ky wrote:
Hi Haskell Cafe,
In the following code, I get an error saying Ambiguous occurrence `x'. Why can't Haskell work out which x to call based on the type of getA?
Thanks
-John
#!/usr/bin/env runhaskell
{-# LANGUAGE DisambiguateRecordFields #-} import A import B
main = do let xx = getA putStrLn $ show x xx
----------------------
module A where
data TypeA = TypeA { a :: Int , x :: Int }
getA = TypeA { a = 1, x = 2 }
-------------------------
module B where
data TypeB = TypeB { b :: Int , x :: Int }
getB = TypeB { b = 1, x = 3 }
--------------------------
./test.lhs:8:21: Ambiguous occurrence `x' It could refer to either `A.x', imported from A at ./test.lhs: 3:2-9 (defined at A.hs:5:5) or `B.x', imported from B at ./test.lhs: 4:2-9 (defined at B.hs:5:5)
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe