: 2DROP ( n1 n2 -- ) 
  DROP DROP
;

: 2DUP ( n1 n2 -- n1 n2 n1 n2 ) 
  OVER OVER 
;

: NIP ( n1 n2 -- n2 ) 
  SWAP DROP 
;

: -ROT ( n1 n2 n3 -- n3 n1 n2 ) 
  ROT ROT 
;

: TUCK ( n1 n2 -- n2 n1 n2 ) 
  SWAP OVER 
;

: INCR ( a1 -- ) 
  1 SWAP +! 
;

: STRCONTAINS ( s1 s2 -- b1 )
  STRFIND 0 >=
;

: STRLEFT ( s1 n1 -- s2 )
  0 SWAP STRMID
;

: STRRIGHT ( s1 n1 -- s2 )
  OVER STRLEN SWAP - -1 STRMID
;

: STRSTARTSWITH ( s1 s2 -- b1 )
  DUP STRLEN ROT SWAP STRLEFT =
;

: STRENDSWITH ( s1 s2 -- b1 )
  DUP STRLEN ROT SWAP STRRIGHT =
;

: STRBEFORE ( s1 s2 -- s3 )
  OVER SWAP STRFIND STRLEFT
;