GENERIC: call ( callable -- ) 3 methods: quotation, curry, compose ! ! ! BEFORE: [ dup tag dup 3 eq? [ drop dup 0 slot 8 fixnum-fast dup 6 eq? [ drop { quotation } declare quotation=>call ] [ drop object=>call ] if ] [ dup 2 eq? [ drop dup { tuple } declare 1 slot { tuple-layout } declare 5 slot dup 1 fixnum>= [ drop dup { tuple } declare 1 slot { tuple-layout } declare 4 slot { array } declare 3 slot { word } declare dup \ curry eq? [ drop { curry } declare curry=>call ] [ dup \ compose eq? [ drop { compose } declare compose=>call ] [ drop object=>call ] if ] if ] [ drop object=>call ] if ] [ drop object=>call ] if ] if ] ! ! ! AFTER: [ dup tag dup 2 eq? [ drop dup { tuple } declare 1 slot { array } declare 7 slot dup \ compose eq? [ drop { compose } declare compose=>call ] [ dup \ curry eq? [ drop { curry } declare curry=>call ] [ drop object=>call ] if ] if ] [ dup 3 eq? [ drop dup { hi-tag } declare 0 slot dup 14 eq? [ drop { quotation } declare quotation=>call ] [ drop object=>call ] if ] [ drop object=>call ] if ] if ]