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

(begin
  (declare-type std/generic/dispatch#type-of (@lambda 1 #f))
  (declare-type std/generic/dispatch#linear-type-of (@lambda 1 #f))
  (declare-type std/generic/dispatch#type-linearize-class (@lambda 1 #f))
  (declare-type std/generic/dispatch#type-linearize-class-type (@lambda 1 #f))
  (declare-type std/generic/dispatch#type-linearize-struct-type (@lambda 1 #f))
  (declare-type
   std/generic/dispatch#type-linearize-record-type__%
   (@lambda 2 #f))
  (declare-type
   std/generic/dispatch#type-linearize-record-type__0
   (@lambda 1 #f))
  (declare-type
   std/generic/dispatch#type-linearize-record-type
   (@case-lambda
    (1 std/generic/dispatch#type-linearize-record-type__0)
    (2 std/generic/dispatch#type-linearize-record-type__%)))
  (declare-type
   std/generic/dispatch#generic::t
   (@struct-type std/generic/dispatch#generic::t #f 4 :init! ((final: . #t))))
  (declare-type
   std/generic/dispatch#generic?
   (@struct-pred std/generic/dispatch#generic::t))
  (declare-type
   std/generic/dispatch#make-generic
   (@struct-cons std/generic/dispatch#generic::t))
  (declare-type
   std/generic/dispatch#generic-id
   (@struct-getf std/generic/dispatch#generic::t 0 #f))
  (declare-type
   std/generic/dispatch#generic-tabs
   (@struct-getf std/generic/dispatch#generic::t 1 #f))
  (declare-type
   std/generic/dispatch#generic-default
   (@struct-getf std/generic/dispatch#generic::t 2 #f))
  (declare-type
   std/generic/dispatch#generic-mx
   (@struct-getf std/generic/dispatch#generic::t 3 #f))
  (declare-type
   std/generic/dispatch#generic-id-set!
   (@struct-setf std/generic/dispatch#generic::t 0 #f))
  (declare-type
   std/generic/dispatch#generic-tabs-set!
   (@struct-setf std/generic/dispatch#generic::t 1 #f))
  (declare-type
   std/generic/dispatch#generic-default-set!
   (@struct-setf std/generic/dispatch#generic::t 2 #f))
  (declare-type
   std/generic/dispatch#generic-mx-set!
   (@struct-setf std/generic/dispatch#generic::t 3 #f))
  (declare-type
   std/generic/dispatch#&generic-id
   (@struct-getf std/generic/dispatch#generic::t 0 #t))
  (declare-type
   std/generic/dispatch#&generic-tabs
   (@struct-getf std/generic/dispatch#generic::t 1 #t))
  (declare-type
   std/generic/dispatch#&generic-default
   (@struct-getf std/generic/dispatch#generic::t 2 #t))
  (declare-type
   std/generic/dispatch#&generic-mx
   (@struct-getf std/generic/dispatch#generic::t 3 #t))
  (declare-type
   std/generic/dispatch#&generic-id-set!
   (@struct-setf std/generic/dispatch#generic::t 0 #t))
  (declare-type
   std/generic/dispatch#&generic-tabs-set!
   (@struct-setf std/generic/dispatch#generic::t 1 #t))
  (declare-type
   std/generic/dispatch#&generic-default-set!
   (@struct-setf std/generic/dispatch#generic::t 2 #t))
  (declare-type
   std/generic/dispatch#&generic-mx-set!
   (@struct-setf std/generic/dispatch#generic::t 3 #t))
  (declare-type std/generic/dispatch#generic:::init!__% (@lambda 3 #f))
  (declare-type std/generic/dispatch#generic:::init!__0 (@lambda 2 #f))
  (declare-type
   std/generic/dispatch#generic:::init!
   (@case-lambda
    (2 std/generic/dispatch#generic:::init!__0)
    (3 std/generic/dispatch#generic:::init!__%)))
  (declare-method
   std/generic/dispatch#generic::t
   :init!
   std/generic/dispatch#generic:::init!
   #f)
  (declare-type
   std/generic/dispatch#generic-table::t
   (@struct-type
    std/generic/dispatch#generic-table::t
    #f
    3
    :init!
    ((final: . #t))))
  (declare-type
   std/generic/dispatch#generic-table?
   (@struct-pred std/generic/dispatch#generic-table::t))
  (declare-type
   std/generic/dispatch#make-generic-table
   (@struct-cons std/generic/dispatch#generic-table::t))
  (declare-type
   std/generic/dispatch#generic-table-methods
   (@struct-getf std/generic/dispatch#generic-table::t 0 #f))
  (declare-type
   std/generic/dispatch#generic-table-cache
   (@struct-getf std/generic/dispatch#generic-table::t 1 #f))
  (declare-type
   std/generic/dispatch#generic-table-mx
   (@struct-getf std/generic/dispatch#generic-table::t 2 #f))
  (declare-type
   std/generic/dispatch#generic-table-methods-set!
   (@struct-setf std/generic/dispatch#generic-table::t 0 #f))
  (declare-type
   std/generic/dispatch#generic-table-cache-set!
   (@struct-setf std/generic/dispatch#generic-table::t 1 #f))
  (declare-type
   std/generic/dispatch#generic-table-mx-set!
   (@struct-setf std/generic/dispatch#generic-table::t 2 #f))
  (declare-type
   std/generic/dispatch#&generic-table-methods
   (@struct-getf std/generic/dispatch#generic-table::t 0 #t))
  (declare-type
   std/generic/dispatch#&generic-table-cache
   (@struct-getf std/generic/dispatch#generic-table::t 1 #t))
  (declare-type
   std/generic/dispatch#&generic-table-mx
   (@struct-getf std/generic/dispatch#generic-table::t 2 #t))
  (declare-type
   std/generic/dispatch#&generic-table-methods-set!
   (@struct-setf std/generic/dispatch#generic-table::t 0 #t))
  (declare-type
   std/generic/dispatch#&generic-table-cache-set!
   (@struct-setf std/generic/dispatch#generic-table::t 1 #t))
  (declare-type
   std/generic/dispatch#&generic-table-mx-set!
   (@struct-setf std/generic/dispatch#generic-table::t 2 #t))
  (declare-type std/generic/dispatch#generic-table:::init! (@lambda 1 #f))
  (declare-method
   std/generic/dispatch#generic-table::t
   :init!
   std/generic/dispatch#generic-table:::init!
   #f)
  (declare-type std/generic/dispatch#generic-bind! (@lambda 3 #f))
  (declare-type std/generic/dispatch#generic-bind-method! (@lambda 3 #f))
  (declare-type std/generic/dispatch#generic-add-method (@lambda 3 #f))
  (declare-type std/generic/dispatch#generic-dispatch-before? (@lambda 2 #f))
  (declare-type std/generic/dispatch#generic-dispatch-type<? (@lambda 2 #f))
  (declare-type std/generic/dispatch#generic-dispatch (@lambda (1) #f))
  (declare-type std/generic/dispatch#generic-dispatch-method (@lambda 3 #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-method-ref
   (@lambda 3 #f))
  (declare-type std/generic/dispatch#generic-dispatch1 (@lambda 2 #f))
  (declare-type std/generic/dispatch#generic-dispatch-method1 (@lambda 3 #f))
  (declare-type std/generic/dispatch#generic-dispatch2 (@lambda 3 #f))
  (declare-type std/generic/dispatch#generic-dispatch-method2 (@lambda 4 #f))
  (declare-type std/generic/dispatch#generic-dispatch3 (@lambda 4 #f))
  (declare-type std/generic/dispatch#generic-dispatch-method3 (@lambda 5 #f))
  (declare-type std/generic/dispatch#generic-dispatch4 (@lambda 5 #f))
  (declare-type std/generic/dispatch#generic-dispatch-method4 (@lambda 6 #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-find-method
   (@lambda 2 #f))
  (declare-type std/generic/dispatch#generic-dispatch-match? (@lambda 2 #f))
  (declare-type std/generic/dispatch#generic-dispatch-next (@lambda (2) #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-cache-lookup
   (@lambda 2 #f))
  (declare-type std/generic/dispatch#cache-hash1 (@lambda 4 #f))
  (declare-type std/generic/dispatch#cache-hash2 (@lambda 5 #f))
  (declare-type std/generic/dispatch#cache-hash3 (@lambda 6 #f))
  (declare-type std/generic/dispatch#cache-hash4 (@lambda 7 #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-cache-lookup1
   (@lambda 2 #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-cache-lookup2
   (@lambda 3 #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-cache-lookup3
   (@lambda 4 #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-cache-lookup4
   (@lambda 5 #f))
  (declare-type std/generic/dispatch#generic-dispatch-cache! (@lambda 3 #f))
  (declare-type
   std/generic/dispatch#generic-dispatch-cache-rehash
   (@lambda 1 #f)))
