{ vmin { +vector+ +vector+ -> +vector+ } }
{ vneg { +vector+ -> +vector+ } }
{ vtruncate { +vector+ -> +vector+ } }
+ { sum { +vector+ -> +scalar+ } }
}
- SYMBOL: specializations
+ PREDICATE: vector-word < word vector-words key? ;
- specializations [ vector-words keys [ V{ } clone ] H{ } map>assoc ] initialize
+ : specializations ( word -- assoc )
+ dup "specializations" word-prop
+ [ ] [ V{ } clone [ "specializations" set-word-prop ] keep ] ?if ;
+
+ M: vector-word subwords specializations values ;
: add-specialization ( new-word signature word -- )
- specializations get at set-at ;
+ specializations set-at ;
: word-schema ( word -- schema ) vector-words at ;