prelude: :gerbil/compiler/ssxi
package: std

(begin
  (declare-type
   std/coroutine#cort::t
   (@struct-type std/coroutine#cort::t #f 3 #f ((final: . #t))))
  (declare-type std/coroutine#cort? (@struct-pred std/coroutine#cort::t))
  (declare-type std/coroutine#make-cort (@struct-cons std/coroutine#cort::t))
  (declare-type std/coroutine#cort-k (@struct-getf std/coroutine#cort::t 0 #f))
  (declare-type
   std/coroutine#cort-end?
   (@struct-getf std/coroutine#cort::t 1 #f))
  (declare-type
   std/coroutine#cort-res
   (@struct-getf std/coroutine#cort::t 2 #f))
  (declare-type
   std/coroutine#cort-k-set!
   (@struct-setf std/coroutine#cort::t 0 #f))
  (declare-type
   std/coroutine#cort-end?-set!
   (@struct-setf std/coroutine#cort::t 1 #f))
  (declare-type
   std/coroutine#cort-res-set!
   (@struct-setf std/coroutine#cort::t 2 #f))
  (declare-type
   std/coroutine#cothr::t
   (@struct-type std/coroutine#cothr::t #f 4 #f ((final: . #t))))
  (declare-type std/coroutine#cothr? (@struct-pred std/coroutine#cothr::t))
  (declare-type std/coroutine#make-cothr (@struct-cons std/coroutine#cothr::t))
  (declare-type
   std/coroutine#cothr-mx
   (@struct-getf std/coroutine#cothr::t 0 #f))
  (declare-type
   std/coroutine#cothr-cv
   (@struct-getf std/coroutine#cothr::t 1 #f))
  (declare-type
   std/coroutine#cothr-state
   (@struct-getf std/coroutine#cothr::t 2 #f))
  (declare-type
   std/coroutine#cothr-val
   (@struct-getf std/coroutine#cothr::t 3 #f))
  (declare-type
   std/coroutine#cothr-mx-set!
   (@struct-setf std/coroutine#cothr::t 0 #f))
  (declare-type
   std/coroutine#cothr-cv-set!
   (@struct-setf std/coroutine#cothr::t 1 #f))
  (declare-type
   std/coroutine#cothr-state-set!
   (@struct-setf std/coroutine#cothr::t 2 #f))
  (declare-type
   std/coroutine#cothr-val-set!
   (@struct-setf std/coroutine#cothr::t 3 #f))
  (declare-type std/coroutine#coroutine (@lambda (1) #f))
  (declare-type std/coroutine#cothread (@lambda (1) #f))
  (declare-type std/coroutine#cothread? (@lambda 1 #f))
  (declare-type std/coroutine#continue (@lambda (1) #f))
  (declare-type std/coroutine#yield (@lambda (0) #f))
  (declare-type std/coroutine#coroutine-start! (@lambda 2 #f))
  (declare-type std/coroutine#coroutine-continue! (@lambda 2 #f))
  (declare-type std/coroutine#coroutine-yield! (@lambda 2 #f))
  (declare-type std/coroutine#cothread-start! (@lambda 3 #f))
  (declare-type std/coroutine#cothread-stop!__% (@lambda 2 #f))
  (declare-type std/coroutine#cothread-stop!__0 (@lambda 1 #f))
  (declare-type
   std/coroutine#cothread-stop!
   (@case-lambda
    (1 std/coroutine#cothread-stop!__0)
    (2 std/coroutine#cothread-stop!__%)))
  (declare-type std/coroutine#cothread-continue! (@lambda 2 #f))
  (declare-type std/coroutine#cothread-yield! (@lambda 2 #f))
  (declare-type std/coroutine#cothread-yield-values! (@lambda 2 #f))
  (declare-type std/coroutine#cothread-signal! (@lambda 3 #f))
  (declare-type std/coroutine#cothread-wait! (@lambda 1 #f)))
