M: set all-unique? drop t ;
-<PRIVATE
-
-: (pruned) ( elt set accum -- )
- 2over ?adjoin [ nip push ] [ 3drop ] if ; inline
-
-: pruned ( seq -- newseq )
- [ f fast-set ] [ length <vector> ] bi
- [ [ (pruned) ] 2curry each ] keep ;
-
-PRIVATE>
-
! Sequences are sets
INSTANCE: sequence set
[ members ] dip like ;
M: sequence members
- [ pruned ] keep like ;
+ f fast-set [ ?adjoin ] curry filter ;
M: sequence null?
empty? ; inline