 
 ERROR: integer-length-expected obj ;
 
+#! The check-length call forces partial dispatch
 : check-length ( n -- n )
     dup integer? [ integer-length-expected ] unless ; inline
 

    [ nth-unsafe ] bi-curry@ bi ; inline

: ((2each)) ( seq1 seq2 -- n quot )
    [ min-length ] 2keep [ 2nth-unsafe ] 2curry ; inline

: (2each) ( seq1 seq2 quot -- n quot' )
    [ ((2each)) ] dip compose ; inline

    [ swap length + ] dip lengthen ; inline

: copy-unsafe ( src i dst -- )
    [ [ length check-length 0 ] keep ] 2dip <copy> (copy) drop ; inline

: subseq-unsafe ( from to seq -- subseq )
