 <PRIVATE
 
 : (pruned) ( elt set accum -- )
-    2over in? [ 3drop ] [
-        [ drop adjoin ] [ nip push ] 3bi
-    ] if ; inline
+    2over ?adjoin [ nip push ] [ 3drop ] if ; inline
 
 : pruned ( seq -- newseq )
     [ f fast-set ] [ length <vector> ] bi

! Set protocol
MIXIN: set
GENERIC: adjoin ( elt set -- )
GENERIC: in? ( elt set -- ? )
GENERIC: delete ( elt set -- )
GENERIC: set-like ( set exemplar -- set' )

: without ( seq set -- subseq )
    tester [ not ] compose filter ;

: adjoin-all ( seq set -- )
    [ adjoin ] curry each ;

