[Fwd: Re: Maps]

Isaac Dupree isaacdupree at charter.net
Tue Jan 8 09:21:28 EST 2008

>>   interval :: k -> k -> Map k v -> Map k v

> (k -> Ordering) -> Map k v -> Map k v

> Yes.  But I think what you need to efficiently implement this is some
> sort of implicit cut, of the form (k -> Something) -> Map k v -> (Map  k
> v, Map k v).

The reason you might not be able to provide the keys yourself is that 
you can't (efficiently or at all) decide the exact right cutoff value, 
but you can provide a function that tells whether a key is too high, or 
too low, or in-range?  That makes sense to me.

I've even had cases where I wished there was a lookup that didn't 
require me to convert the key I was trying to look up, into the same 
type.  I guess it would be unsafe though, since then the Map can't 
guarantee that it's a monotonic function relative to the (compare :: k 
-> k -> Ordering) that it typically uses


More information about the Libraries mailing list