: multi-predicate ( classes -- quot )
dup length <iota> <reversed>
[ picker 2array ] 2map
- [ drop object eq? ] assoc-reject
+ [ object eq? ] reject-keys
[ [ t ] ] [
[ (multi-predicate) ] { } assoc>map
unclip [ swap [ f ] \ if 3array [ ] append-as ] reduce