>So how do you debug problems like "Prelude.head: empty list" >in large programs? I normally dont use head, but instead code: case x of (a0:_) -> <expr1> _ -> fail <debug info> for precisely this reason - and the fact that I dont like bindings that can fail... Keean.