25180
#hash(((def ((quote #%foreign) ffi-lib?)) . ((0 . 3))) ((def ((lib "ffi/unsafe.rkt") _intptr)) . ((2474 . 16))) ((form ((lib "ffi/unsafe.rkt") _bytes)) . ((6003 . 3))) ((def ((lib "ffi/unsafe.rkt") _string)) . ((3235 . 2))) ((def ((lib "ffi/unsafe/com.rkt") _GUID-pointer)) . ((34948 . 2))) ((def ((quote #%foreign) ffi-callback)) . ((37729 . 13))) ((def ((lib "ffi/unsafe.rkt") union-ref)) . ((7712 . 4))) ((def ((lib "ffi/vector.rkt") f32vector)) . ((19008 . 22))) ((def ((lib "ffi/vector.rkt") u8vector-set!)) . ((13134 . 22))) ((def ((lib "ffi/unsafe/objc.rkt") _Protocol)) . ((25161 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-make-event-executor)) . ((32217 . 2))) ((def ((lib "ffi/file.rkt") _file/guard)) . ((35674 . 4))) ((form ((lib "ffi/unsafe/objc.rkt") selector)) . ((26652 . 2))) ((form ((lib "ffi/unsafe/define.rkt") provide-protected)) . ((23042 . 2))) ((def ((lib "ffi/vector.rkt") u16vector->cpointer)) . ((15313 . 22))) ((def ((lib "ffi/vector.rkt") s32vector->list)) . ((16052 . 22))) ((def ((lib "ffi/unsafe/com.rkt") com-methods)) . ((30488 . 3))) ((def ((lib "ffi/unsafe/atomic.rkt") in-atomic-mode?)) . ((24605 . 2))) ((def ((lib "ffi/unsafe/com.rkt") SysFreeString)) . ((35075 . 3))) ((form ((lib "ffi/unsafe.rkt") _fun)) . ((4740 . 23))) ((def ((lib "ffi/vector.rkt") make-s8vector)) . ((13854 . 22))) ((def ((lib "ffi/vector.rkt") make-u64vector)) . ((18269 . 22))) ((def ((lib "ffi/unsafe.rkt") _string/eof)) . ((3416 . 2))) ((def ((quote #%foreign) ctype-c->scheme)) . ((37117 . 7))) ((form ((lib "ffi/unsafe/nsalloc.rkt") with-autorelease)) . ((28911 . 2))) ((def ((lib "ffi/unsafe/com.rkt") type-described?)) . ((33060 . 3))) ((def ((lib "ffi/unsafe/com.rkt") _LCID)) . ((35005 . 2))) ((form ((lib "ffi/unsafe.rkt") define-cpointer-type)) . ((22187 . 5))) ((def ((lib "ffi/vector.rkt") u16vector-set!)) . ((15313 . 22))) ((def ((lib "ffi/vector.rkt") s16vector-ref)) . ((14574 . 22))) ((def ((lib "ffi/unsafe.rkt") _string*/utf-8)) . ((3148 . 4))) ((def ((lib "ffi/unsafe/define.rkt") make-not-available)) . ((22952 . 3))) ((def ((quote #%foreign) _uint64)) . ((2129 . 13))) ((def ((lib "ffi/unsafe.rkt") _array/list)) . ((7291 . 4))) ((def ((lib "ffi/unsafe.rkt") _sint64)) . ((2129 . 13))) ((def ((lib "ffi/unsafe.rkt") register-finalizer)) . ((12847 . 4))) ((def ((lib "ffi/unsafe/com.rkt") string->guid)) . ((29096 . 3))) ((def ((lib "ffi/unsafe/alloc.rkt") retainer)) . ((23475 . 5))) ((def ((lib "ffi/unsafe/com.rkt") com-set-property!)) . ((31739 . 5))) ((def ((quote #%foreign) _gcpointer)) . ((3471 . 2))) ((def ((quote #%foreign) _pointer)) . ((3445 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-get-properties)) . ((30963 . 3))) ((def ((lib "ffi/unsafe.rkt") _ulong)) . ((2474 . 16))) ((form ((lib "ffi/unsafe/com.rkt") _mfun)) . ((34691 . 3))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector->list)) . ((21238 . 3))) ((def ((lib "ffi/vector.rkt") s16vector-set!)) . ((14574 . 22))) ((def ((quote #%foreign) end-stubborn-change)) . ((12637 . 3))) ((def ((lib "ffi/unsafe.rkt") _racket)) . ((3499 . 2))) ((def ((lib "ffi/vector.rkt") u32vector->list)) . ((16791 . 22))) ((def ((lib "ffi/unsafe.rkt") _word)) . ((2415 . 4))) ((def ((lib "ffi/unsafe/objc.rkt") objc_allocateClassPair)) . ((26974 . 5))) ((def ((lib "ffi/vector.rkt") u64vector?)) . ((18269 . 22))) ((form ((lib "ffi/vector.rkt") _u8vector)) . ((13808 . 3))) ((def ((lib "ffi/unsafe.rkt") _uintptr)) . ((2474 . 16))) ((def ((lib "ffi/unsafe/com.rkt") type-described-description)) . ((33299 . 3))) ((def ((lib "ffi/vector.rkt") f64vector->cpointer)) . ((19747 . 22))) ((def ((lib "ffi/unsafe/com.rkt") com-type=?)) . ((30401 . 4))) ((def ((quote #%foreign) _int32)) . ((2129 . 13))) ((def ((lib "ffi/vector.rkt") list->s16vector)) . ((14574 . 22))) ((def ((lib "ffi/unsafe/com.rkt") com-get-active-object)) . ((29883 . 3))) ((def ((lib "ffi/vector.rkt") make-f64vector)) . ((19747 . 22))) ((def ((lib "ffi/vector.rkt") f32vector->list)) . ((19008 . 22))) ((def ((lib "ffi/vector.rkt") s64vector->cpointer)) . ((17530 . 22))) ((def ((lib "ffi/vector.rkt") f64vector-set!)) . ((19747 . 22))) ((def ((lib "ffi/unsafe/try-atomic.rkt") call-as-nonatomic-retry-point)) . ((24647 . 3))) ((def ((lib "ffi/unsafe/com.rkt") type-description?)) . ((32997 . 3))) ((def ((lib "ffi/vector.rkt") u64vector)) . ((18269 . 22))) ((def ((quote #%foreign) memmove)) . ((9825 . 24))) ((def ((quote #%foreign) _string/ucs-4)) . ((2953 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-set-properties)) . ((31400 . 3))) ((def ((lib "ffi/vector.rkt") s8vector-set!)) . ((13854 . 22))) ((def ((quote #%foreign) set-cpointer-tag!)) . ((11792 . 4))) ((def ((quote #%foreign) memset)) . ((11361 . 12))) ((def ((lib "ffi/vector.rkt") u32vector->cpointer)) . ((16791 . 22))) ((def ((lib "ffi/unsafe/objc.rkt") _Class)) . ((25137 . 2))) ((def ((quote #%foreign) ptr-equal?)) . ((8340 . 4))) ((def ((quote #%foreign) ffi-obj-lib)) . ((36955 . 7))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector)) . ((20651 . 4))) ((def ((lib "ffi/unsafe/com.rkt") IID_IUnknown)) . ((35267 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-create-instance)) . ((29626 . 4))) ((def ((lib "ffi/unsafe/com.rkt") QueryInterface)) . ((33910 . 7))) ((def ((lib "ffi/vector.rkt") s32vector-ref)) . ((16052 . 22))) ((def ((quote #%foreign) _fixnum)) . ((2754 . 3))) ((def ((quote #%foreign) make-cstruct-type)) . ((6039 . 5))) ((def ((lib "ffi/unsafe/com.rkt") guid->string)) . ((29279 . 3))) ((def ((lib "ffi/vector.rkt") u8vector->cpointer)) . ((13134 . 22))) ((def ((lib "ffi/vector.rkt") s64vector?)) . ((17530 . 22))) ((def ((lib "ffi/unsafe/com.rkt") com-get-property-type)) . ((31075 . 6))) ((def ((lib "ffi/vector.rkt") u64vector-ref)) . ((18269 . 22))) ((def ((lib "ffi/unsafe.rkt") array-ptr)) . ((7157 . 3))) ((form ((lib "ffi/unsafe/objc.rkt") import-protocol)) . ((25637 . 2))) ((form ((lib "ffi/vector.rkt") _s8vector)) . ((14528 . 3))) ((def ((lib "ffi/winapi.rkt") win64?)) . ((35886 . 2))) ((def ((lib "ffi/vector.rkt") list->f32vector)) . ((19008 . 22))) ((def ((lib "ffi/unsafe.rkt") get-ffi-obj)) . ((561 . 6))) ((def ((lib "ffi/unsafe.rkt") _long)) . ((2474 . 16))) ((def ((lib "ffi/unsafe.rkt") _string/locale)) . ((3064 . 4))) ((def ((lib "ffi/unsafe.rkt") function-ptr)) . ((5527 . 4))) ((def ((quote #%foreign) prop:cpointer)) . ((13088 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-set-property-type)) . ((31512 . 6))) ((form ((lib "ffi/unsafe.rkt") define-c)) . ((1254 . 2))) ((def ((lib "ffi/vector.rkt") s8vector-length)) . ((13854 . 22))) ((form ((lib "ffi/unsafe/objc.rkt") define-objc-class)) . ((25680 . 22))) ((def ((lib "ffi/vector.rkt") list->s64vector)) . ((17530 . 22))) ((def ((lib "ffi/unsafe/com.rkt") SysAllocStringLen)) . ((35138 . 4))) ((form ((lib "ffi/unsafe.rkt") _vector)) . ((5963 . 2))) ((def ((lib "ffi/unsafe/atomic.rkt") start-atomic)) . ((24308 . 2))) ((def ((quote #%foreign) ctype?)) . ((1701 . 3))) ((def ((lib "ffi/unsafe/objc.rkt") objc_getProtocol)) . ((26837 . 3))) ((def ((lib "ffi/unsafe.rkt") _ullong)) . ((2474 . 16))) ((def ((lib "ffi/vector.rkt") list->u64vector)) . ((18269 . 22))) ((def ((lib "ffi/unsafe/com.rkt") com-object-type)) . ((30329 . 3))) ((def ((lib "ffi/unsafe/objc.rkt") _SEL)) . ((25188 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-method-type)) . ((30593 . 6))) ((def ((lib "ffi/unsafe/atomic.rkt") call-as-atomic)) . ((24468 . 3))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector-ptr)) . ((20945 . 3))) ((def ((lib "ffi/vector.rkt") f32vector->cpointer)) . ((19008 . 22))) ((def ((lib "ffi/unsafe/objc.rkt") object_setInstanceVariable)) . ((28048 . 5))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector-set!)) . ((21113 . 5))) ((def ((lib "ffi/vector.rkt") u16vector->list)) . ((15313 . 22))) ((def ((lib "ffi/vector.rkt") s32vector-set!)) . ((16052 . 22))) ((def ((lib "ffi/vector.rkt") make-f32vector)) . ((19008 . 22))) ((def ((lib "ffi/unsafe.rkt") union-set!)) . ((7805 . 5))) ((def ((lib "ffi/unsafe.rkt") _array)) . ((6776 . 4))) ((def ((lib "ffi/unsafe.rkt") array-length)) . ((7214 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-omit)) . ((30938 . 2))) ((def ((quote #%foreign) compiler-sizeof)) . ((2017 . 3))) ((def ((lib "ffi/unsafe.rkt") _short)) . ((2474 . 16))) ((def ((lib "ffi/unsafe/com.rkt") com-event-type)) . ((31972 . 5))) ((def ((quote #%foreign) ptr-add)) . ((8439 . 5))) ((def ((lib "ffi/winapi.rkt") winapi)) . ((35912 . 2))) ((def ((lib "ffi/vector.rkt") s16vector)) . ((14574 . 22))) ((def ((quote #%foreign) _string/utf-16)) . ((2984 . 2))) ((def ((lib "ffi/unsafe/atomic.rkt") end-atomic)) . ((24344 . 2))) ((def ((quote #%foreign) _int64)) . ((2129 . 13))) ((def ((lib "ffi/com-registry.rkt") clsid->coclass)) . ((33569 . 3))) ((def ((lib "ffi/unsafe.rkt") vector->cblock)) . ((36039 . 4))) ((form ((lib "ffi/vector.rkt") _s32vector)) . ((16743 . 3))) ((def ((lib "ffi/unsafe.rkt") _cprocedure)) . ((3697 . 19))) ((def ((lib "ffi/unsafe/objc.rkt") make-objc_super)) . ((28667 . 4))) ((def ((lib "ffi/vector.rkt") u16vector?)) . ((15313 . 22))) ((def ((lib "ffi/unsafe.rkt") _bytes/eof)) . ((3388 . 2))) ((def ((lib "ffi/vector.rkt") s16vector-length)) . ((14574 . 22))) ((def ((lib "ffi/unsafe/objc.rkt") _objc_super)) . ((28759 . 2))) ((def ((quote #%foreign) ffi-obj-name)) . ((36955 . 7))) ((def ((quote #%foreign) free-immobile-cell)) . ((12776 . 3))) ((def ((quote #%foreign) _float)) . ((2844 . 4))) ((def ((lib "ffi/unsafe/cvector.rkt") make-cvector*)) . ((21392 . 5))) ((def ((lib "ffi/unsafe.rkt") union?)) . ((7660 . 3))) ((def ((lib "ffi/unsafe/objc.rkt") class_addMethod)) . ((27227 . 11))) ((def ((quote #%foreign) make-union-type)) . ((7525 . 3))) ((def ((lib "ffi/unsafe.rkt") _sint16)) . ((2129 . 13))) ((form ((lib "ffi/vector.rkt") _s16vector)) . ((15265 . 3))) ((def ((lib "ffi/unsafe.rkt") _cpointer/null)) . ((21533 . 17))) ((def ((lib "ffi/vector.rkt") s64vector-set!)) . ((17530 . 22))) ((def ((lib "ffi/vector.rkt") u32vector-ref)) . ((16791 . 22))) ((def ((lib "ffi/unsafe.rkt") _slong)) . ((2474 . 16))) ((def ((lib "ffi/vector.rkt") u64vector-set!)) . ((18269 . 22))) ((def ((quote #%foreign) _void)) . ((2930 . 2))) ((def ((lib "ffi/unsafe.rkt") _union)) . ((7597 . 3))) ((def ((lib "ffi/vector.rkt") f64vector->list)) . ((19747 . 22))) ((def ((lib "ffi/unsafe.rkt") _uword)) . ((2415 . 4))) ((def ((lib "ffi/unsafe/atomic.rkt") end-breakable-atomic)) . ((24424 . 2))) ((def ((lib "ffi/vector.rkt") u16vector-ref)) . ((15313 . 22))) ((def ((lib "ffi/com-registry.rkt") com-all-coclasses)) . ((33392 . 2))) ((def ((lib "ffi/vector.rkt") f32vector-ref)) . ((19008 . 22))) ((def ((quote #%foreign) cpointer-tag)) . ((11729 . 3))) ((def ((lib "ffi/vector.rkt") s64vector->list)) . ((17530 . 22))) ((def ((lib "ffi/vector.rkt") f64vector?)) . ((19747 . 22))) ((form ((lib "ffi/unsafe/objc.rkt") get-ivar)) . ((26563 . 2))) ((def ((quote #%foreign) vector->cpointer)) . ((36125 . 3))) ((def ((lib "ffi/unsafe/com.rkt") _HRESULT)) . ((34979 . 2))) ((def ((lib "ffi/unsafe.rkt") _string*/locale)) . ((3148 . 4))) ((def ((lib "ffi/vector.rkt") u32vector?)) . ((16791 . 22))) ((def ((lib "ffi/unsafe/com.rkt") type-describe)) . ((33121 . 4))) ((def ((lib "ffi/vector.rkt") s8vector->cpointer)) . ((13854 . 22))) ((def ((lib "ffi/unsafe.rkt") list->cblock)) . ((35956 . 4))) ((def ((lib "ffi/vector.rkt") list->s8vector)) . ((13854 . 22))) ((form ((lib "ffi/unsafe/objc.rkt") import-class)) . ((25600 . 2))) ((form ((lib "ffi/unsafe.rkt") define-fun-syntax)) . ((5672 . 2))) ((def ((lib "ffi/unsafe.rkt") cast)) . ((36410 . 5))) ((def ((lib "ffi/unsafe/com.rkt") LOCALE_SYSTEM_DEFAULT)) . ((35028 . 2))) ((def ((lib "ffi/unsafe/alloc.rkt") allocator)) . ((23088 . 4))) ((def ((quote #%foreign) ctype-basetype)) . ((37117 . 7))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector-type)) . ((20880 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-events)) . ((31868 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-object-eq?)) . ((30171 . 4))) ((def ((quote #%foreign) ptr-offset)) . ((8646 . 3))) ((def ((lib "ffi/vector.rkt") u8vector)) . ((13134 . 22))) ((def ((lib "ffi/unsafe.rkt") ctype->layout)) . ((1910 . 4))) ((def ((lib "ffi/unsafe.rkt") _ushort)) . ((2474 . 16))) ((def ((lib "ffi/com-registry.rkt") com-all-controls)) . ((33445 . 2))) ((def ((lib "ffi/unsafe.rkt") _enum)) . ((7975 . 5))) ((def ((quote #%foreign) _fpointer)) . ((3549 . 2))) ((def ((quote #%foreign) _symbol)) . ((3039 . 2))) ((def ((lib "ffi/file.rkt") _file/r)) . ((35835 . 2))) ((def ((lib "ffi/unsafe.rkt") array?)) . ((6887 . 3))) ((def ((lib "ffi/unsafe/com.rkt") _GUID)) . ((34925 . 2))) ((form ((lib "ffi/unsafe/com.rkt") _wfun)) . ((34596 . 3))) ((form ((lib "ffi/objc.rkt") objc-unsafe!)) . ((28788 . 2))) ((def ((quote #%foreign) malloc-immobile-cell)) . ((12709 . 3))) ((def ((lib "ffi/unsafe/com.rkt") string->iid)) . ((29220 . 3))) ((def ((lib "ffi/unsafe.rkt") ffi-lib)) . ((54 . 11))) ((def ((lib "ffi/unsafe/com.rkt") _IUnknown_vt)) . ((35357 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-object-get-idispatch)) . ((32792 . 3))) ((def ((lib "ffi/unsafe.rkt") _uint)) . ((2474 . 16))) ((def ((lib "ffi/file.rkt") security-guard-check-file)) . ((35487 . 5))) ((def ((lib "ffi/vector.rkt") list->u16vector)) . ((15313 . 22))) ((def ((lib "ffi/unsafe.rkt") _string/utf-8)) . ((3064 . 4))) ((def ((lib "ffi/unsafe.rkt") make-c-parameter)) . ((993 . 6))) ((def ((quote #%foreign) _int16)) . ((2129 . 13))) ((def ((lib "ffi/vector.rkt") s16vector?)) . ((14574 . 22))) ((def ((lib "ffi/unsafe.rkt") cblock->list)) . ((36525 . 5))) ((form ((lib "ffi/unsafe/objc.rkt") tell)) . ((25278 . 9))) ((def ((quote #%foreign) saved-errno)) . ((36271 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-event-executor?)) . ((32152 . 3))) ((def ((quote #%foreign) ctype-alignof)) . ((1753 . 5))) ((def ((quote #%foreign) memcpy)) . ((10597 . 24))) ((form ((lib "ffi/unsafe.rkt") _list)) . ((5813 . 9))) ((def ((lib "ffi/unsafe/com.rkt") com-register-event-callback)) . ((32278 . 9))) ((def ((lib "ffi/unsafe/cvector.rkt") list->cvector)) . ((21303 . 4))) ((def ((lib "ffi/vector.rkt") u16vector-length)) . ((15313 . 22))) ((def ((quote #%foreign) cpointer-gcable?)) . ((8718 . 3))) ((form ((lib "ffi/unsafe/com.rkt") _hfun)) . ((34786 . 2))) ((def ((quote #%foreign) set-ptr-offset!)) . ((8790 . 5))) ((def ((lib "ffi/vector.rkt") s32vector?)) . ((16052 . 22))) ((def ((lib "ffi/unsafe/com.rkt") guid?)) . ((28943 . 3))) ((form ((lib "ffi/unsafe.rkt") _?)) . ((5721 . 2))) ((def ((lib "ffi/vector.rkt") make-s32vector)) . ((16052 . 22))) ((def ((quote #%foreign) ffi-call)) . ((37314 . 13))) ((def ((lib "ffi/unsafe/com.rkt") com-iunknown?)) . ((32878 . 3))) ((def ((lib "ffi/vector.rkt") make-u8vector)) . ((13134 . 22))) ((def ((lib "ffi/unsafe/com.rkt") clsid?)) . ((28994 . 3))) ((def ((lib "ffi/unsafe.rkt") cpointer-has-tag?)) . ((22387 . 7))) ((def ((lib "ffi/unsafe/alloc.rkt") releaser)) . ((23342 . 4))) ((form ((lib "ffi/unsafe.rkt") define-cstruct)) . ((6430 . 8))) ((form ((lib "ffi/unsafe/cvector.rkt") _cvector)) . ((20486 . 3))) ((form ((lib "ffi/vector.rkt") _u64vector)) . ((18960 . 3))) ((def ((lib "ffi/unsafe.rkt") _bitmask)) . ((8160 . 4))) ((def ((quote #%foreign) _double)) . ((2844 . 4))) ((def ((lib "ffi/unsafe/try-atomic.rkt") try-atomic)) . ((24729 . 9))) ((def ((lib "ffi/unsafe/objc.rkt") NO)) . ((25256 . 2))) ((def ((quote #%foreign) ffi-callback?)) . ((38203 . 3))) ((def ((lib "ffi/vector.rkt") s16vector->cpointer)) . ((14574 . 22))) ((form ((lib "ffi/unsafe.rkt") ->)) . ((5662 . 2))) ((def ((lib "ffi/unsafe.rkt") _list-struct)) . ((6246 . 5))) ((def ((lib "ffi/unsafe/com.rkt") progid->clsid)) . ((29411 . 3))) ((def ((lib "ffi/unsafe/objc.rkt") objc_registerClassPair)) . ((27096 . 3))) ((def ((lib "ffi/unsafe/com.rkt") _IUnknown)) . ((35295 . 2))) ((def ((quote #%foreign) make-ctype)) . ((1508 . 5))) ((def ((lib "ffi/unsafe/objc.rkt") sel_registerName)) . ((26914 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-type?)) . ((30274 . 3))) ((form ((lib "ffi/unsafe.rkt") _ptr)) . ((5731 . 6))) ((def ((lib "ffi/unsafe.rkt") _int)) . ((2474 . 16))) ((def ((lib "ffi/unsafe.rkt") cpointer-push-tag!)) . ((22387 . 7))) ((form ((lib "ffi/unsafe/com.rkt") define-com-interface)) . ((33637 . 8))) ((def ((lib "ffi/vector.rkt") s64vector-ref)) . ((17530 . 22))) ((def ((lib "ffi/unsafe.rkt") _string/latin-1)) . ((3064 . 4))) ((def ((lib "ffi/vector.rkt") u32vector-length)) . ((16791 . 22))) ((def ((lib "ffi/unsafe/com.rkt") string->clsid)) . ((29157 . 3))) ((def ((lib "ffi/unsafe.rkt") array-set!)) . ((7038 . 5))) ((def ((lib "ffi/unsafe.rkt") _byte)) . ((2356 . 4))) ((def ((lib "ffi/unsafe.rkt") _sint32)) . ((2129 . 13))) ((form ((lib "ffi/unsafe/define.rkt") define-ffi-definer)) . ((22558 . 7))) ((def ((lib "ffi/unsafe.rkt") cblock->vector)) . ((36666 . 5))) ((def ((quote #%foreign) _scheme)) . ((3524 . 2))) ((def ((quote #%foreign) _path)) . ((3016 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-object-get-iunknown)) . ((32709 . 3))) ((def ((lib "ffi/unsafe.rkt") _file)) . ((3365 . 2))) ((def ((lib "ffi/unsafe.rkt") _cpointer)) . ((21533 . 17))) ((def ((lib "ffi/vector.rkt") f32vector?)) . ((19008 . 22))) ((form ((lib "ffi/unsafe/objc.rkt") tellv)) . ((25536 . 3))) ((form ((lib "ffi/unsafe.rkt") _box)) . ((5801 . 2))) ((def ((lib "ffi/unsafe/objc.rkt") class_addIvar)) . ((27565 . 11))) ((def ((quote #%foreign) free)) . ((12581 . 3))) ((def ((lib "ffi/vector.rkt") f32vector-length)) . ((19008 . 22))) ((def ((lib "ffi/unsafe/objc.rkt") objc_msgSend/typed)) . ((28192 . 6))) ((def ((lib "ffi/vector.rkt") f64vector-length)) . ((19747 . 22))) ((form ((lib "ffi/unsafe/com.rkt") _hmfun)) . ((34855 . 2))) ((def ((lib "ffi/unsafe.rkt") _sword)) . ((2415 . 4))) ((def ((lib "ffi/unsafe/com.rkt") _IUnknown-pointer)) . ((35322 . 2))) ((def ((lib "ffi/vector.rkt") u64vector->cpointer)) . ((18269 . 22))) ((def ((lib "ffi/vector.rkt") s8vector->list)) . ((13854 . 22))) ((def ((lib "ffi/unsafe.rkt") _sintptr)) . ((2474 . 16))) ((def ((quote #%foreign) _uint32)) . ((2129 . 13))) ((def ((lib "ffi/unsafe/com.rkt") iid?)) . ((29046 . 3))) ((def ((lib "ffi/vector.rkt") s8vector?)) . ((13854 . 22))) ((def ((lib "ffi/unsafe.rkt") _string*/latin-1)) . ((3148 . 4))) ((def ((lib "ffi/vector.rkt") s32vector)) . ((16052 . 22))) ((def ((lib "ffi/vector.rkt") list->u8vector)) . ((13134 . 22))) ((def ((lib "ffi/unsafe.rkt") union-ptr)) . ((7918 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-idispatch?)) . ((32937 . 3))) ((def ((lib "ffi/unsafe/com.rkt") make-com-object)) . ((34338 . 7))) ((def ((lib "ffi/unsafe/cvector.rkt") make-cvector)) . ((20536 . 4))) ((def ((lib "ffi/unsafe/com.rkt") AddRef)) . ((34156 . 3))) ((def ((quote #%foreign) ctype-sizeof)) . ((1753 . 5))) ((def ((lib "ffi/unsafe/com.rkt") type-described-value)) . ((33224 . 3))) ((def ((quote #%foreign) ptr-add!)) . ((8936 . 5))) ((def ((lib "ffi/unsafe/com.rkt") windows-error)) . ((35387 . 4))) ((def ((quote #%foreign) _double*)) . ((2844 . 4))) ((def ((lib "ffi/vector.rkt") u8vector?)) . ((13134 . 22))) ((def ((quote #%foreign) _fixint)) . ((2799 . 3))) ((def ((lib "ffi/unsafe/nsstring.rkt") _NSString)) . ((28810 . 2))) ((def ((lib "ffi/vector.rkt") u8vector-ref)) . ((13134 . 22))) ((def ((lib "ffi/vector.rkt") s32vector-length)) . ((16052 . 22))) ((def ((quote #%foreign) make-sized-byte-string)) . ((12962 . 4))) ((def ((lib "ffi/vector.rkt") make-u16vector)) . ((15313 . 22))) ((def ((lib "ffi/unsafe/objc.rkt") _BOOL)) . ((25210 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-object-clsid)) . ((29999 . 3))) ((def ((lib "ffi/vector.rkt") make-u32vector)) . ((16791 . 22))) ((def ((lib "ffi/unsafe/com.rkt") IID_NULL)) . ((35243 . 2))) ((def ((lib "ffi/unsafe/objc.rkt") YES)) . ((25233 . 2))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector-length)) . ((20793 . 3))) ((form ((lib "ffi/vector.rkt") _f32vector)) . ((19699 . 3))) ((def ((quote #%foreign) _ufixnum)) . ((2754 . 3))) ((def ((lib "ffi/unsafe.rkt") _sbyte)) . ((2356 . 4))) ((def ((lib "ffi/unsafe.rkt") _sint8)) . ((2129 . 13))) ((def ((quote #%foreign) make-array-type)) . ((6662 . 4))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector-ref)) . ((21012 . 4))) ((form ((lib "ffi/unsafe/objc.rkt") super-tell)) . ((26483 . 3))) ((def ((lib "ffi/unsafe/objc.rkt") objc_lookUpClass)) . ((26763 . 3))) ((def ((lib "ffi/unsafe/atomic.rkt") start-breakable-atomic)) . ((24378 . 2))) ((def ((lib "ffi/unsafe.rkt") _llong)) . ((2474 . 16))) ((def ((lib "ffi/unsafe/objc.rkt") objc-is-a?)) . ((26681 . 4))) ((def ((lib "ffi/com-registry.rkt") coclass->clsid)) . ((33497 . 3))) ((form ((lib "ffi/vector.rkt") _u32vector)) . ((17482 . 3))) ((def ((quote #%foreign) _uint8)) . ((2129 . 13))) ((def ((quote #%foreign) offset-ptr?)) . ((8579 . 3))) ((def ((lib "ffi/vector.rkt") s32vector->cpointer)) . ((16052 . 22))) ((def ((lib "ffi/unsafe.rkt") _sllong)) . ((2474 . 16))) ((def ((quote #%foreign) cpointer?)) . ((8285 . 3))) ((def ((lib "ffi/unsafe.rkt") default-_string-type)) . ((3260 . 4))) ((def ((quote #%foreign) flvector->cpointer)) . ((36194 . 3))) ((def ((lib "ffi/unsafe.rkt") set-ffi-obj!)) . ((798 . 6))) ((form ((lib "ffi/unsafe/objc.rkt") self)) . ((26471 . 2))) ((form ((lib "ffi/vector.rkt") _f64vector)) . ((20438 . 3))) ((def ((lib "ffi/unsafe/objc.rkt") object_getInstanceVariable)) . ((27943 . 4))) ((form ((lib "ffi/vector.rkt") _s64vector)) . ((18221 . 3))) ((def ((lib "ffi/unsafe/objc.rkt") objc_msgSendSuper/typed)) . ((28364 . 9))) ((def ((lib "ffi/vector.rkt") list->f64vector)) . ((19747 . 22))) ((def ((lib "ffi/vector.rkt") make-s16vector)) . ((14574 . 22))) ((def ((lib "ffi/vector.rkt") f32vector-set!)) . ((19008 . 22))) ((def ((lib "ffi/vector.rkt") s64vector)) . ((17530 . 22))) ((def ((lib "ffi/unsafe/com.rkt") clsid->progid)) . ((29480 . 3))) ((def ((lib "ffi/vector.rkt") make-s64vector)) . ((17530 . 22))) ((def ((lib "ffi/vector.rkt") u64vector->list)) . ((18269 . 22))) ((def ((lib "ffi/unsafe/custodian.rkt") unregister-custodian-shutdown)) . ((24138 . 5))) ((form ((lib "ffi/unsafe/objc.rkt") define-objc-mixin)) . ((26344 . 6))) ((form ((lib "ffi/vector.rkt") _u16vector)) . ((16004 . 3))) ((def ((lib "ffi/vector.rkt") u16vector)) . ((15313 . 22))) ((def ((quote #%foreign) ctype-scheme->c)) . ((37117 . 7))) ((def ((lib "ffi/vector.rkt") u32vector)) . ((16791 . 22))) ((def ((quote #%foreign) malloc)) . ((11885 . 16))) ((def ((lib "ffi/vector.rkt") s16vector->list)) . ((14574 . 22))) ((def ((lib "ffi/unsafe.rkt") _gcable)) . ((3637 . 3))) ((def ((lib "ffi/unsafe.rkt") _sshort)) . ((2474 . 16))) ((def ((quote #%foreign) _bool)) . ((2907 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-get-property)) . ((31290 . 4))) ((form ((lib "ffi/unsafe/objc.rkt") set-ivar!)) . ((26601 . 2))) ((def ((quote #%foreign) _ufixint)) . ((2799 . 3))) ((def ((lib "ffi/unsafe/atomic.rkt") call-as-nonatomic)) . ((24535 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-release)) . ((29819 . 3))) ((def ((lib "ffi/unsafe.rkt") _or-null)) . ((3576 . 3))) ((def ((quote #%foreign) ffi-obj?)) . ((36955 . 7))) ((def ((lib "ffi/vector.rkt") u8vector-length)) . ((13134 . 22))) ((def ((lib "ffi/unsafe/objc.rkt") _id)) . ((25116 . 2))) ((def ((lib "ffi/unsafe/nsalloc.rkt") call-with-autorelease)) . ((28837 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-unregister-event-callback)) . ((32600 . 4))) ((def ((lib "ffi/vector.rkt") u8vector->list)) . ((13134 . 22))) ((def ((quote #%foreign) ffi-obj)) . ((36811 . 4))) ((def ((lib "ffi/vector.rkt") s64vector-length)) . ((17530 . 22))) ((def ((lib "ffi/vector.rkt") u32vector-set!)) . ((16791 . 22))) ((def ((lib "ffi/unsafe.rkt") ffi-obj-ref)) . ((1297 . 5))) ((def ((lib "ffi/vector.rkt") u64vector-length)) . ((18269 . 22))) ((def ((lib "ffi/unsafe/custodian.rkt") register-custodian-shutdown)) . ((23652 . 11))) ((def ((lib "ffi/unsafe/com.rkt") Release)) . ((34245 . 3))) ((def ((lib "ffi/unsafe.rkt") _sint)) . ((2474 . 16))) ((def ((lib "ffi/unsafe/objc.rkt") object_getClass)) . ((27166 . 3))) ((def ((lib "ffi/vector.rkt") f64vector)) . ((19747 . 22))) ((def ((lib "ffi/unsafe.rkt") array-ref)) . ((6939 . 4))) ((def ((lib "ffi/unsafe.rkt") _ubyte)) . ((2356 . 4))) ((def ((lib "ffi/unsafe/objc.rkt") _Ivar)) . ((28169 . 2))) ((def ((lib "ffi/unsafe/com.rkt") com-object-set-clsid!)) . ((30069 . 4))) ((def ((quote #%foreign) _uint16)) . ((2129 . 13))) ((def ((lib "ffi/unsafe/cvector.rkt") cvector?)) . ((20739 . 3))) ((def ((lib "ffi/unsafe/com.rkt") com-object?)) . ((29559 . 3))) ((def ((lib "ffi/vector.rkt") f64vector-ref)) . ((19747 . 22))) ((def ((lib "ffi/unsafe/com.rkt") com-invoke)) . ((30815 . 5))) ((def ((lib "ffi/unsafe/com.rkt") guid=?)) . ((29336 . 4))) ((def ((quote #%foreign) lookup-errno)) . ((36315 . 3))) ((def ((quote #%foreign) _int8)) . ((2129 . 13))) ((def ((lib "ffi/vector.rkt") s8vector)) . ((13854 . 22))) ((def ((lib "ffi/vector.rkt") list->s32vector)) . ((16052 . 22))) ((def ((quote #%foreign) ptr-ref)) . ((9075 . 25))) ((def ((lib "ffi/unsafe.rkt") _array/vector)) . ((7407 . 4))) ((def ((quote #%foreign) ptr-set!)) . ((9075 . 25))) ((def ((lib "ffi/vector.rkt") s8vector-ref)) . ((13854 . 22))) ((def ((lib "ffi/file.rkt") _file/rw)) . ((35860 . 2))) ((def ((lib "ffi/unsafe/alloc.rkt") deallocator)) . ((23206 . 4))) ((def ((lib "ffi/vector.rkt") list->u32vector)) . ((16791 . 22))))
procedure
(ffi-lib? v) -> boolean?
  v : any/c
