[Haskell-cafe] Source code location in IO?
Tom Ellis
tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk
Mon Jun 20 15:03:56 UTC 2016
Is it compatible with the semantics of Haskell to have a function
sourceLocation :: IO String
which when run returns the source file location at which it is used? For
example, suppose Main.hs is
module Main where
main = do
putStrLn =<< sourceLocation
putStrLn "Hello"
putStrLn =<< sourceLocation
It would print the following when run
Main.hs:4
Hello
Main.hs:6
and
module Main where
main = do
let s = sourceLocation
putStrLn =<< s
putStrLn "Hello"
putStrLn =<< s
It would print the following when run
Main.hs:4
Hello
Main.hs:4
If this is not compatible with the semantics of Haskell, why not? I agree
that the two programs must have the same denotation, but is there anything
that requires them to have the same output when run?
Tom
More information about the Haskell-Cafe
mailing list