
9 Sep
2008
9 Sep
'08
9:21 p.m.
Or define your own ghead and gtail: ghead msg [] = error "ghead " ++ msg ++ "[]" ghead _ (x:xs) = x gtail msg [] = error "gtail" ++ msg ++ "[]" gtail msg (x:xs) = xs and you can call them with a name of a function to give you an idea where the error is occurring: myHead = ghead "myHead" [] Chris. On Tue, 9 Sep 2008, Ketil Malde wrote:
"Justin Bailey"
writes: are using tail (or could be calling something that uses tail) and use the "trace" function to output logging info.
Another cheap trick is to use CPP with something like:
#define head (\xs -> case xs of { (x:_) -> x ; _ -> error("head failed at line"++__FILE__++show __LINE__)})
-k