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

(begin
  (declare-type
   std/srfi/113#sob
   (@struct-type
    std/srfi/113#sob
    #f
    3
    #f
    ((fields: hash-table comparator multi?))))
  (declare-type std/srfi/113#sob? (@struct-pred std/srfi/113#sob))
  (declare-type
   std/srfi/113#sob-hash-table
   (@struct-getf std/srfi/113#sob 0 #f))
  (declare-type
   std/srfi/113#sob-comparator
   (@struct-getf std/srfi/113#sob 1 #f))
  (declare-type std/srfi/113#sob-multi? (@struct-getf std/srfi/113#sob 2 #f))
  (declare-type std/srfi/113#raw-make-sob (@struct-cons std/srfi/113#sob))
  (declare-type std/srfi/113#set? (@lambda 1 #f))
  (declare-type std/srfi/113#bag? (@lambda 1 #f))
  (declare-type std/srfi/113#check-set (@lambda 1 #f))
  (declare-type std/srfi/113#check-bag (@lambda 1 #f))
  (declare-type std/srfi/113#check-all-sets (@lambda 1 #f))
  (declare-type std/srfi/113#check-all-bags (@lambda 1 #f))
  (declare-type std/srfi/113#sob-check-comparators (@lambda 1 #f))
  (declare-type std/srfi/113#check-same-comparator (@lambda 2 #f))
  (declare-type std/srfi/113#check-element (@lambda 2 #f))
  (declare-type std/srfi/113#make-sob (@lambda 2 #f))
  (declare-type std/srfi/113#sob-copy (@lambda 1 #f))
  (declare-type std/srfi/113#set-copy (@lambda 1 #f))
  (declare-type std/srfi/113#bag-copy (@lambda 1 #f))
  (declare-type std/srfi/113#sob-empty-copy (@lambda 1 #f))
  (declare-type std/srfi/113#set (@lambda (1) #f))
  (declare-type std/srfi/113#bag (@lambda (1) #f))
  (declare-type std/srfi/113#sob-unfold (@lambda 6 #f))
  (declare-type std/srfi/113#set-unfold (@lambda 5 #f))
  (declare-type std/srfi/113#bag-unfold (@lambda 5 #f))
  (declare-type std/srfi/113#sob-contains? (@lambda 2 #f))
  (declare-type std/srfi/113#set-contains? (@lambda 2 #f))
  (declare-type std/srfi/113#bag-contains? (@lambda 2 #f))
  (declare-type std/srfi/113#sob-empty? (@lambda 1 #f))
  (declare-type std/srfi/113#set-empty? (@lambda 1 #f))
  (declare-type std/srfi/113#bag-empty? (@lambda 1 #f))
  (declare-type std/srfi/113#sob-half-disjoint? (@lambda 2 #f))
  (declare-type std/srfi/113#set-disjoint? (@lambda 2 #f))
  (declare-type std/srfi/113#bag-disjoint? (@lambda 2 #f))
  (declare-type std/srfi/113#sob-member (@lambda 3 #f))
  (declare-type std/srfi/113#set-member (@lambda 3 #f))
  (declare-type std/srfi/113#bag-member (@lambda 3 #f))
  (declare-type std/srfi/113#set-element-comparator (@lambda 1 #f))
  (declare-type std/srfi/113#bag-element-comparator (@lambda 1 #f))
  (declare-type std/srfi/113#sob-increment! (@lambda 3 #f))
  (declare-type std/srfi/113#sob-decrement! (@lambda 3 #f))
  (declare-type std/srfi/113#sob-cleanup! (@lambda 1 #f))
  (declare-type std/srfi/113#nonpositive-keys (@lambda 1 #f))
  (declare-type std/srfi/113#bag-increment! (@lambda 3 #f))
  (declare-type std/srfi/113#bag-decrement! (@lambda 3 #f))
  (declare-type std/srfi/113#sob-adjoin-all! (@lambda 2 #f))
  (declare-type std/srfi/113#set-adjoin! (@lambda (1) #f))
  (declare-type std/srfi/113#bag-adjoin! (@lambda (1) #f))
  (declare-type std/srfi/113#set-adjoin (@lambda (1) #f))
  (declare-type std/srfi/113#bag-adjoin (@lambda (1) #f))
  (declare-type std/srfi/113#sob-replace! (@lambda 2 #f))
  (declare-type std/srfi/113#set-replace! (@lambda 2 #f))
  (declare-type std/srfi/113#bag-replace! (@lambda 2 #f))
  (declare-type std/srfi/113#set-replace (@lambda 2 #f))
  (declare-type std/srfi/113#bag-replace (@lambda 2 #f))
  (declare-type std/srfi/113#sob-delete-all! (@lambda 2 #f))
  (declare-type std/srfi/113#set-delete! (@lambda (1) #f))
  (declare-type std/srfi/113#bag-delete! (@lambda (1) #f))
  (declare-type std/srfi/113#set-delete-all! (@lambda 2 #f))
  (declare-type std/srfi/113#bag-delete-all! (@lambda 2 #f))
  (declare-type std/srfi/113#set-delete (@lambda (1) #f))
  (declare-type std/srfi/113#bag-delete (@lambda (1) #f))
  (declare-type std/srfi/113#set-delete-all (@lambda 2 #f))
  (declare-type std/srfi/113#bag-delete-all (@lambda 2 #f))
  (declare-type std/srfi/113#sob-search! (@lambda 4 #f))
  (declare-type std/srfi/113#set-search! (@lambda 4 #f))
  (declare-type std/srfi/113#bag-search! (@lambda 4 #f))
  (declare-type std/srfi/113#sob-size (@lambda 1 #f))
  (declare-type std/srfi/113#set-size (@lambda 1 #f))
  (declare-type std/srfi/113#bag-size (@lambda 1 #f))
  (declare-type std/srfi/113#sob-find (@lambda 3 #f))
  (declare-type std/srfi/113#set-find (@lambda 3 #f))
  (declare-type std/srfi/113#bag-find (@lambda 3 #f))
  (declare-type std/srfi/113#sob-count (@lambda 2 #f))
  (declare-type std/srfi/113#set-count (@lambda 2 #f))
  (declare-type std/srfi/113#bag-count (@lambda 2 #f))
  (declare-type std/srfi/113#sob-any? (@lambda 2 #f))
  (declare-type std/srfi/113#set-any? (@lambda 2 #f))
  (declare-type std/srfi/113#bag-any? (@lambda 2 #f))
  (declare-type std/srfi/113#sob-every? (@lambda 2 #f))
  (declare-type std/srfi/113#set-every? (@lambda 2 #f))
  (declare-type std/srfi/113#bag-every? (@lambda 2 #f))
  (declare-type std/srfi/113#do-n-times (@lambda 2 #f))
  (declare-type std/srfi/113#sob-for-each (@lambda 2 #f))
  (declare-type std/srfi/113#set-for-each (@lambda 2 #f))
  (declare-type std/srfi/113#bag-for-each (@lambda 2 #f))
  (declare-type std/srfi/113#sob-map (@lambda 3 #f))
  (declare-type std/srfi/113#set-map (@lambda 3 #f))
  (declare-type std/srfi/113#bag-map (@lambda 3 #f))
  (declare-type std/srfi/113#sob-fold (@lambda 3 #f))
  (declare-type std/srfi/113#set-fold (@lambda 3 #f))
  (declare-type std/srfi/113#bag-fold (@lambda 3 #f))
  (declare-type std/srfi/113#sob-filter (@lambda 2 #f))
  (declare-type std/srfi/113#set-filter (@lambda 2 #f))
  (declare-type std/srfi/113#bag-filter (@lambda 2 #f))
  (declare-type std/srfi/113#set-remove (@lambda 2 #f))
  (declare-type std/srfi/113#bag-remove (@lambda 2 #f))
  (declare-type std/srfi/113#sob-filter! (@lambda 2 #f))
  (declare-type std/srfi/113#set-filter! (@lambda 2 #f))
  (declare-type std/srfi/113#bag-filter! (@lambda 2 #f))
  (declare-type std/srfi/113#set-remove! (@lambda 2 #f))
  (declare-type std/srfi/113#bag-remove! (@lambda 2 #f))
  (declare-type std/srfi/113#sob-partition (@lambda 2 #f))
  (declare-type std/srfi/113#set-partition (@lambda 2 #f))
  (declare-type std/srfi/113#bag-partition (@lambda 2 #f))
  (declare-type std/srfi/113#sob-partition! (@lambda 2 #f))
  (declare-type std/srfi/113#set-partition! (@lambda 2 #f))
  (declare-type std/srfi/113#bag-partition! (@lambda 2 #f))
  (declare-type std/srfi/113#sob->list (@lambda 1 #f))
  (declare-type std/srfi/113#set->list (@lambda 1 #f))
  (declare-type std/srfi/113#bag->list (@lambda 1 #f))
  (declare-type std/srfi/113#list->sob! (@lambda 2 #f))
  (declare-type std/srfi/113#list->set (@lambda 2 #f))
  (declare-type std/srfi/113#list->bag (@lambda 2 #f))
  (declare-type std/srfi/113#list->set! (@lambda 2 #f))
  (declare-type std/srfi/113#list->bag! (@lambda 2 #f))
  (declare-type std/srfi/113#sob=?__0 (@lambda 1 #f))
  (declare-type std/srfi/113#sob=?__2 (@lambda (2) #f))
  (declare-type
   std/srfi/113#sob=?
   (@case-lambda
    (1 std/srfi/113#sob=?__0)
    (2 std/srfi/113#dyadic-sob=?)
    ((2) std/srfi/113#sob=?__2)))
  (declare-type std/srfi/113#set=? (@lambda (0) #f))
  (declare-type std/srfi/113#bag=? (@lambda (0) #f))
  (declare-type std/srfi/113#dyadic-sob=? (@lambda 2 #f))
  (declare-type std/srfi/113#sob<=?__0 (@lambda 1 #f))
  (declare-type std/srfi/113#sob<=?__2 (@lambda (2) #f))
  (declare-type
   std/srfi/113#sob<=?
   (@case-lambda
    (1 std/srfi/113#sob<=?__0)
    (2 std/srfi/113#dyadic-sob<=?)
    ((2) std/srfi/113#sob<=?__2)))
  (declare-type std/srfi/113#set<=? (@lambda (0) #f))
  (declare-type std/srfi/113#bag<=? (@lambda (0) #f))
  (declare-type std/srfi/113#dyadic-sob<=? (@lambda 2 #f))
  (declare-type std/srfi/113#sob<?__0 (@lambda 1 #f))
  (declare-type std/srfi/113#sob<?__2 (@lambda (2) #f))
  (declare-type
   std/srfi/113#sob<?
   (@case-lambda
    (1 std/srfi/113#sob<?__0)
    (2 std/srfi/113#dyadic-sob<?)
    ((2) std/srfi/113#sob<?__2)))
  (declare-type std/srfi/113#set<? (@lambda (0) #f))
  (declare-type std/srfi/113#bag<? (@lambda (0) #f))
  (declare-type std/srfi/113#dyadic-sob<? (@lambda 2 #f))
  (declare-type std/srfi/113#sob>?__0 (@lambda 1 #f))
  (declare-type std/srfi/113#sob>?__2 (@lambda (2) #f))
  (declare-type
   std/srfi/113#sob>?
   (@case-lambda
    (1 std/srfi/113#sob>?__0)
    (2 std/srfi/113#dyadic-sob>?)
    ((2) std/srfi/113#sob>?__2)))
  (declare-type std/srfi/113#set>? (@lambda (0) #f))
  (declare-type std/srfi/113#bag>? (@lambda (0) #f))
  (declare-type std/srfi/113#dyadic-sob>? (@lambda 2 #f))
  (declare-type std/srfi/113#sob>=?__0 (@lambda 1 #f))
  (declare-type std/srfi/113#sob>=?__2 (@lambda (2) #f))
  (declare-type
   std/srfi/113#sob>=?
   (@case-lambda
    (1 std/srfi/113#sob>=?__0)
    (2 std/srfi/113#dyadic-sob>=?)
    ((2) std/srfi/113#sob>=?__2)))
  (declare-type std/srfi/113#set>=? (@lambda (0) #f))
  (declare-type std/srfi/113#bag>=? (@lambda (0) #f))
  (declare-type std/srfi/113#dyadic-sob>=? (@lambda 2 #f))
  (declare-type std/srfi/113#max-one (@lambda 2 #f))
  (declare-type std/srfi/113#sob-union (@lambda (1) #f))
  (declare-type std/srfi/113#dyadic-sob-union! (@lambda 3 #f))
  (declare-type std/srfi/113#set-union (@lambda (0) #f))
  (declare-type std/srfi/113#bag-union (@lambda (0) #f))
  (declare-type std/srfi/113#sob-union! (@lambda (1) #f))
  (declare-type std/srfi/113#set-union! (@lambda (0) #f))
  (declare-type std/srfi/113#bag-union! (@lambda (0) #f))
  (declare-type std/srfi/113#sob-intersection (@lambda (1) #f))
  (declare-type std/srfi/113#dyadic-sob-intersection! (@lambda 3 #f))
  (declare-type std/srfi/113#set-intersection (@lambda (0) #f))
  (declare-type std/srfi/113#bag-intersection (@lambda (0) #f))
  (declare-type std/srfi/113#sob-intersection! (@lambda (1) #f))
  (declare-type std/srfi/113#set-intersection! (@lambda (0) #f))
  (declare-type std/srfi/113#bag-intersection! (@lambda (0) #f))
  (declare-type std/srfi/113#sob-difference (@lambda (1) #f))
  (declare-type std/srfi/113#dyadic-sob-difference! (@lambda 3 #f))
  (declare-type std/srfi/113#set-difference (@lambda (0) #f))
  (declare-type std/srfi/113#bag-difference (@lambda (0) #f))
  (declare-type std/srfi/113#sob-difference! (@lambda (1) #f))
  (declare-type std/srfi/113#set-difference! (@lambda (0) #f))
  (declare-type std/srfi/113#bag-difference! (@lambda (0) #f))
  (declare-type std/srfi/113#sob-sum (@lambda (1) #f))
  (declare-type std/srfi/113#dyadic-sob-sum! (@lambda 3 #f))
  (declare-type std/srfi/113#bag-sum (@lambda (0) #f))
  (declare-type std/srfi/113#sob-sum! (@lambda (1) #f))
  (declare-type std/srfi/113#bag-sum! (@lambda (0) #f))
  (declare-type std/srfi/113#sob-xor! (@lambda 3 #f))
  (declare-type std/srfi/113#set-xor (@lambda 2 #f))
  (declare-type std/srfi/113#bag-xor (@lambda 2 #f))
  (declare-type std/srfi/113#set-xor! (@lambda 2 #f))
  (declare-type std/srfi/113#bag-xor! (@lambda 2 #f))
  (declare-type std/srfi/113#sob-product! (@lambda 3 #f))
  (declare-type std/srfi/113#valid-n (@lambda 1 #f))
  (declare-type std/srfi/113#bag-product (@lambda 2 #f))
  (declare-type std/srfi/113#bag-product! (@lambda 2 #f))
  (declare-type std/srfi/113#bag-unique-size (@lambda 1 #f))
  (declare-type std/srfi/113#bag-element-count (@lambda 2 #f))
  (declare-type std/srfi/113#bag-for-each-unique (@lambda 2 #f))
  (declare-type std/srfi/113#bag-fold-unique (@lambda 3 #f))
  (declare-type std/srfi/113#bag->set (@lambda 1 #f))
  (declare-type std/srfi/113#set->bag (@lambda 1 #f))
  (declare-type std/srfi/113#set->bag! (@lambda 2 #f))
  (declare-type std/srfi/113#bag->alist (@lambda 1 #f))
  (declare-type std/srfi/113#alist->bag (@lambda 2 #f))
  (declare-type std/srfi/113#sob-hash (@lambda 1 #f))
  (declare-type std/srfi/113#sob-print (@lambda 2 #f)))
