prelude: :gerbil/compiler/ssxi
package: std

(begin
  (declare-type std/ref#:ref::apply__0 (@lambda 1 #f))
  (declare-type std/ref#:ref::apply__1 (@lambda 2 #f))
  (declare-type std/ref#:ref::apply__2 (@lambda 3 #f))
  (declare-type std/ref#:ref::apply__3 (@lambda 4 #f))
  (declare-type std/ref#:ref::apply__4 (@lambda (0) #f))
  (declare-type
   std/ref#:ref::apply
   (@case-lambda
    (1 std/ref#:ref::apply__0)
    (2 std/ref#:ref::apply__1)
    (3 std/ref#:ref::apply__2)
    (4 std/ref#:ref::apply__3)
    ((0) std/ref#:ref::apply__4)))
  (declare-type std/ref#:set!::apply__0 (@lambda 1 #f))
  (declare-type std/ref#:set!::apply__1 (@lambda 2 #f))
  (declare-type std/ref#:set!::apply__2 (@lambda 3 #f))
  (declare-type std/ref#:set!::apply__3 (@lambda 4 #f))
  (declare-type std/ref#:set!::apply__4 (@lambda (0) #f))
  (declare-type
   std/ref#:set!::apply
   (@case-lambda
    (1 std/ref#:set!::apply__0)
    (2 std/ref#:set!::apply__1)
    (3 std/ref#:set!::apply__2)
    (4 std/ref#:set!::apply__3)
    ((0) std/ref#:set!::apply__4)))
  (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!)))
