\ intersect [ intersect-quot ] 1 define-partial-eval
+: fixnum-bits ( -- n )
+ cell-bits tag-bits get - ;
+
+: bit-quot ( #call -- quot/f )
+ in-d>> second value-info interval>> 0 fixnum-bits [a,b] interval-subset?
+ [ [ >fixnum ] dip fixnum-bit? ] f ? ;
+
+\ bit? [ bit-quot ] "custom-inlining" set-word-prop
++
+ ! Speeds up sum-file, sort and reverse-complement benchmarks by
+ ! compiling decoder-readln better
+ \ push [
+ in-d>> second value-info class>> growable class<=
+ [ \ push def>> ] [ f ] if
+ ] "custom-inlining" set-word-prop
+
+ ! We want to constant-fold calls to heap-size, and recompile those
+ ! calls when a C type is redefined
+ \ heap-size [
+ dup word? [
+ [ inlined-dependency depends-on ] [ heap-size '[ _ ] ] bi
+ ] [ drop f ] if
+ ] 1 define-partial-eval