[Haskell-cafe] some ideas for Haskell', from Python
artyom.shalkhakov at gmail.com
Thu Jan 15 23:26:03 EST 2009
2009/1/15 Manlio Perillo <manlio_perillo at libero.it>:
> Note that it seems you have sent this message only to me;
> I'm sending the reply to both you and the mailing list.
Yes, sorry, I always forget forwading to the mailing list. :(
> By the way, here is a strange (for me) problem I hit, and made me think
> about this extension.
> Suppose a file foo.hs defines:
> import Control.Monad
> import System.Posix.Files as PF
> isDirectory :: FilePath -> IO Bool
> isDirectory path =
> PF.isDirectory `liftM` PF.getFileStatus path
> If I try to load the file from ghci I get:
> Prelude> :l foo.hs
> [1 of 1] Compiling Main ( foo.hs, interpreted )
> Ok, modules loaded: Main.
> *Main> isDirectory "/var"
> Ambiguous occurrence `isDirectory'
> It could refer to either `Main.isDirectory', defined at foo.hs:6:0
> or `PF.isDirectory', imported from
> System.Posix.Files at foo.hs:2:0-30
That's exactly the problem of "function call hi-jacking".  In Haskell
it's solved using qualified imports.
More information about the Haskell-Cafe