Proposal: Add Data.List.sortNub and sortNubBy
Donald Bruce Stewart
dons at cse.unsw.edu.au
Tue Mar 13 18:45:01 EDT 2007
john:
> On Tue, Mar 13, 2007 at 11:12:40AM +0000, Neil Mitchell wrote:
> > As for Stefan's ordNub, I think it is a great idea to add along with
> > sortNub - this really does give people a nicer set of Nub functions.
> > My only worry is that the dependency on State and Set will make the
> > implementation have cyclic dependency fun.
>
> once we have ordNub, we can create lots of RULES like the following
>
> {-# RULES "nub/ordNub" nub = ordNub :: [String] -> [String] #-}
> {-# RULES "nub/ordNub" nub = ordNub :: [Int] -> [Int] #-}
> {-# RULES "nub/ordNub" nub = ordNub :: [Integer] -> [Integer] #-}
>
> actually, we probably want one that uses IntMap for ints. it is
> signifigantly faster.
>
>
> I don't suppose there is a way to match a RULE to a class constraint? I
> don't see how it would be implemented in any easy way since classes get
> desugared away pretty early... but it would be an interesting feature..
>
> {-# RULES "nub/ordNub" forall (a::*) . Ord a => nub = ordNub :: [a] -> [a] #-}
> or something...
>
Hmm, this type-determining-represetation sounds like a job for
associated types :-)
-- Don
More information about the Libraries
mailing list