prelude: :gerbil/compiler/ssxi
package: std/srfi

(begin
  (declare-type std/srfi/115#string-start-arg (@lambda 2 #f))
  (declare-type std/srfi/115#string-end-arg (@lambda 2 #f))
  (declare-type std/srfi/115#string-cursor? (@lambda 1 #f))
  (declare-type std/srfi/115#string-cursor-ref (@lambda 2 #f))
  (declare-type std/srfi/115#string-cursor-next (@lambda 2 #f))
  (declare-type std/srfi/115#string-cursor-prev (@lambda 2 #f))
  (declare-type std/srfi/115#substring-cursor (@lambda 3 #f))
  (declare-type std/srfi/115#string-cursor->index (@lambda 2 #f))
  (declare-type std/srfi/115#string-index->cursor (@lambda 2 #f))
  (declare-type std/srfi/115#string-concatenate (@lambda 1 #f))
  (declare-type std/srfi/115#string-concatenate-reverse (@lambda 1 #f))
  (declare-type std/srfi/115#immutable-char-set (@lambda 1 #f))
  (declare-type
   std/srfi/115#Rx
   (@struct-type
    std/srfi/115#Rx
    #f
    7
    #f
    ((fields:
      start-state
      num-matches
      num-save-indexes
      non-greedy-indexes
      match-rules
      match-names
      sre))))
  (declare-type std/srfi/115#regexp? (@struct-pred std/srfi/115#Rx))
  (declare-type
   std/srfi/115#rx-start-state
   (@struct-getf std/srfi/115#Rx 0 #f))
  (declare-type
   std/srfi/115#rx-num-matches
   (@struct-getf std/srfi/115#Rx 1 #f))
  (declare-type
   std/srfi/115#rx-num-save-indexes
   (@struct-getf std/srfi/115#Rx 2 #f))
  (declare-type
   std/srfi/115#rx-non-greedy-indexes
   (@struct-getf std/srfi/115#Rx 3 #f))
  (declare-type std/srfi/115#rx-rules (@struct-getf std/srfi/115#Rx 4 #f))
  (declare-type std/srfi/115#rx-names (@struct-getf std/srfi/115#Rx 5 #f))
  (declare-type std/srfi/115#regexp->sre (@struct-getf std/srfi/115#Rx 6 #f))
  (declare-type
   std/srfi/115#rx-start-state-set!
   (@struct-setf std/srfi/115#Rx 0 #f))
  (declare-type
   std/srfi/115#rx-num-matches-set!
   (@struct-setf std/srfi/115#Rx 1 #f))
  (declare-type
   std/srfi/115#rx-num-save-indexes-set!
   (@struct-setf std/srfi/115#Rx 2 #f))
  (declare-type
   std/srfi/115#rx-non-greedy-indexes-set!
   (@struct-setf std/srfi/115#Rx 3 #f))
  (declare-type std/srfi/115#rx-rules-set! (@struct-setf std/srfi/115#Rx 4 #f))
  (declare-type std/srfi/115#rx-names-set! (@struct-setf std/srfi/115#Rx 5 #f))
  (declare-type std/srfi/115#make-rx (@struct-cons std/srfi/115#Rx))
  (declare-type
   std/srfi/115#State
   (@struct-type
    std/srfi/115#State
    #f
    7
    #f
    ((fields: accept? chars match match-rule next1 next2 id))))
  (declare-type std/srfi/115#state? (@struct-pred std/srfi/115#State))
  (declare-type
   std/srfi/115#state-accept?
   (@struct-getf std/srfi/115#State 0 #f))
  (declare-type
   std/srfi/115#state-chars
   (@struct-getf std/srfi/115#State 1 #f))
  (declare-type
   std/srfi/115#state-match
   (@struct-getf std/srfi/115#State 2 #f))
  (declare-type
   std/srfi/115#state-match-rule
   (@struct-getf std/srfi/115#State 3 #f))
  (declare-type
   std/srfi/115#state-next1
   (@struct-getf std/srfi/115#State 4 #f))
  (declare-type
   std/srfi/115#state-next2
   (@struct-getf std/srfi/115#State 5 #f))
  (declare-type std/srfi/115#state-id (@struct-getf std/srfi/115#State 6 #f))
  (declare-type
   std/srfi/115#state-accept?-set!
   (@struct-setf std/srfi/115#State 0 #f))
  (declare-type
   std/srfi/115#state-chars-set!
   (@struct-setf std/srfi/115#State 1 #f))
  (declare-type
   std/srfi/115#state-match-set!
   (@struct-setf std/srfi/115#State 2 #f))
  (declare-type
   std/srfi/115#state-match-rule-set!
   (@struct-setf std/srfi/115#State 3 #f))
  (declare-type
   std/srfi/115#state-next1-set!
   (@struct-setf std/srfi/115#State 4 #f))
  (declare-type
   std/srfi/115#state-next2-set!
   (@struct-setf std/srfi/115#State 5 #f))
  (declare-type std/srfi/115#%make-state (@struct-cons std/srfi/115#State))
  (declare-type std/srfi/115#make-state (@lambda 7 #f))
  (declare-type std/srfi/115#flag-set? (@lambda 2 #f))
  (declare-type std/srfi/115#flag-join (@lambda 2 #f))
  (declare-type std/srfi/115#flag-clear (@lambda 2 #f))
  (declare-type std/srfi/115#char-set-ci (@lambda 1 #f))
  (declare-type std/srfi/115#make-char-state (@lambda 4 #f))
  (declare-type std/srfi/115#make-fork-state (@lambda 3 #f))
  (declare-type std/srfi/115#make-epsilon-state (@lambda 2 #f))
  (declare-type std/srfi/115#make-accept-state (@lambda 1 #f))
  (declare-type
   std/srfi/115#Regexp-Match
   (@struct-type
    std/srfi/115#Regexp-Match
    #f
    3
    #f
    ((fields: matches rx string))))
  (declare-type
   std/srfi/115#regexp-match?
   (@struct-pred std/srfi/115#Regexp-Match))
  (declare-type
   std/srfi/115#regexp-match-matches
   (@struct-getf std/srfi/115#Regexp-Match 0 #f))
  (declare-type
   std/srfi/115#regexp-match-rx
   (@struct-getf std/srfi/115#Regexp-Match 1 #f))
  (declare-type
   std/srfi/115#regexp-match-string
   (@struct-getf std/srfi/115#Regexp-Match 2 #f))
  (declare-type
   std/srfi/115#regexp-match-matches-set!
   (@struct-setf std/srfi/115#Regexp-Match 0 #f))
  (declare-type
   std/srfi/115#%make-regexp-match
   (@struct-cons std/srfi/115#Regexp-Match))
  (declare-type std/srfi/115#regexp-match-rules (@lambda 1 #f))
  (declare-type std/srfi/115#regexp-match-names (@lambda 1 #f))
  (declare-type std/srfi/115#make-regexp-match (@lambda 3 #f))
  (declare-type std/srfi/115#make-regexp-match-for-rx (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-count (@lambda 1 #f))
  (declare-type std/srfi/115#regexp-match-name-offset (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-ref (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-set! (@lambda 3 #f))
  (declare-type std/srfi/115#copy-regexp-match (@lambda 1 #f))
  (declare-type std/srfi/115#regexp-match-submatch/list (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-submatch (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-submatch-start+end (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-submatch-start (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-submatch-end (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-convert (@lambda 3 #f))
  (declare-type std/srfi/115#regexp-match->list (@lambda 1 #f))
  (declare-type std/srfi/115#regexp-match->sexp (@lambda 1 #f))
  (declare-type std/srfi/115#match-collect (@lambda 2 #f))
  (declare-type
   std/srfi/115#Searcher
   (@struct-type std/srfi/115#Searcher #f 2 #f ((fields: state matches))))
  (declare-type std/srfi/115#searcher? (@struct-pred std/srfi/115#Searcher))
  (declare-type
   std/srfi/115#searcher-state
   (@struct-getf std/srfi/115#Searcher 0 #f))
  (declare-type
   std/srfi/115#searcher-matches
   (@struct-getf std/srfi/115#Searcher 1 #f))
  (declare-type
   std/srfi/115#searcher-state-set!
   (@struct-setf std/srfi/115#Searcher 0 #f))
  (declare-type
   std/srfi/115#searcher-matches-set!
   (@struct-setf std/srfi/115#Searcher 1 #f))
  (declare-type
   std/srfi/115#make-searcher
   (@struct-cons std/srfi/115#Searcher))
  (declare-type std/srfi/115#regexp-match>=? (@lambda 2 #f))
  (declare-type std/srfi/115#regexp-match-max (@lambda 2 #f))
  (declare-type std/srfi/115#searcher-merge! (@lambda 2 #f))
  (declare-type std/srfi/115#searcher-max (@lambda 2 #f))
  (declare-type std/srfi/115#searcher-start-match (@lambda 1 #f))
  (declare-type std/srfi/115#make-posse (@lambda (0) #f))
  (declare-type std/srfi/115#posse? (@lambda 1 table?))
  (declare-type std/srfi/115#posse-empty? (@lambda 1 #f))
  (declare-type std/srfi/115#posse-ref (@lambda 2 #f))
  (declare-type std/srfi/115#posse-add! (@lambda 2 #f))
  (declare-type std/srfi/115#posse-clear! (@lambda 1 #f))
  (declare-type std/srfi/115#posse-for-each (@lambda 2 #f))
  (declare-type std/srfi/115#posse-every (@lambda 2 #f))
  (declare-type std/srfi/115#posse->list (@lambda 1 hash-values))
  (declare-type std/srfi/115#list->posse (@lambda 1 #f))
  (declare-type std/srfi/115#posse (@lambda (0) #f))
  (declare-type std/srfi/115#make-start-searcher (@lambda 2 #f))
  (declare-type std/srfi/115#epsilon-state? (@lambda 1 #f))
  (declare-type std/srfi/115#state-matches? (@lambda 7 #f))
  (declare-type std/srfi/115#posse-advance! (@lambda 8 #f))
  (declare-type std/srfi/115#regexp-run-offsets (@lambda 5 #f))
  (declare-type std/srfi/115#regexp-run (@lambda (3) #f))
  (declare-type std/srfi/115#regexp-matches (@lambda (2) #f))
  (declare-type std/srfi/115#regexp-matches? (@lambda (2) #f))
  (declare-type std/srfi/115#regexp-search (@lambda (2) #f))
  (declare-type std/srfi/115#parse-flags (@lambda 1 #f))
  (declare-type std/srfi/115#char-word-constituent? (@lambda 1 #f))
  (declare-type std/srfi/115#get-char-set:cased (@lambda 0 #f))
  (declare-type std/srfi/115#match/bos (@lambda 6 #f))
  (declare-type std/srfi/115#match/eos (@lambda 6 #f))
  (declare-type std/srfi/115#match/bol (@lambda 6 #f))
  (declare-type std/srfi/115#match/eol (@lambda 6 #f))
  (declare-type std/srfi/115#match/bow (@lambda 6 #f))
  (declare-type std/srfi/115#match/eow (@lambda 6 #f))
  (declare-type std/srfi/115#match/nwb (@lambda 6 #f))
  (declare-type std/srfi/115#match/bog (@lambda 6 #f))
  (declare-type std/srfi/115#match/eog (@lambda 6 #f))
  (declare-type std/srfi/115#lookup-char-set (@lambda 2 #f))
  (declare-type std/srfi/115#sre-flatten-ranges (@lambda 1 #f))
  (declare-type std/srfi/115#every (@lambda 2 #f))
  (declare-type std/srfi/115#char-set-sre? (@lambda 1 #f))
  (declare-type std/srfi/115#non-greedy-sre? (@lambda 1 #f))
  (declare-type std/srfi/115#valid-sre? (@lambda 1 #f))
  (declare-type std/srfi/115#sre->char-set (@lambda (1) #f))
  (declare-type std/srfi/115#char-set->sre (@lambda 1 #f))
  (declare-type std/srfi/115#strip-submatches (@lambda 1 #f))
  (declare-type std/srfi/115#sre-expand-reps (@lambda 3 #f))
  (declare-type std/srfi/115#regexp (@lambda (1) #f))
  (declare-type std/srfi/115#regexp-fold (@lambda (4) #f))
  (declare-type std/srfi/115#regexp-extract (@lambda (2) #f))
  (declare-type std/srfi/115#regexp-split (@lambda (2) #f))
  (declare-type std/srfi/115#regexp-partition (@lambda (2) #f))
  (declare-type std/srfi/115#regexp-replace (@lambda (3) #f))
  (declare-type std/srfi/115#regexp-replace-all (@lambda (3) #f))
  (declare-type std/srfi/115#regexp-apply-match (@lambda 5 #f)))