procedure
(ffi-lib  path                            
         [version                         
          #:get-lib-dirs get-lib-dirs     
          #:fail fail                     
          #:global? global?])         -> any
  path : (or/c path-string? #f)
  version : (or/c string? (listof (or/c string? #f)) #f) = #f
  get-lib-dirs : (-> (listof path?)) = get-lib-search-dirs
  fail : (or/c #f (-> any)) = #f
  global? : any/c = #f
procedure
(get-ffi-obj objname lib type [failure-thunk]) -> any
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  type : ctype?
  failure-thunk : (or/c (-> any) #f) = #f
procedure
(set-ffi-obj! objname lib type new) -> void?
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  type : ctype?
  new : any/c
procedure
(make-c-parameter objname lib type) -> (and/c (-> any)
                                              (any/c -> void?))
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  type : ctype?
syntax
(define-c id lib-expr type-expr)
procedure
(ffi-obj-ref objname lib [failure-thunk]) -> any
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  failure-thunk : (or/c (-> any) #f) = #f
procedure
(make-ctype type scheme-to-c c-to-scheme) -> ctype?
  type : ctype?
  scheme-to-c : (or/c #f (any/c . -> . any))
  c-to-scheme : (or/c #f (any/c . -> . any))
procedure
(ctype? v) -> boolean?
  v : any/c
procedure
(ctype-sizeof type) -> exact-nonnegative-integer?
  type : ctype?
(ctype-alignof type) -> exact-nonnegative-integer?
  type : ctype?
procedure
(ctype->layout type)
 -> (flat-rec-contract rep symbol? (listof rep))
  type : ctype?
procedure
(compiler-sizeof sym) -> exact-nonnegative-integer?
  sym : (or/c symbol? (listof symbol?))
value
_int8 : ctype?
_sint8 : ctype?
_uint8 : ctype?
_int16 : ctype?
_sint16 : ctype?
_uint16 : ctype?
_int32 : ctype?
_sint32 : ctype?
_uint32 : ctype?
_int64 : ctype?
_sint64 : ctype?
_uint64 : ctype?
value
_byte : ctype?
_sbyte : ctype?
_ubyte : ctype?
value
_word : ctype?
_sword : ctype?
_uword : ctype?
value
_short : ctype?
_sshort : ctype?
_ushort : ctype?
_int : ctype?
_sint : ctype?
_uint : ctype?
_long : ctype?
_slong : ctype?
_ulong : ctype?
_llong : ctype?
_sllong : ctype?
_ullong : ctype?
_intptr : ctype?
_sintptr : ctype?
_uintptr : ctype?
value
_fixnum : ctype?
_ufixnum : ctype?
value
_fixint : ctype?
_ufixint : ctype?
value
_float : ctype?
_double : ctype?
_double* : ctype?
value
_bool : ctype?
value
_void : ctype?
value
_string/ucs-4 : ctype?
value
_string/utf-16 : ctype?
value
_path : ctype?
value
_symbol : ctype?
value
_string/utf-8 : ctype?
_string/latin-1 : ctype?
_string/locale : ctype?
value
_string*/utf-8 : ctype?
_string*/latin-1 : ctype?
_string*/locale : ctype?
value
_string : ctype?
parameter
(default-_string-type) -> ctype?
(default-_string-type type) -> void?
  type : ctype?
value
_file : ctype?
value
_bytes/eof : ctype?
value
_string/eof : ctype?
value
_pointer : ctype?
value
_gcpointer : ctype?
value
_racket : ctype?
value
_scheme : ctype?
value
_fpointer : ctype?
procedure
(_or-null ctype) -> ctype?
  ctype : ctype?
procedure
(_gcable ctype) -> ctype?
  ctype : ctype?
procedure
(_cprocedure  input-types                                 
              output-type                                 
             [#:abi abi                                   
              #:atomic? atomic?                           
              #:async-apply async-apply                   
              #:in-original-place? in-original-place?     
              #:save-errno save-errno                     
              #:wrapper wrapper                           
              #:keep keep])                           -> any
  input-types : (list ctype?)
  output-type : ctype?
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  atomic? : any/c = #f
  async-apply : (or/c #f ((-> any) . -> . any)) = #f
  in-original-place? : any/c = #f
  save-errno : (or/c #f 'posix 'windows) = #f
  wrapper : (or/c #f (procedure? . -> . procedure?)) = #f
  keep : (or/c boolean? box? (any/c . -> . any/c)) = #t
syntax
(_fun fun-option ... maybe-args type-spec ... -> type-spec
      maybe-wrapper)
 
fun-option    = #:abi abi-expr
              | #:save-errno save-errno-expr
              | #:keep keep-expr
              | #:atomic? atomic?-expr
              | #:async-apply async-apply-expr
              | #:in-original-place? in-original-place?-expr
                 
maybe-args    = 
              | (id ...) ::
              | id ::
              | (id ... . id) ::
                 
type-spec     = type-expr
              | (id : type-expr)
              | (type-expr = value-expr)
              | (id : type-expr = value-expr)
                 
maybe-wrapper = 
              | -> output-expr
procedure
(function-ptr ptr-or-proc fun-type) -> cpointer?
  ptr-or-proc : (or cpointer? procedure?)
  fun-type : ctype?
syntax
->
syntax
(define-fun-syntax id transformer-expr)
syntax
_?
syntax
(_ptr mode type-expr)
 
mode = i
     | o
     | io
syntax
_box
syntax
(_list mode type maybe-len)
 
mode      = i
          | o
          | io
             
maybe-len = 
          | len-expr
syntax
(_vector mode type maybe-len)
syntax
(_bytes o len-expr)
_bytes
procedure
(make-cstruct-type types [abi alignment]) -> ctype?
  types : (listof ctype?)
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  alignment : (or/c #f 1 2 4 8 16) = #f
procedure
(_list-struct [#:alignment alignment]     
               type ...+)             -> ctype?
  alignment : (or/c #f 1 2 4 8 16) = #f
  type : ctype?
syntax
(define-cstruct id/sup ([field-id type-expr] ...) property ...)
 
id/sup   = _id
         | (_id super-id)
            
property = #:alignment alignment-expr
         | #:property prop-expr val-expr
procedure
(make-array-type type count) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(_array type count ...+) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(array? v) -> boolean?
  v : any/c
procedure
(array-ref a i ...+) -> any/c
  a : array?
  i : exact-nonnegative-integer?
procedure
(array-set! a i ...+ v) -> void?
  a : array?
  i : exact-nonnegative-integer?
  v : any/c
procedure
(array-ptr a) -> cpointer?
  a : array?
procedure
(array-length a) -> exact-nonnegative-integer?
  a : array?
procedure
(_array/list type count ...+) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(_array/vector type count ...+) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(make-union-type type ...+) -> ctype?
  type : ctype?
procedure
(_union type ...+) -> ctype?
  type : ctype?
procedure
(union? v) -> boolean?
  v : any/c
procedure
(union-ref u i) -> any/c
  u : union?
  i : exact-nonnegative-integer?
procedure
(union-set! u i v) -> void?
  u : union?
  i : exact-nonnegative-integer?
  v : any/c
procedure
(union-ptr u) -> cpointer?
  u : array?
procedure
(_enum symbols [basetype #:unknown unknown]) -> ctype?
  symbols : list?
  basetype : ctype? = _ufixint
  unknown : any/c = (lambda (x) (error ....))
procedure
(_bitmask symbols [basetype]) -> ctype?
  symbols : (or symbol? list?)
  basetype : ctype? = _uint
procedure
(cpointer? v) -> boolean?
  v : any/c
procedure
(ptr-equal? cptr1 cptr2) -> boolean?
  cptr1 : cpointer?
  cptr2 : cpointer?
procedure
(ptr-add cptr offset [type]) -> cpointer?
  cptr : cpointer?
  offset : exact-integer?
  type : ctype? = _byte
procedure
(offset-ptr? cptr) -> boolean?
  cptr : cpointer?
procedure
(ptr-offset cptr) -> exact-integer?
  cptr : cpointer?
procedure
(cpointer-gcable? cptr) -> boolean?
  cptr : cpointer?
procedure
(set-ptr-offset! cptr offset [ctype]) -> void?
  cptr : cpointer?
  offset : exact-integer?
  ctype : ctype? = _byte
procedure
(ptr-add! cptr offset [ctype]) -> void?
  cptr : cpointer?
  offset : exact-integer?
  ctype : ctype? = _byte
procedure
(ptr-ref cptr type [offset]) -> any
  cptr : cpointer?
  type : ctype?
  offset : exact-nonnegative-integer? = 0
(ptr-ref cptr type abs-tag offset) -> any
  cptr : cpointer?
  type : ctype?
  abs-tag : (one-of/c 'abs)
  offset : exact-nonnegative-integer?
(ptr-set! cptr type val) -> void?
  cptr : cpointer?
  type : ctype?
  val : any/c
(ptr-set! cptr type offset val) -> void?
  cptr : cpointer?
  type : ctype?
  offset : exact-nonnegative-integer?
  val : any/c
(ptr-set! cptr type abs-tag offset val) -> void?
  cptr : cpointer?
  type : ctype?
  abs-tag : (one-of/c 'abs)
  offset : exact-nonnegative-integer?
  val : any/c
procedure
(memmove cptr src-cptr count [type]) -> void?
  cptr : cpointer?
  src-cptr : cpointer?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
(memmove cptr offset src-cptr count [type]) -> void?
  cptr : cpointer?
  offset : exact-integer?
  src-cptr : cpointer?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
(memmove  cptr           
          offset         
          src-cptr       
          src-offset     
          count          
         [type])     -> void?
  cptr : cpointer?
  offset : exact-integer?
  src-cptr : cpointer?
  src-offset : exact-integer?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
procedure
(memcpy cptr src-cptr count [type]) -> void?
  cptr : cpointer?
  src-cptr : cpointer?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
(memcpy cptr offset src-cptr count [type]) -> void?
  cptr : cpointer?
  offset : exact-integer?
  src-cptr : cpointer?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
(memcpy  cptr           
         offset         
         src-cptr       
         src-offset     
         count          
        [type])     -> void?
  cptr : cpointer?
  offset : exact-integer?
  src-cptr : cpointer?
  src-offset : exact-integer?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
procedure
(memset cptr byte count [type]) -> void?
  cptr : cpointer?
  byte : byte?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
(memset cptr offset byte count [type]) -> void?
  cptr : cpointer?
  offset : exact-integer?
  byte : byte?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
procedure
(cpointer-tag cptr) -> any
  cptr : cpointer?
procedure
(set-cpointer-tag! cptr tag) -> void?
  cptr : cpointer?
  tag : any/c
procedure
(malloc  bytes-or-type     
        [type-or-bytes     
         cptr              
         mode              
         fail-mode])   -> cpointer?
  bytes-or-type : (or/c (and/c exact-nonnegative-integer? fixnum?)
                        ctype?)
  type-or-bytes : (or/c (and/c exact-nonnegative-integer? fixnum?)
                        ctype?)
                = absent
  cptr : cpointer? = absent
  mode : (one-of/c 'nonatomic 'stubborn 'uncollectable = absent
                   'eternal 'interior 'atomic-interior
                   'raw)
  fail-mode : (one-of/c 'failok) = absent
procedure
(free cptr) -> void
  cptr : cpointer?
procedure
(end-stubborn-change cptr) -> void?
  cptr : cpointer?
procedure
(malloc-immobile-cell v) -> cpointer?
  v : any/c
procedure
(free-immobile-cell cptr) -> void?
  cptr : cpointer?
procedure
(register-finalizer obj finalizer) -> void?
  obj : any/c
  finalizer : (any/c . -> . any)
procedure
(make-sized-byte-string cptr length) -> bytes?
  cptr : cpointer?
  length : exact-nonnegative-integer?
value
prop:cpointer : struct-type-property?
procedure
(make-u8vector len) -> u8vector?
  len : exact-nonnegative-integer?
(u8vector val ...) -> u8vector?
  val : number?
(u8vector? v) -> boolean?
  v : any/c
(u8vector-length vec) -> exact-nonnegative-integer?
  vec : u8vector?
(u8vector-ref vec k) -> number?
  vec : u8vector?
  k : exact-nonnegative-integer?
(u8vector-set! vec k val) -> void?
  vec : u8vector?
  k : exact-nonnegative-integer?
  val : number?
(list->u8vector lst) -> u8vector?
  lst : (listof number?)
(u8vector->list vec) -> (listof number?)
  vec : u8vector?
(u8vector->cpointer vec) -> cpointer?
  vec : u8vector?
syntax
(_u8vector mode maybe-len)
_u8vector
procedure
(make-s8vector len) -> s8vector?
  len : exact-nonnegative-integer?
(s8vector val ...) -> s8vector?
  val : number?
(s8vector? v) -> boolean?
  v : any/c
(s8vector-length vec) -> exact-nonnegative-integer?
  vec : s8vector?
(s8vector-ref vec k) -> number?
  vec : s8vector?
  k : exact-nonnegative-integer?
(s8vector-set! vec k val) -> void?
  vec : s8vector?
  k : exact-nonnegative-integer?
  val : number?
(list->s8vector lst) -> s8vector?
  lst : (listof number?)
(s8vector->list vec) -> (listof number?)
  vec : s8vector?
(s8vector->cpointer vec) -> cpointer?
  vec : s8vector?
syntax
(_s8vector mode maybe-len)
_s8vector
procedure
(make-s16vector len) -> s16vector?
  len : exact-nonnegative-integer?
(s16vector val ...) -> s16vector?
  val : number?
(s16vector? v) -> boolean?
  v : any/c
(s16vector-length vec) -> exact-nonnegative-integer?
  vec : s16vector?
(s16vector-ref vec k) -> number?
  vec : s16vector?
  k : exact-nonnegative-integer?
(s16vector-set! vec k val) -> void?
  vec : s16vector?
  k : exact-nonnegative-integer?
  val : number?
(list->s16vector lst) -> s16vector?
  lst : (listof number?)
(s16vector->list vec) -> (listof number?)
  vec : s16vector?
(s16vector->cpointer vec) -> cpointer?
  vec : s16vector?
syntax
(_s16vector mode maybe-len)
_s16vector
procedure
(make-u16vector len) -> u16vector?
  len : exact-nonnegative-integer?
(u16vector val ...) -> u16vector?
  val : number?
(u16vector? v) -> boolean?
  v : any/c
(u16vector-length vec) -> exact-nonnegative-integer?
  vec : u16vector?
(u16vector-ref vec k) -> number?
  vec : u16vector?
  k : exact-nonnegative-integer?
(u16vector-set! vec k val) -> void?
  vec : u16vector?
  k : exact-nonnegative-integer?
  val : number?
(list->u16vector lst) -> u16vector?
  lst : (listof number?)
(u16vector->list vec) -> (listof number?)
  vec : u16vector?
(u16vector->cpointer vec) -> cpointer?
  vec : u16vector?
syntax
(_u16vector mode maybe-len)
_u16vector
procedure
(make-s32vector len) -> s32vector?
  len : exact-nonnegative-integer?
(s32vector val ...) -> s32vector?
  val : number?
(s32vector? v) -> boolean?
  v : any/c
(s32vector-length vec) -> exact-nonnegative-integer?
  vec : s32vector?
(s32vector-ref vec k) -> number?
  vec : s32vector?
  k : exact-nonnegative-integer?
(s32vector-set! vec k val) -> void?
  vec : s32vector?
  k : exact-nonnegative-integer?
  val : number?
(list->s32vector lst) -> s32vector?
  lst : (listof number?)
(s32vector->list vec) -> (listof number?)
  vec : s32vector?
(s32vector->cpointer vec) -> cpointer?
  vec : s32vector?
syntax
(_s32vector mode maybe-len)
_s32vector
procedure
(make-u32vector len) -> u32vector?
  len : exact-nonnegative-integer?
(u32vector val ...) -> u32vector?
  val : number?
(u32vector? v) -> boolean?
  v : any/c
(u32vector-length vec) -> exact-nonnegative-integer?
  vec : u32vector?
(u32vector-ref vec k) -> number?
  vec : u32vector?
  k : exact-nonnegative-integer?
(u32vector-set! vec k val) -> void?
  vec : u32vector?
  k : exact-nonnegative-integer?
  val : number?
(list->u32vector lst) -> u32vector?
  lst : (listof number?)
(u32vector->list vec) -> (listof number?)
  vec : u32vector?
(u32vector->cpointer vec) -> cpointer?
  vec : u32vector?
syntax
(_u32vector mode maybe-len)
_u32vector
procedure
(make-s64vector len) -> s64vector?
  len : exact-nonnegative-integer?
(s64vector val ...) -> s64vector?
  val : number?
(s64vector? v) -> boolean?
  v : any/c
(s64vector-length vec) -> exact-nonnegative-integer?
  vec : s64vector?
(s64vector-ref vec k) -> number?
  vec : s64vector?
  k : exact-nonnegative-integer?
(s64vector-set! vec k val) -> void?
  vec : s64vector?
  k : exact-nonnegative-integer?
  val : number?
(list->s64vector lst) -> s64vector?
  lst : (listof number?)
(s64vector->list vec) -> (listof number?)
  vec : s64vector?
(s64vector->cpointer vec) -> cpointer?
  vec : s64vector?
syntax
(_s64vector mode maybe-len)
_s64vector
procedure
(make-u64vector len) -> u64vector?
  len : exact-nonnegative-integer?
(u64vector val ...) -> u64vector?
  val : number?
(u64vector? v) -> boolean?
  v : any/c
(u64vector-length vec) -> exact-nonnegative-integer?
  vec : u64vector?
(u64vector-ref vec k) -> number?
  vec : u64vector?
  k : exact-nonnegative-integer?
(u64vector-set! vec k val) -> void?
  vec : u64vector?
  k : exact-nonnegative-integer?
  val : number?
(list->u64vector lst) -> u64vector?
  lst : (listof number?)
(u64vector->list vec) -> (listof number?)
  vec : u64vector?
(u64vector->cpointer vec) -> cpointer?
  vec : u64vector?
syntax
(_u64vector mode maybe-len)
_u64vector
procedure
(make-f32vector len) -> f32vector?
  len : exact-nonnegative-integer?
(f32vector val ...) -> f32vector?
  val : number?
(f32vector? v) -> boolean?
  v : any/c
(f32vector-length vec) -> exact-nonnegative-integer?
  vec : f32vector?
(f32vector-ref vec k) -> number?
  vec : f32vector?
  k : exact-nonnegative-integer?
(f32vector-set! vec k val) -> void?
  vec : f32vector?
  k : exact-nonnegative-integer?
  val : number?
(list->f32vector lst) -> f32vector?
  lst : (listof number?)
(f32vector->list vec) -> (listof number?)
  vec : f32vector?
(f32vector->cpointer vec) -> cpointer?
  vec : f32vector?
syntax
(_f32vector mode maybe-len)
_f32vector
procedure
(make-f64vector len) -> f64vector?
  len : exact-nonnegative-integer?
(f64vector val ...) -> f64vector?
  val : number?
(f64vector? v) -> boolean?
  v : any/c
(f64vector-length vec) -> exact-nonnegative-integer?
  vec : f64vector?
(f64vector-ref vec k) -> number?
  vec : f64vector?
  k : exact-nonnegative-integer?
(f64vector-set! vec k val) -> void?
  vec : f64vector?
  k : exact-nonnegative-integer?
  val : number?
(list->f64vector lst) -> f64vector?
  lst : (listof number?)
(f64vector->list vec) -> (listof number?)
  vec : f64vector?
(f64vector->cpointer vec) -> cpointer?
  vec : f64vector?
syntax
(_f64vector mode maybe-len)
_f64vector
syntax
(_cvector mode type maybe-len)
_cvector
procedure
(make-cvector type length) -> cvector?
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(cvector type val ...) -> cvector?
  type : ctype?
  val : any/c
procedure
(cvector? v) -> boolean?
  v : any/c
procedure
(cvector-length cvec) -> exact-nonnegative-integer?
  cvec : cvector?
procedure
(cvector-type cvec) -> ctype?
  cvec : cvector?
procedure
(cvector-ptr cvec) -> cpointer?
  cvec : cvector?
procedure
(cvector-ref cvec k) -> any
  cvec : cvector?
  k : exact-nonnegative-integer?
procedure
(cvector-set! cvec k val) -> void?
  cvec : cvector?
  k : exact-nonnegative-integer?
  val : any
procedure
(cvector->list cvec) -> list?
  cvec : cvector?
procedure
(list->cvector lst type) -> cvector?
  lst : list?
  type : ctype?
procedure
(make-cvector* cptr type length) -> cvector?
  cptr : any/c
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(_cpointer  tag               
           [ptr-type          
            scheme-to-c       
            c-to-scheme]) -> ctype
  tag : any/c
  ptr-type : ctype? = _pointer
  scheme-to-c : (any/c . -> . any/c) = values
  c-to-scheme : (any/c . -> . any/c) = values
(_cpointer/null  tag               
                [ptr-type          
                 scheme-to-c       
                 c-to-scheme]) -> ctype
  tag : any/c
  ptr-type : ctype? = _pointer
  scheme-to-c : (any/c . -> . any/c) = values
  c-to-scheme : (any/c . -> . any/c) = values
syntax
(define-cpointer-type _id)
(define-cpointer-type _id ptr-type-expr)
(define-cpointer-type _id ptr-type-expr
                      scheme-to-c-expr c-to-scheme-expr)
procedure
(cpointer-has-tag? cptr tag) -> boolean?
  cptr : any/c
  tag : any/c
(cpointer-push-tag! cptr tag) -> void
  cptr : any/c
  tag : any/c
syntax
(define-ffi-definer define-id ffi-lib-expr
  option ...)
 
option = #:provide provide-id
       | #:define core-define-id
       | #:default-make-fail default-make-fail-expr

(define-id id type-expr
  bind-option ...)
 
bind-option = #:c-id c-id
            | #:wrap wrap-expr
            | #:make-fail make-fail-expr
            | #:fail fail-expr
procedure
(make-not-available name) -> (#:rest list? -> any/c)
  name : symbol?
syntax
(provide-protected provide-spec ...)
procedure
((allocator dealloc) alloc) -> procedure?
  dealloc : (any/c . -> . any)
  alloc : procedure?
procedure
((deallocator [get-arg]) dealloc) -> procedure?
  get-arg : (list? . -> . any/c) = car
  dealloc : procedure?
procedure
((releaser [get-arg]) dealloc) -> procedure?
  get-arg : (list? . -> . any/c) = car
  dealloc : procedure?
procedure
((retainer release [get-arg]) retain) -> procedure?
  release : (any/c . -> . any)
  get-arg : (list? . -> . any/c) = car
  retain : procedure?
procedure
(register-custodian-shutdown  v                       
                              callback                
                             [custodian               
                              #:at-exit? at-exit?     
                              #:weak? weak?])     -> cpointer?
  v : any/c
  callback : (any/c . -> . any)
  custodian : custodian? = (current-custodian)
  at-exit? : any/c = #f
  weak? : any/c = #f
procedure
(unregister-custodian-shutdown v                 
                               registration) -> void?
  v : any/c
  registration : _cpointer
procedure
(start-atomic) -> void?
procedure
(end-atomic) -> void?
procedure
(start-breakable-atomic) -> void?
procedure
(end-breakable-atomic) -> void?
procedure
(call-as-atomic thunk) -> any
  thunk : (-> any)
procedure
(call-as-nonatomic thunk) -> any
  thunk : (-> any)
procedure
(in-atomic-mode?) -> boolean?
procedure
(call-as-nonatomic-retry-point thunk) -> any
  thunk : (-> any)
procedure
(try-atomic  thunk                                 
             default-val                           
            [#:should-give-up? give-up-proc        
             #:keep-in-order? keep-in-order?]) -> any
  thunk : (-> any)
  default-val : any/c
  give-up-proc : (-> any/c) = run-200-milliseconds
  keep-in-order? : any/c = #t
value
_id : ctype?
value
_Class : ctype?
value
_Protocol : ctype?
value
_SEL : ctype?
value
_BOOL : ctype?
value
YES : boolean?
value
NO : boolean?
syntax
(tell result-type obj-expr method-id)
(tell result-type obj-expr arg ...)
 
result-type = 
            | #:type ctype-expr
               
arg         = method-id arg-expr
            | method-id #:type ctype-expr arg-expr
syntax
(tellv obj-expr method-id)
(tellv obj-expr arg ...)
syntax
(import-class class-id ...)
syntax
(import-protocol protocol-id ...)
syntax
(define-objc-class class-id superclass-expr
  maybe-mixins
  maybe-protocols
  [field-id ...]
  method ...)
 
maybe-mixins    = 
                | #:mixins (mixin-expr ...)
                   
maybe-protocols = 
                | #:protocols (protocol-expr ...)
                   
method          = (mode result-ctype-expr (method-id) body ...+)
                | (mode result-ctype-expr (arg ...+) body ...+)
                   
mode            = +
                | -
                | +a
                | -a
                   
arg             = method-id [ctype-expr arg-id]
syntax
(define-objc-mixin (class-id superclass-id)
  maybe-mixins
  maybe-protocols
  [field-id ...]
  method ...)
syntax
self
syntax
(super-tell result-type method-id)
(super-tell result-type arg ...)
syntax
(get-ivar obj-expr field-id)
syntax
(set-ivar! obj-expr field-id value-expr)
syntax
(selector method-id)
procedure
(objc-is-a? obj cls) -> boolean?
  obj : _id
  cls : _Class
procedure
(objc_lookUpClass s) -> (or/c _Class #f)
  s : string?
procedure
(objc_getProtocol s) -> (or/c _Protocol #f)
  s : string?
procedure
(sel_registerName s) -> _SEL
  s : string?
procedure
(objc_allocateClassPair cls s extra) -> _Class
  cls : _Class
  s : string?
  extra : integer?
procedure
(objc_registerClassPair cls) -> void?
  cls : _Class
procedure
(object_getClass obj) -> _Class
  obj : _id
procedure
(class_addMethod cls                
                 sel                
                 imp                
                 type               
                 type-encoding) -> boolean?
  cls : _Class
  sel : _SEL
  imp : procedure?
  type : ctype?
  type-encoding : string?
procedure
(class_addIvar cls                
               name               
               size               
               log-alignment      
               type-encoding) -> boolean?
  cls : _Class
  name : string?
  size : exact-nonnegative-integer?
  log-alignment : exact-nonnegative-integer?
  type-encoding : string?
procedure
(object_getInstanceVariable obj name) -> _Ivar any/c
  obj : _id
  name : string?
procedure
(object_setInstanceVariable obj name val) -> _Ivar
  obj : _id
  name : string?
  val : any/c
value
_Ivar : ctype?
procedure
((objc_msgSend/typed types) obj sel arg) -> any/c
  types : (vector/c result-ctype arg-ctype ...)
  obj : _id
  sel : _SEL
  arg : any/c
procedure
((objc_msgSendSuper/typed types)     
                          super      
                          sel        
                          arg)   -> any/c
  types : (vector/c result-ctype arg-ctype ...)
  super : _objc_super
  sel : _SEL
  arg : any/c
procedure
(make-objc_super id super) -> _objc_super
  id : _id
  super : _Class
value
_objc_super : ctype?
syntax
(objc-unsafe!)
value
_NSString : ctype?
procedure
(call-with-autorelease thunk) -> any
  thunk : (-> any)
syntax
(with-autorelease expr)
procedure
(guid? v) -> boolean?
  v : any/c
procedure
(clsid? v) -> boolean?
  v : any/c
procedure
(iid? v) -> boolean?
  v : any/c
procedure
(string->guid str) -> guid?
  str : string?
procedure
(string->clsid str) -> clsid?
  str : string?
procedure
(string->iid str) -> iid?
  str : string?
procedure
(guid->string g) -> string?
  g : guid?
procedure
(guid=? g1 g2) -> boolean?
  g1 : guid?
  g2 : guid?
procedure
(progid->clsid progid) -> clsid?
  progid : string?
procedure
(clsid->progid clsid) -> (or/c string? #f)
  clsid : clsid?
procedure
(com-object? obj) -> boolean?
  obj : com-object?
procedure
(com-create-instance clsid-or-progid [where]) -> com-object?
  clsid-or-progid : (or/c clsid? string?)
  where : (or/c (one-of/c 'local 'remote) string?) = 'local
procedure
(com-release obj) -> void?
  obj : com-object?
procedure
(com-get-active-object clsid-or-progid) -> com-object?
  clsid-or-progid : (or/c clsid? string?)
procedure
(com-object-clsid obj) -> clsid?
  obj : com-object?
procedure
(com-object-set-clsid! obj clsid) -> void?
  obj : com-object?
  clsid : clsid?
procedure
(com-object-eq? obj1 obj2) -> boolean?
  obj1 : com-object?
  obj2 : com-object?
procedure
(com-type? v) -> boolean?
  v : any/c
procedure
(com-object-type obj) -> com-type?
  obj : com-object?
procedure
(com-type=? t1 t2) -> boolean?
  t1 : com-type?
  t2 : com-type?
procedure
(com-methods obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-method-type obj/type method-name)
 -> (list/c '-> (listof type-description?)
                type-description?)
  obj/type : (or/c com-object? com-type?)
  method-name : string?
procedure
(com-invoke obj method-name v) -> any/c
  obj : com-object?
  method-name : string?
  v : any/c
value
com-omit : any/c
procedure
(com-get-properties obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-get-property-type obj/type       
                       property-name) 
 -> (list/c '-> '() type-description?)
  obj/type : (or/c com-object? com-type?)
  property-name : string?
procedure
(com-get-property obj property ...+) -> any/c
  obj : com-object?
  property : string?
procedure
(com-set-properties obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-set-property-type obj/type       
                       property-name) 
 -> (list/c '-> (list/c type-description?) 'void)
  obj/type : (or/c com-object? com-type?)
  property-name : string?
procedure
(com-set-property! obj string? ...+ v) -> void?
  obj : com-object?
  string? : property
  v : any/c
procedure
(com-events obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-event-type obj/type event-name)
 -> (list/c '-> (listof type-description?) 'void)
  obj/type : (or/c com-object? com-type?)
  event-name : string?
procedure
(com-event-executor? v) -> boolean?
  v : any/c
procedure
(com-make-event-executor) -> com-event-executor?
procedure
(com-register-event-callback obj            
                             name           
                             proc           
                             com-ev-ex) -> void?
  obj : com-object?
  name : string?
  proc : procedure?
  com-ev-ex : com-event-executor?
procedure
(com-unregister-event-callback obj name) -> void?
  obj : com-object?
  name : string?
procedure
(com-object-get-iunknown obj) -> com-iunkown?
  obj : com-object?
procedure
(com-object-get-idispatch obj) -> com-idispatch?
  obj : com-object?
procedure
(com-iunknown? v) -> boolean?
  v : any/c
procedure
(com-idispatch? v) -> boolean?
  v : any/c
procedure
(type-description? v) -> boolean?
  v : any/c
procedure
(type-described? v) -> boolean?
  v : any/c
procedure
(type-describe v desc) -> type-described?
  v : any/c
  desc : type-description?
procedure
(type-described-value td) -> any/c
  td : type-described?
procedure
(type-described-description td) -> type-description?
  td : type-described?
procedure
(com-all-coclasses) -> (listof string?)
procedure
(com-all-controls) -> (listof string?)
procedure
(coclass->clsid coclass) -> clsid?
  coclass : string?
procedure
(clsid->coclass clsid) -> string?
  clsid : clsid?
syntax
(define-com-interface (_id _super-id)
  ([method-id ctype-expr maybe-alloc-spec] ...))
 
maybe-alloc-spec = 
                 | #:release-with-function function-id
                 | #:release-with-method method-id
                 | #:releases
procedure
(QueryInterface iunknown               
                iid                    
                intf-pointer-type) -> (or/c cpointer? #f)
  iunknown : com-iunknown?
  iid : iid?
  intf-pointer-type : ctype?
procedure
(AddRef iunknown) -> exact-positive-integer?
  iunknown : com-iunknown?
procedure
(Release iunknown) -> exact-nonnegative-integer?
  iunknown : com-iunknown?
procedure
(make-com-object  iunknown                
                  clsid                   
                 [#:manage? manage?]) -> com-object?
  iunknown : com-iunknown?
  clsid : (or/c clsid? #f)
  manage? : any/c = #t
syntax
(_wfun fun-option ... maybe-args type-spec ... -> type-spec
   maybe-wrapper)
syntax
(_mfun fun-option ... maybe-args type-spec ... -> type-spec
   maybe-wrapper)
syntax
(_hfun fun-option ... type-spec ... -> id output-expr)
syntax
(_hmfun fun-option ... type-spec ... -> id output-expr)
value
_GUID : ctype?
value
_GUID-pointer : ctype?
value
_HRESULT : ctype?
value
_LCID : ctype?
value
LOCALE_SYSTEM_DEFAULT : exact-integer?
procedure
(SysFreeString str) -> void?
  str : _pointer
procedure
(SysAllocStringLen content len) -> cpointer?
  content : _pointer
  len : integer?
value
IID_NULL : iid?
value
IID_IUnknown : iid?
value
_IUnknown : ctype?
value
_IUnknown-pointer : ctype?
value
_IUnknown_vt : ctype?
procedure
(windows-error msg hresult) -> any
  msg : string?
  hresult : exact-integer?
procedure
(security-guard-check-file who path perms) -> void?
  who : symbol?
  path : path-string?
  perms : (listof (or/c 'read 'write 'execute 'delete 'exists))
procedure
(_file/guard perms [who]) -> ctype?
  perms : (listof (or/c 'read 'write 'execute 'delete 'exists))
  who : symbol? = '_file/guard
value
_file/r : ctype?
value
_file/rw : ctype?
value
win64? : boolean?
value
winapi : (or/c 'stdcall 'default)
procedure
(list->cblock lst type) -> any
  lst : list?
  type : ctype?
procedure
(vector->cblock vec type) -> any
  vec : vector?
  type : type?
procedure
(vector->cpointer vec) -> cpointer?
  vec : vector?
procedure
(flvector->cpointer flvec) -> cpointer?
  flvec : flvector?
procedure
(saved-errno) -> exact-integer?
procedure
(lookup-errno sym) -> exact-integer?
  sym : (or/c 'EINTR 'EEXIST 'EAGAIN)
procedure
(cast v from-type to-type) -> any/c
  v : any/c
  from-type : ctype?
  to-type : ctype?
procedure
(cblock->list cblock type length) -> list?
  cblock : any/c
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(cblock->vector cblock type length) -> vector?
  cblock : any/c
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(ffi-obj objname lib) -> ffi-obj?
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
procedure
(ffi-obj? x) -> boolean?
  x : any/c
(ffi-obj-lib obj) -> ffi-lib?
  obj : ffi-obj?
(ffi-obj-name obj) -> string?
  obj : ffi-obj?
procedure
(ctype-basetype type) -> (or/c ctype? #f)
  type : ctype?
(ctype-scheme->c type) -> procedure?
  type : ctype?
(ctype-c->scheme type) -> procedure?
  type : ctype?
procedure
(ffi-call  ptr              
           in-types         
           out-type         
          [abi]             
           save-errno?      
           orig-place?) -> procedure?
  ptr : cpointer?
  in-types : (listof ctype?)
  out-type : ctype?
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  save-errno? : any/c
  orig-place? : any/c
procedure
(ffi-callback  proc              
               in-types          
               out-type          
              [abi               
               atomic?           
               async-apply]) -> ffi-callback?
  proc : any/c
  in-types : any/c
  out-type : any/c
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  atomic? : any/c = #f
  async-apply : (or/c #f ((-> any) . -> . any)) = #f
procedure
(ffi-callback? x) -> boolean?
  x : any/c
