[Haskell] RFC: DData in hierarchical libraries

Christian Maeder maeder at tzi.de
Thu Mar 11 15:21:24 EST 2004


Hi Daan,

>> Set.toAscList is not really necessary as it is the same as Set.toList.
> 
> Not necessarily: the lists from Set.toList will be equal for equal 
> Set's, but may be unordered. Use "toAscList" or "toDescList" if you
 > want an ordered variant.

That really surprises me. I think that toList must return a sorted list 
(to properly abstract the Set data type), and anything unsorted should 
only be for debugging purposes.

>> The functions Set.fromAscList and Set.fromAscDistinctList should be 
>> marked as "unsafe"
> 
> I think so too, although I like "unchecked" better?

Good, I agree.

>> Map.keySet = Set.fromDistinctAscList . Map.keys

> Yes, we could do that -- but the circular dependency is terrible, and a 
> wrapper module
> would need to look at the internal representation of Map/Set :-(

I don't see the circular dependency. Map imports Set (but not vice 
versa?). In any case, I would prefer a wrapper (possible revealing some 
more "unchecked" functions).

Christian



More information about the Libraries mailing list