Matthew Elder wrote: > {-# LANGUAGE CPP #-} > main = putStrLn (__FILE__ ++ ":" ++ show __LINE__) > > This outputs: > test.hs:2 > > Unfortunately, if your file is in a hierarchy of folders, this flat file > name doesn't give much context. Is there a macro to find out the current > module? IE if I had a module Foo.Bar.Car.MyModule, I would like to be > able to output something like this on error: > Foo.Bar.Car.MyModule:2
As mentioned by Claus, template-haskell offers a solution. But in some cases, this is an overkill; consider using Control.Exception.assert, it will provide module and line information without having to use CPP: myHead :: [a] -> a myHead (x:_) = x myHead [] = assert False undefined > > [...] //Stephan -- Früher hieß es ja: Ich denke, also bin ich. Heute weiß man: Es geht auch so. - Dieter Nuhr _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe