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