prelude: :gerbil/compiler/ssxi
package: std

(begin
  (declare-type std/ref#:ref::apply (@lambda (0) #f))
  (declare-type std/ref#:set!::apply (@lambda (0) #f))
  (declare-type std/ref#:ref::<pair>::<fixnum> (@lambda 2 list-ref))
  (declare-type std/ref#:ref::<hash-table>::<t> (@lambda 2 hash-ref))
  (declare-type std/ref#:ref::<u8vector>::<fixnum> (@lambda 2 u8vector-ref))
  (declare-type std/ref#:ref::<u16vector>::<fixnum> (@lambda 2 u16vector-ref))
  (declare-type std/ref#:ref::<s16vector>::<fixnum> (@lambda 2 s16vector-ref))
  (declare-type std/ref#:ref::<u32vector>::<fixnum> (@lambda 2 u32vector-ref))
  (declare-type std/ref#:ref::<s32vector>::<fixnum> (@lambda 2 s32vector-ref))
  (declare-type std/ref#:ref::<u64vector>::<fixnum> (@lambda 2 u64vector-ref))
  (declare-type std/ref#:ref::<s64vector>::<fixnum> (@lambda 2 s64vector-ref))
  (declare-type std/ref#:ref::<f32vector>::<fixnum> (@lambda 2 f32vector-ref))
  (declare-type std/ref#:ref::<f64vector>::<fixnum> (@lambda 2 f64vector-ref))
  (declare-type std/ref#:ref::<string>::<fixnum> (@lambda 2 string-ref))
  (declare-type std/ref#:ref::<vector>::<fixnum> (@lambda 2 vector-ref))
  (declare-type std/ref#:ref::<object>::<symbol> (@lambda 2 slot-ref))
  (declare-type std/ref#:set!::<pair>::<fixnum>::<t> (@lambda 3 list-set!))
  (declare-type std/ref#:set!::<hash-table>::<t>::<t> (@lambda 3 hash-put!))
  (declare-type
   std/ref#:set!::<u8vector>::<fixnum>::<fixnum>
   (@lambda 3 u8vector-set!))
  (declare-type
   std/ref#:set!::<s8vector>::<fixnum>::<fixnum>
   (@lambda 3 s8vector-set!))
  (declare-type
   std/ref#:set!::<u16vector>::<fixnum>::<fixnum>
   (@lambda 3 u16vector-set!))
  (declare-type
   std/ref#:set!::<s16vector>::<fixnum>::<fixnum>
   (@lambda 3 s16vector-set!))
  (declare-type
   std/ref#:set!::<u32vector>::<fixnum>::<integer>
   (@lambda 3 u32vector-set!))
  (declare-type
   std/ref#:set!::<s32vector>::<fixnum>::<integer>
   (@lambda 3 s32vector-set!))
  (declare-type
   std/ref#:set!::<u64vector>::<fixnum>::<integer>
   (@lambda 3 u64vector-set!))
  (declare-type
   std/ref#:set!::<s64vector>::<fixnum>::<integer>
   (@lambda 3 s64vector-set!))
  (declare-type
   std/ref#:set!::<f32vector>::<fixnum>::<flonum>
   (@lambda 3 f32vector-set!))
  (declare-type
   std/ref#:set!::<f64vector>::<fixnum>::<flonum>
   (@lambda 3 f64vector-set!))
  (declare-type
   std/ref#:set!::<string>::<fixnum>::<char>
   (@lambda 3 string-set!))
  (declare-type std/ref#:set!::<vector>::<fixnum>::<t> (@lambda 3 vector-set!))
  (declare-type std/ref#:set!::<object>::<symbol>::<t> (@lambda 3 slot-set!)))
