PRIVATE>
: binary-reduce ( seq start quot: ( elt1 elt2 -- newelt ) -- value )
- pick length 0 max 0 swap (binary-reduce) ; inline
+ pick dup slice? [
+ [ seq>> ] 3dip [ from>> 0 max ] [ to>> 0 max over - ] bi
+ ] [
+ length 0 max 0 swap
+ ] if (binary-reduce) ; inline
: cut ( seq n -- before after )
[ head ] [ tail ] 2bi ;