Proposal: rename Data.Map.fromAscList to Data.Map.unsafeFromAscList

Chris Eidhof chris at
Fri Apr 24 09:43:30 EDT 2009

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.


More information about the Libraries mailing list