[Haskell-beginners] Identical function and variable names and type inference

aditya siram aditya.siram at gmail.com
Wed Sep 2 17:24:46 EDT 2009


Hi all,
Recently I wrote a function that takes a unique identifier that I called
'id'. I then tried to apply the 'id' function to it and GHC did not like
that. But it should.

For example in 'test' I have told the compiler that the id argument is an
Int. So type inference should be able to determine the first 'id' in 'id id'
couldn't possibly be an Int, but it complains. So I explicitly told the
compiler the type of 'id' in test1 - this didn't work either. The final
function 'test3' works as expected. Is there something I am not understand
about the way type inference is supposed to work?

test :: Int -> Int
test id = id id

test1 :: Int -> Int
test1 id = idFunc id
    where
      idFunc :: a -> a
      idFunc = id

test2 :: Int -> Int
test2 myid at id = id myid

test3 :: Int -> Int
test3 id = Prelude.id id

thanks ...
-deech
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090902/b6ce09e2/attachment.html


More information about the Beginners mailing list