prelude: :gerbil/compiler/ssxi
package: std

(begin
  (declare-type std/event#wait__% (@lambda 2 #f))
  (declare-type std/event#wait__0 (@lambda 1 #f))
  (declare-type
   std/event#wait
   (@case-lambda (1 std/event#wait__0) (2 std/event#wait__%)))
  (declare-type std/event#select__% (@lambda 2 #f))
  (declare-type std/event#select__0 (@lambda 1 #f))
  (declare-type
   std/event#select
   (@case-lambda (1 std/event#select__0) (2 std/event#select__%)))
  (declare-type
   std/event#selection::t
   (@struct-type std/event#selection::t #f 3 #f ((final: . #t))))
  (declare-type std/event#selection? (@struct-pred std/event#selection::t))
  (declare-type std/event#make-selection (@struct-cons std/event#selection::t))
  (declare-type
   std/event#selection-e
   (@struct-getf std/event#selection::t 0 #f))
  (declare-type
   std/event#selection-mx
   (@struct-getf std/event#selection::t 1 #f))
  (declare-type
   std/event#selection-cv
   (@struct-getf std/event#selection::t 2 #f))
  (declare-type
   std/event#selection-e-set!
   (@struct-setf std/event#selection::t 0 #f))
  (declare-type
   std/event#selection-mx-set!
   (@struct-setf std/event#selection::t 1 #f))
  (declare-type
   std/event#selection-cv-set!
   (@struct-setf std/event#selection::t 2 #f))
  (declare-type
   std/event#selector::t
   (@struct-type std/event#selector::t #f 3 #f ((final: . #t))))
  (declare-type std/event#selector? (@struct-pred std/event#selector::t))
  (declare-type std/event#make-selector (@struct-cons std/event#selector::t))
  (declare-type
   std/event#selector-sel
   (@struct-getf std/event#selector::t 0 #f))
  (declare-type
   std/event#selector-wait
   (@struct-getf std/event#selector::t 1 #f))
  (declare-type
   std/event#selector-abort
   (@struct-getf std/event#selector::t 2 #f))
  (declare-type
   std/event#selector-sel-set!
   (@struct-setf std/event#selector::t 0 #f))
  (declare-type
   std/event#selector-wait-set!
   (@struct-setf std/event#selector::t 1 #f))
  (declare-type
   std/event#selector-abort-set!
   (@struct-setf std/event#selector::t 2 #f))
  (declare-type std/event#do-select (@lambda 2 #f))
  (declare-type std/event#select1 (@lambda 2 #f))
  (declare-type std/event#wrap-selector (@lambda 1 #f))
  (declare-type std/event#selector-wait-e (@lambda 1 #f))
  (declare-type std/event#selector-wait-thread (@lambda 2 #f))
  (declare-type std/event#selector-wait-condvar (@lambda 2 #f))
  (declare-type std/event#selector-abort-condvar (@lambda 1 #f))
  (declare-type std/event#selector-wait-io-condvar (@lambda 2 #f))
  (declare-type std/event#maybe-timeout? (@lambda 1 #f))
  (declare-type std/event#timeout->abs-timeout (@lambda 1 #f))
  (declare-type std/event#io-condition-variable? (@lambda 1 #f))
  (declare-type
   std/event#event::t
   (@struct-type std/event#event::t #f 4 :init! ((final: . #t))))
  (declare-type std/event#event? (@struct-pred std/event#event::t))
  (declare-type std/event#make-event (@struct-cons std/event#event::t))
  (declare-type std/event#event-e (@struct-getf std/event#event::t 0 #f))
  (declare-type std/event#event-poll (@struct-getf std/event#event::t 1 #f))
  (declare-type std/event#event-ready (@struct-getf std/event#event::t 2 #f))
  (declare-type std/event#event-abort (@struct-getf std/event#event::t 3 #f))
  (declare-type std/event#event-e-set! (@struct-setf std/event#event::t 0 #f))
  (declare-type
   std/event#event-poll-set!
   (@struct-setf std/event#event::t 1 #f))
  (declare-type
   std/event#event-ready-set!
   (@struct-setf std/event#event::t 2 #f))
  (declare-type
   std/event#event-abort-set!
   (@struct-setf std/event#event::t 3 #f))
  (declare-type
   std/event#event-handler::t
   (@struct-type std/event#event-handler::t #f 2 #f ((final: . #t))))
  (declare-type
   std/event#event-handler?
   (@struct-pred std/event#event-handler::t))
  (declare-type
   std/event#make-event-handler
   (@struct-cons std/event#event-handler::t))
  (declare-type
   std/event#event-handler-e
   (@struct-getf std/event#event-handler::t 0 #f))
  (declare-type
   std/event#event-handler-K
   (@struct-getf std/event#event-handler::t 1 #f))
  (declare-type
   std/event#event-handler-e-set!
   (@struct-setf std/event#event-handler::t 0 #f))
  (declare-type
   std/event#event-handler-K-set!
   (@struct-setf std/event#event-handler::t 1 #f))
  (declare-type
   std/event#event-set::t
   (@struct-type std/event#event-set::t #f 1 #f ((final: . #t))))
  (declare-type std/event#event-set? (@struct-pred std/event#event-set::t))
  (declare-type std/event#make-event-set (@struct-cons std/event#event-set::t))
  (declare-type
   std/event#event-set-e
   (@struct-getf std/event#event-set::t 0 #f))
  (declare-type
   std/event#event-set-e-set!
   (@struct-setf std/event#event-set::t 0 #f))
  (declare-type std/event#event:::init!__% (@lambda 5 struct-instance-init!))
  (declare-type std/event#event:::init!__0 (@lambda 4 #f))
  (declare-type
   std/event#event:::init!
   (@case-lambda
    (4 std/event#event:::init!__0)
    (5 std/event#event:::init!__%)))
  (declare-method std/event#event::t :init! std/event#event:::init! #f)
  (declare-type std/event#sync-object? (@lambda 1 #f))
  (declare-type std/event#wrap-evt (@lambda 1 #f))
  (declare-type std/event#handle-evt (@lambda 2 #f))
  (declare-type std/event#choice-evt (@lambda (0) #f))
  (declare-type std/event#sync (@lambda (0) #f))
  (declare-type std/event#sync-selector? (@lambda 1 #f))
  (declare-type std/event#event-abort-sync-selector (@lambda 1 #f))
  (declare-type std/event#input-port-evt (@lambda 1 #f))
  (declare-type std/event#make-u8vector-port-evt (@lambda 1 #f))
  (declare-type std/event#make-string-port-evt (@lambda 1 #f))
  (declare-type std/event#make-vector-port-evt (@lambda 1 #f))
  (declare-type std/event#user-port-poll (@lambda 4 #f))
  (declare-type std/event#input-port-rbuf-fill! (@lambda 2 #f))
  (declare-type std/event#make-device-port-evt (@lambda 1 #f))
  (declare-type std/event#make-tcp-server-port-evt (@lambda 1 #f))
  (declare-type std/event#make-raw-device-port-evt (@lambda 1 #f)))
