
On 24 apr 2009, at 15:26, Bulat Ziganshin wrote:
Hello Chris,
Friday, April 24, 2009, 5:21:20 PM, you wrote:
No, but the functions you mentioned do fail immediately. If I use a head on an empty list I get an error immediately. If I use fromAscList incorrectly I get an error only when I try to lookup elements. This makes it hard to debug if you didn't make this error before. I don't mind a runtime error in this case, but I very much want to know where my bug is.
how about providing such check only in *debugging* version of library?
That would give different semantics in two cases, suppose:
main = mapM dangerousFunction (toList (fromAscList [(1,0),(0,0)]))
When doing it without checks, this would fail after a couple of IO operations. When doing this with a check the function wouldn't do any IO at all. -chris