Proposal: IntMap.differenceKeysSet for removing an IntSet of keys

Liyang HU haskell.org at liyang.hu
Fri Jun 10 02:59:00 CEST 2011


Ticket: http://hackage.haskell.org/trac/ghc/ticket/5242

Currently, IntMap.difference ma mb removes all the keys in mb from ma,
where the elements of the two IntMaps can be of different types; the
elements of mb are not used.

There is no efficient way to remove an IntSet of keys, however. These
patches adds the IntMap.differenceKeysSet function—essentially a
copy/paste of difference—that satisfies the following property:

    prop_DiffKeysSet :: Map Int -> Map () -> Bool
    prop_DiffKeysSet t1 t2
      = difference t1 t2 == differenceKeysSet t1 (keysSet t2)

Cons: Not so happy with the name. Code bloat.

Thanks,
/Liyang



More information about the Libraries mailing list