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

(begin
  (declare-type
   std/misc/channel#channel::t
   (@struct-type std/misc/channel#channel::t #f 5 :init! ((final: . #t))))
  (declare-type
   std/misc/channel#channel?
   (@struct-pred std/misc/channel#channel::t))
  (declare-type
   std/misc/channel#make-channel
   (@struct-cons std/misc/channel#channel::t))
  (declare-type
   std/misc/channel#channel-q
   (@struct-getf std/misc/channel#channel::t 0 #f))
  (declare-type
   std/misc/channel#channel-mx
   (@struct-getf std/misc/channel#channel::t 1 #f))
  (declare-type
   std/misc/channel#channel-cv
   (@struct-getf std/misc/channel#channel::t 2 #f))
  (declare-type
   std/misc/channel#channel-limit
   (@struct-getf std/misc/channel#channel::t 3 #f))
  (declare-type
   std/misc/channel#channel-eof
   (@struct-getf std/misc/channel#channel::t 4 #f))
  (declare-type
   std/misc/channel#channel-q-set!
   (@struct-setf std/misc/channel#channel::t 0 #f))
  (declare-type
   std/misc/channel#channel-mx-set!
   (@struct-setf std/misc/channel#channel::t 1 #f))
  (declare-type
   std/misc/channel#channel-cv-set!
   (@struct-setf std/misc/channel#channel::t 2 #f))
  (declare-type
   std/misc/channel#channel-limit-set!
   (@struct-setf std/misc/channel#channel::t 3 #f))
  (declare-type
   std/misc/channel#channel-eof-set!
   (@struct-setf std/misc/channel#channel::t 4 #f))
  (declare-type
   std/misc/channel#&channel-q
   (@struct-getf std/misc/channel#channel::t 0 #t))
  (declare-type
   std/misc/channel#&channel-mx
   (@struct-getf std/misc/channel#channel::t 1 #t))
  (declare-type
   std/misc/channel#&channel-cv
   (@struct-getf std/misc/channel#channel::t 2 #t))
  (declare-type
   std/misc/channel#&channel-limit
   (@struct-getf std/misc/channel#channel::t 3 #t))
  (declare-type
   std/misc/channel#&channel-eof
   (@struct-getf std/misc/channel#channel::t 4 #t))
  (declare-type
   std/misc/channel#&channel-q-set!
   (@struct-setf std/misc/channel#channel::t 0 #t))
  (declare-type
   std/misc/channel#&channel-mx-set!
   (@struct-setf std/misc/channel#channel::t 1 #t))
  (declare-type
   std/misc/channel#&channel-cv-set!
   (@struct-setf std/misc/channel#channel::t 2 #t))
  (declare-type
   std/misc/channel#&channel-limit-set!
   (@struct-setf std/misc/channel#channel::t 3 #t))
  (declare-type
   std/misc/channel#&channel-eof-set!
   (@struct-setf std/misc/channel#channel::t 4 #t))
  (declare-type std/misc/channel#channel:::init!__% (@lambda 2 #f))
  (declare-type std/misc/channel#channel:::init!__0 (@lambda 1 #f))
  (declare-type
   std/misc/channel#channel:::init!
   (@case-lambda
    (1 std/misc/channel#channel:::init!__0)
    (2 std/misc/channel#channel:::init!__%)))
  (declare-method
   std/misc/channel#channel::t
   :init!
   std/misc/channel#channel:::init!
   #f)
  (declare-type std/misc/channel#channel-put__% (@lambda 3 #f))
  (declare-type std/misc/channel#channel-put__0 (@lambda 2 #f))
  (declare-type
   std/misc/channel#channel-put
   (@case-lambda
    (2 std/misc/channel#channel-put__0)
    (3 std/misc/channel#channel-put__%)))
  (declare-type std/misc/channel#channel-try-put (@lambda 2 #f))
  (declare-type std/misc/channel#channel-sync (@lambda (1) #f))
  (declare-type std/misc/channel#channel-get__% (@lambda 3 #f))
  (declare-type std/misc/channel#channel-get__0 (@lambda 1 #f))
  (declare-type std/misc/channel#channel-get__1 (@lambda 2 #f))
  (declare-type
   std/misc/channel#channel-get
   (@case-lambda
    (1 std/misc/channel#channel-get__0)
    (2 std/misc/channel#channel-get__1)
    (3 std/misc/channel#channel-get__%)))
  (declare-type std/misc/channel#channel-try-get__% (@lambda 2 #f))
  (declare-type std/misc/channel#channel-try-get__0 (@lambda 1 #f))
  (declare-type
   std/misc/channel#channel-try-get
   (@case-lambda
    (1 std/misc/channel#channel-try-get__0)
    (2 std/misc/channel#channel-try-get__%)))
  (declare-type std/misc/channel#channel-close (@lambda 1 #f))
  (declare-type std/misc/channel#channel::destroy (@lambda 1 #f))
  (declare-method
   std/misc/channel#channel::t
   destroy
   std/misc/channel#channel::destroy
   #f)
  (declare-type
   std/misc/channel#channel-closed?
   (@lambda 1 std/misc/channel#channel-eof))
  (declare-type
   std/misc/channel#:iter::channel
   (@lambda 1 std/misc/channel#iter-channel))
  (declare-type std/misc/channel#iter-channel (@lambda 1 #f)))
