
Of course !! is only one cause for this kind of errror. Another is ghci> head [] *** Exception: Prelude.head: empty list Unfortunately this kind of bug is very hard to debug due to the lazy nature of haskell. You don't have a stack trace as in Java, PHP, .. Example: data D = D String a,b :: [String] a = head [] b = head [] main = do let first = a second = b print first -- both will cause the same error but a different head caused the exception print second One solution is using interlude from hackage. I'm not sure wether it supports !! Also try this haskell-cafe search (you may have to up to page 20 or so) http://search.gmane.org/?query=empty+list+head&author=&group=gmane.comp.lang.haskell.cafe&sort=relevance&DEFAULTOP=and&xP=Zempti%09Zlist&xFILTERS=Gcomp.lang.haskell.cafe---A This reveals this thread for example: http://article.gmane.org/gmane.comp.lang.haskell.cafe/14921/match=empty+list... http://article.gmane.org/gmane.comp.lang.haskell.cafe/6719/match=empty+list+... I recall there was another method. Yeah, I even found it (using ghci and set -fbreak-on-exception) http://donsbot.wordpress.com/2007/11/14/no-more-exceptions-debugging-haskell... HTH Marc Weber