22414
((3) 0 () 42 ((q lib "ffi/unsafe.rkt") (q 2511 . 16) (q lib "ffi/vector.rkt") (q lib "ffi/unsafe/objc.rkt") (q quote #%foreign) (q 19138 . 23) (q lib "ffi/unsafe/com.rkt") (q 15654 . 22) (q 2166 . 13) (q 17338 . 22) (q 21476 . 22) (q 14035 . 22) (q 18167 . 24) (q lib "ffi/unsafe/atomic.rkt") (q 14825 . 22) (q lib "ffi/com-registry.rkt") (q lib "ffi/unsafe/alloc.rkt") (q lib "ffi/unsafe/nsalloc.rkt") (q 20747 . 22) (q 3314 . 4) (q 16458 . 23) (q lib "ffi/unsafe/cvector.rkt") (q 13325 . 22) (q 20018 . 22) (q 2936 . 3) (q 9266 . 25) (q lib "ffi/unsafe/define.rkt") (q 38950 . 7) (q 2791 . 6) (q lib "ffi/file.rkt") (q 3230 . 4) (q 2981 . 4) (q 2452 . 4) (q 23277 . 17) (q 2393 . 4) (q lib "ffi/unsafe/custodian.rkt") (q 39112 . 7) (q lib "ffi/unsafe/try-atomic.rkt") (q 2891 . 3) (q lib "ffi/winapi.rkt") (q 1790 . 5) (q 24131 . 7)) () (h ! (equal) ((c form c (c (? . 0) q define-cpointer-type)) q (23931 . 5)) ((c def c (c (? . 0) q _ushort)) c (? . 1)) ((c def c (c (? . 0) q _uintptr)) c (? . 1)) ((c def c (c (? . 0) q _ubyte)) c (? . 34)) ((c def c (c (? . 29) q _file/rw)) q (37855 . 2)) ((c def c (c (? . 2) q u32vector)) c (? . 9)) ((q def ((lib "ffi/unsafe/nsstring.rkt") _NSString)) q (30554 . 2)) ((c def c (c (? . 2) q s16vector-set!)) c (? . 14)) ((c def c (c (? . 0) q _string/eof)) q (3582 . 2)) ((c form c (c (? . 3) q import-protocol)) q (27381 . 2)) ((c def c (c (? . 4) q _pointer)) q (3611 . 2)) ((c form c (c (? . 0) q _ptr)) q (5897 . 6)) ((c form c (c (? . 3) q get-ivar)) q (28307 . 2)) ((c def c (c (? . 2) q u64vector->list)) c (? . 5)) ((c def c (c (? . 4) q malloc-immobile-cell)) q (12900 . 3)) ((c def c (c (? . 6) q com-iunknown?)) q (34873 . 3)) ((c def c (c (? . 0) q array-ptr)) q (7348 . 3)) ((c def c (c (? . 2) q u64vector)) c (? . 5)) ((c def c (c (? . 0) q _string*/locale)) c (? . 19)) ((c def c (c (? . 6) q type-described-description)) q (35294 . 3)) ((c def c (c (? . 6) q com-unregister-event-callback)) q (34595 . 4)) ((c def c (c (? . 6) q Release)) q (36240 . 3)) ((c def c (c (? . 2) q s8vector-length)) c (? . 11)) ((c def c (c (? . 6) q com-omit)) q (32687 . 2)) ((c def c (c (? . 2) q u64vector-length)) c (? . 5)) ((c def c (c (? . 4) q _int32)) c (? . 8)) ((c def c (c (? . 0) q default-_string-type)) q (3426 . 4)) ((c def c (c (? . 2) q u16vector->list)) c (? . 7)) ((c def c (c (? . 6) q com-set-properties)) q (33336 . 3)) ((c def c (c (? . 6) q com-get-active-object)) q (31627 . 3)) ((c def c (c (? . 2) q u16vector-set!)) c (? . 7)) ((c def c (c (? . 6) q com-get-property*)) q (33207 . 5)) ((c def c (c (? . 0) q _string/utf-8)) c (? . 30)) ((c def c (c (? . 4) q compiler-sizeof)) q (2054 . 3)) ((c def c (c (? . 0) q _sint32)) c (? . 8)) ((c form c (c (? . 0) q _?)) q (5887 . 2)) ((c def c (c (? . 13) q end-breakable-atomic)) q (26168 . 2)) ((c def c (c (? . 6) q _IUnknown_vt)) q (37352 . 2)) ((c def c (c (? . 6) q progid->clsid)) q (31155 . 3)) ((c def c (c (? . 2) q f80vector-set!)) c (? . 10)) ((c def c (c (? . 0) q _bitmask)) q (8351 . 4)) ((c def c (c (? . 4) q flvector->cpointer)) q (38189 . 3)) ((c form c (c (? . 0) q _bytes)) q (6169 . 3)) ((c def c (c (? . 4) q ptr-ref)) c (? . 25)) ((c def c (c (? . 6) q IID_IUnknown)) q (37262 . 2)) ((c def c (c (? . 2) q list->u32vector)) c (? . 9)) ((c def c (c (? . 2) q f80vector)) c (? . 10)) ((c def c (c (? . 0) q _sllong)) c (? . 1)) ((c def c (c (? . 2) q f64vector-length)) c (? . 18)) ((c def c (c (? . 4) q cpointer?)) q (8476 . 3)) ((c def c (c (? . 2) q make-s8vector)) c (? . 11)) ((c def c (c (? . 6) q com-object?)) q (31303 . 3)) ((c def c (c (? . 2) q list->f80vector)) c (? . 10)) ((c def c (c (? . 4) q ptr-offset)) q (8837 . 3)) ((c def c (c (? . 4) q _int64)) c (? . 8)) ((c def c (c (? . 2) q s64vector-ref)) c (? . 12)) ((c def c (c (? . 0) q union-ptr)) q (8109 . 3)) ((c def c (c (? . 6) q com-object-clsid)) q (31743 . 3)) ((c def c (c (? . 2) q s64vector->cpointer)) c (? . 12)) ((c def c (c (? . 6) q guid->string)) q (31023 . 3)) ((c def c (c (? . 4) q _double)) c (? . 31)) ((c def c (c (? . 3) q objc_msgSend/typed)) q (29936 . 6)) ((c def c (c (? . 4) q lookup-errno)) q (38310 . 3)) ((c def c (c (? . 0) q _intptr)) c (? . 1)) ((c def c (c (? . 3) q object_getInstanceVariable)) q (29687 . 4)) ((c form c (c (? . 0) q ->)) q (5828 . 2)) ((c def c (c (? . 2) q make-u64vector)) c (? . 5)) ((c def c (c (? . 4) q free-immobile-cell)) q (12967 . 3)) ((c def c (c (? . 0) q _bytes/eof)) q (3554 . 2)) ((c def c (c (? . 3) q NO)) q (27000 . 2)) ((c def c (c (? . 6) q type-describe)) q (35116 . 4)) ((c form c (c (? . 2) q _s16vector)) q (15606 . 3)) ((c def c (c (? . 15) q com-all-controls)) q (35440 . 2)) ((c def c (c (? . 6) q com-set-property-type)) q (33448 . 6)) ((c def c (c (? . 2) q f32vector)) c (? . 23)) ((c def c (c (? . 0) q _cpointer)) c (? . 33)) ((c form c (c (? . 6) q define-com-interface)) q (35632 . 8)) ((c def c (c (? . 2) q make-s64vector)) c (? . 12)) ((c def c (c (? . 2) q u16vector?)) c (? . 7)) ((c def c (c (? . 0) q _array/list)) q (7482 . 4)) ((c def c (c (? . 13) q start-atomic)) q (26052 . 2)) ((c def c (c (? . 4) q make-union-type)) q (7716 . 3)) ((c def c (c (? . 6) q guid=?)) q (31080 . 4)) ((c def c (c (? . 0) q _or-null)) q (3742 . 3)) ((c def c (c (? . 2) q u64vector?)) c (? . 5)) ((c def c (c (? . 4) q make-ctype)) q (1545 . 5)) ((c def c (c (? . 16) q releaser)) q (25086 . 4)) ((c def c (c (? . 2) q s16vector?)) c (? . 14)) ((c def c (c (? . 6) q type-description?)) q (34992 . 3)) ((c def c (c (? . 4) q _uint16)) c (? . 8)) ((c def c (c (? . 3) q _Class)) q (26881 . 2)) ((c def c (c (? . 2) q f80vector->list)) c (? . 10)) ((c form c (c (? . 2) q _u64vector)) q (19970 . 3)) ((c form c (c (? . 2) q _s8vector)) q (14779 . 3)) ((c form c (c (? . 0) q define-c)) q (1291 . 2)) ((c def c (c (? . 15) q clsid->coclass)) q (35564 . 3)) ((c form c (c (? . 3) q define-objc-class)) q (27424 . 22)) ((c form c (c (? . 17) q with-autorelease)) q (30655 . 2)) ((c def c (c (? . 6) q com-set-property!)) q (33675 . 6)) ((c def c (c (? . 6) q com-object-eq?)) q (31915 . 4)) ((c def c (c (? . 2) q u32vector-set!)) c (? . 9)) ((c def c (c (? . 0) q _enum)) q (8166 . 5)) ((c def c (c (? . 2) q s8vector)) c (? . 11)) ((c def c (c (? . 16) q allocator)) q (24832 . 4)) ((c def c (c (? . 26) q make-not-available)) q (24696 . 3)) ((c def c (c (? . 3) q objc_lookUpClass)) q (28507 . 3)) ((c def c (c (? . 16) q retainer)) q (25219 . 5)) ((c def c (c (? . 4) q ffi-obj)) q (38806 . 4)) ((c def c (c (? . 4) q ptr-add!)) q (9127 . 5)) ((c def c (c (? . 0) q _sint)) c (? . 1)) ((c def c (c (? . 0) q ffi-obj-ref)) q (1334 . 5)) ((c def c (c (? . 2) q list->u64vector)) c (? . 5)) ((c def c (c (? . 35) q unregister-custodian-shutdown)) q (25882 . 5)) ((c def c (c (? . 4) q _string/ucs-4)) q (3119 . 2)) ((c def c (c (? . 37) q try-atomic)) q (26473 . 9)) ((c def c (c (? . 17) q call-with-autorelease)) q (30581 . 3)) ((c def c (c (? . 21) q cvector->list)) q (22982 . 3)) ((c def c (c (? . 0) q _intmax)) c (? . 28)) ((c form c (c (? . 3) q selector)) q (28396 . 2)) ((c def c (c (? . 4) q _void)) q (3096 . 2)) ((c def c (c (? . 6) q com-get-property)) q (33039 . 5)) ((c def c (c (? . 0) q _sshort)) c (? . 1)) ((c def c (c (? . 4) q _bool)) q (3073 . 2)) ((c def c (c (? . 4) q ffi-callback)) q (39724 . 13)) ((c def c (c (? . 4) q _ufixint)) c (? . 24)) ((c def c (c (? . 4) q ffi-obj?)) c (? . 27)) ((c form c (c (? . 6) q _hfun)) q (36781 . 2)) ((c def c (c (? . 3) q _Ivar)) q (29913 . 2)) ((c def c (c (? . 0) q ffi-lib)) q (54 . 11)) ((c def c (c (? . 2) q list->u8vector)) c (? . 22)) ((c def c (c (? . 2) q list->s8vector)) c (? . 11)) ((c def c (c (? . 2) q u16vector-length)) c (? . 7)) ((c def c (c (? . 2) q f64vector?)) c (? . 18)) ((c def c (c (? . 2) q f80vector-ref)) c (? . 10)) ((c def c (c (? . 6) q _HRESULT)) q (36974 . 2)) ((c def c (c (? . 2) q s32vector)) c (? . 20)) ((c def c (c (? . 6) q _GUID-pointer)) q (36943 . 2)) ((c def c (c (? . 0) q _gcable)) q (3803 . 3)) ((c def c (c (? . 0) q _string*/latin-1)) c (? . 19)) ((c def c (c (? . 6) q com-event-type)) q (33967 . 5)) ((c def c (c (? . 0) q _uword)) c (? . 32)) ((c def c (c (? . 2) q list->s32vector)) c (? . 20)) ((c def c (c (? . 0) q cpointer-push-tag!)) c (? . 41)) ((c def c (c (? . 6) q com-object-get-iunknown)) q (34704 . 3)) ((c form c (c (? . 6) q _wfun)) q (36591 . 3)) ((c form c (c (? . 2) q _f80vector)) q (22182 . 3)) ((c def c (c (? . 4) q ctype-c->scheme)) c (? . 36)) ((c def c (c (? . 21) q cvector-length)) q (22537 . 3)) ((c def c (c (? . 3) q class_addMethod)) q (28971 . 11)) ((c def c (c (? . 2) q list->f64vector)) c (? . 18)) ((c def c (c (? . 4) q set-ptr-offset!)) q (8981 . 5)) ((c def c (c (? . 2) q u16vector->cpointer)) c (? . 7)) ((c form c (c (? . 6) q _hmfun)) q (36850 . 2)) ((c def c (c (? . 2) q s64vector->list)) c (? . 12)) ((c def c (c (? . 2) q s32vector-ref)) c (? . 20)) ((c def c (c (? . 2) q u16vector)) c (? . 7)) ((c def c (c (? . 0) q cast)) q (38405 . 5)) ((c def c (c (? . 3) q object_getClass)) q (28910 . 3)) ((c def c (c (? . 0) q list->cblock)) q (37951 . 4)) ((c form c (c (? . 6) q _mfun)) q (36686 . 3)) ((c def c (c (? . 2) q s8vector->cpointer)) c (? . 11)) ((c def c (c (? . 2) q u8vector->cpointer)) c (? . 22)) ((c def c (c (? . 2) q f32vector-set!)) c (? . 23)) ((c def c (c (? . 4) q _fixint)) c (? . 24)) ((c def c (c (? . 2) q make-s16vector)) c (? . 14)) ((c def c (c (? . 0) q _llong)) c (? . 1)) ((c def c (c (? . 3) q objc_getProtocol)) q (28581 . 3)) ((c def c (c (? . 2) q u8vector)) c (? . 22)) ((c def c (c (? . 2) q s64vector)) c (? . 12)) ((c form c (c (? . 2) q _u32vector)) q (18119 . 3)) ((c def c (c (? . 21) q cvector?)) q (22483 . 3)) ((c def c (c (? . 4) q memcpy)) q (10788 . 24)) ((c def c (c (? . 4) q ptr-set!)) c (? . 25)) ((c def c (c (? . 0) q _file)) q (3531 . 2)) ((c form c (c (? . 26) q define-ffi-definer)) q (24302 . 7)) ((c def c (c (? . 3) q objc_registerClassPair)) q (28840 . 3)) ((c def c (c (? . 2) q f64vector->cpointer)) c (? . 18)) ((c def c (c (? . 4) q ffi-obj-name)) c (? . 27)) ((c def c (c (? . 4) q offset-ptr?)) q (8770 . 3)) ((c def c (c (? . 2) q f32vector->list)) c (? . 23)) ((c def c (c (? . 6) q type-described-value)) q (35219 . 3)) ((c def c (c (? . 0) q _size)) c (? . 28)) ((c def c (c (? . 4) q _string/utf-16)) q (3150 . 2)) ((c def c (c (? . 6) q string->iid)) q (30964 . 3)) ((c def c (c (? . 6) q LOCALE_SYSTEM_DEFAULT)) q (37023 . 2)) ((c def c (c (? . 0) q _ssize)) c (? . 28)) ((c def c (c (? . 0) q make-c-parameter)) q (1030 . 6)) ((c def c (c (? . 4) q _gcpointer)) q (3637 . 2)) ((c def c (c (? . 2) q s16vector-length)) c (? . 14)) ((c def c (c (? . 4) q _int8)) c (? . 8)) ((c def c (c (? . 4) q _ufixnum)) c (? . 38)) ((c def c (c (? . 3) q YES)) q (26977 . 2)) ((c def c (c (? . 13) q end-atomic)) q (26088 . 2)) ((c def c (c (? . 6) q _IUnknown)) q (37290 . 2)) ((c def c (c (? . 21) q list->cvector)) q (23047 . 4)) ((c def c (c (? . 3) q _BOOL)) q (26954 . 2)) ((c def c (c (? . 4) q make-array-type)) q (6853 . 4)) ((c def c (c (? . 2) q s32vector-set!)) c (? . 20)) ((c def c (c (? . 0) q array-ref)) q (7130 . 4)) ((c def c (c (? . 6) q com-release)) q (31563 . 3)) ((c def c (c (? . 2) q s8vector-ref)) c (? . 11)) ((c def c (c (? . 2) q u64vector-ref)) c (? . 5)) ((c def c (c (? . 39) q winapi)) q (37907 . 2)) ((c def c (c (? . 0) q _string)) q (3401 . 2)) ((c def c (c (? . 29) q security-guard-check-file)) q (37482 . 5)) ((c def c (c (? . 21) q cvector)) q (22395 . 4)) ((c form c (c (? . 0) q define-fun-syntax)) q (5838 . 2)) ((c def c (c (? . 4) q prop:cpointer)) q (13279 . 2)) ((c def c (c (? . 0) q _string/locale)) c (? . 30)) ((c def c (c (? . 4) q ctype-sizeof)) c (? . 40)) ((c form c (c (? . 2) q _u8vector)) q (13989 . 3)) ((c form c (c (? . 2) q _u16vector)) q (16410 . 3)) ((c def c (c (? . 29) q _file/r)) q (37830 . 2)) ((c def c (c (? . 6) q com-object-type)) q (32073 . 3)) ((c def c (c (? . 6) q com-type?)) q (32018 . 3)) ((c def c (c (? . 2) q make-f32vector)) c (? . 23)) ((c def c (c (? . 4) q vector->cpointer)) q (38120 . 3)) ((c def c (c (? . 2) q make-u32vector)) c (? . 9)) ((c form c (c (? . 0) q _fun)) q (4906 . 23)) ((c def c (c (? . 2) q s8vector->list)) c (? . 11)) ((c def c (c (? . 2) q s32vector->cpointer)) c (? . 20)) ((c def c (c (? . 4) q cpointer-tag)) q (11920 . 3)) ((c def c (c (? . 2) q make-s32vector)) c (? . 20)) ((c def c (c (? . 6) q com-create-instance)) q (31370 . 4)) ((c def c (c (? . 3) q sel_registerName)) q (28658 . 3)) ((c def c (c (? . 3) q objc-is-a?)) q (28425 . 4)) ((c def c (c (? . 4) q _uint64)) c (? . 8)) ((c def c (c (? . 0) q ctype->layout)) q (1947 . 4)) ((c def c (c (? . 2) q s32vector-length)) c (? . 20)) ((c def c (c (? . 0) q get-ffi-obj)) q (598 . 6)) ((c def c (c (? . 0) q union-ref)) q (7903 . 4)) ((c def c (c (? . 6) q com-object-get-idispatch)) q (34787 . 3)) ((c def c (c (? . 4) q ffi-call)) q (39309 . 13)) ((c def c (c (? . 0) q _uint)) c (? . 1)) ((c def c (c (? . 4) q _double*)) c (? . 31)) ((c def c (c (? . 13) q start-breakable-atomic)) q (26122 . 2)) ((c def c (c (? . 6) q com-event-executor?)) q (34147 . 3)) ((c form c (c (? . 21) q _cvector)) q (22230 . 3)) ((c def c (c (? . 6) q com-get-properties)) q (32712 . 3)) ((c def c (c (? . 4) q end-stubborn-change)) q (12828 . 3)) ((c def c (c (? . 0) q _ptrdiff)) c (? . 28)) ((c def c (c (? . 2) q f64vector-set!)) c (? . 18)) ((c form c (c (? . 0) q define-cstruct)) q (6596 . 9)) ((c def c (c (? . 2) q u8vector-length)) c (? . 22)) ((c def c (c (? . 6) q IID_NULL)) q (37238 . 2)) ((c def c (c (? . 3) q object_setInstanceVariable)) q (29792 . 5)) ((c def c (c (? . 2) q f64vector->list)) c (? . 18)) ((c form c (c (? . 3) q super-tell)) q (28227 . 3)) ((c def c (c (? . 6) q QueryInterface)) q (35905 . 7)) ((c def c (c (? . 2) q u16vector-ref)) c (? . 7)) ((c def c (c (? . 2) q u32vector->list)) c (? . 9)) ((c def c (c (? . 6) q iid?)) q (30790 . 3)) ((c def c (c (? . 15) q coclass->clsid)) q (35492 . 3)) ((c def c (c (? . 4) q _scheme)) q (3690 . 2)) ((c def c (c (? . 0) q _sint8)) c (? . 8)) ((c def c (c (? . 21) q cvector-set!)) q (22857 . 5)) ((c def c (c (? . 3) q class_addIvar)) q (29309 . 11)) ((c def c (c (? . 2) q s64vector-length)) c (? . 12)) ((c form c (c (? . 3) q self)) q (28215 . 2)) ((c def c (c (? . 0) q _list-struct)) q (6412 . 5)) ((c def c (c (? . 0) q array-length)) q (7405 . 3)) ((c def c (c (? . 3) q objc_allocateClassPair)) q (28718 . 5)) ((c def c (c (? . 6) q clsid->progid)) q (31224 . 3)) ((c def c (c (? . 29) q _file/guard)) q (37669 . 4)) ((c form c (c (? . 2) q _f32vector)) q (20699 . 3)) ((c def c (c (? . 2) q s16vector-ref)) c (? . 14)) ((c def c (c (? . 0) q _sword)) c (? . 32)) ((c def c (c (? . 4) q _uint8)) c (? . 8)) ((c def c (c (? . 2) q u64vector-set!)) c (? . 5)) ((c def c (c (? . 2) q list->u16vector)) c (? . 7)) ((c def c (c (? . 6) q com-invoke)) q (32559 . 5)) ((c def c (c (? . 2) q s32vector->list)) c (? . 20)) ((c def c (c (? . 0) q _sint16)) c (? . 8)) ((c def c (c (? . 6) q com-events)) q (33863 . 3)) ((c def c (c (? . 13) q call-as-atomic)) q (26212 . 3)) ((c def c (c (? . 2) q make-u16vector)) c (? . 7)) ((c def c (c (? . 2) q list->f32vector)) c (? . 23)) ((c def c (c (? . 3) q _objc_super)) q (30503 . 2)) ((c def c (c (? . 4) q memset)) q (11552 . 12)) ((c def c (c (? . 2) q u64vector->cpointer)) c (? . 5)) ((c def c (c (? . 2) q u32vector->cpointer)) c (? . 9)) ((c def c (c (? . 2) q make-f80vector)) c (? . 10)) ((c def c (c (? . 0) q _ullong)) c (? . 1)) ((c def c (c (? . 4) q saved-errno)) q (38266 . 2)) ((c def c (c (? . 4) q set-cpointer-tag!)) q (11983 . 4)) ((c def c (c (? . 0) q union-set!)) q (7996 . 5)) ((c def c (c (? . 21) q make-cvector*)) q (23136 . 5)) ((c def c (c (? . 6) q SysFreeString)) q (37070 . 3)) ((c def c (c (? . 15) q com-all-coclasses)) q (35387 . 2)) ((c def c (c (? . 2) q f32vector->cpointer)) c (? . 23)) ((c form c (c (? . 3) q define-objc-mixin)) q (28088 . 6)) ((c def c (c (? . 21) q make-cvector)) q (22280 . 4)) ((c def c (c (? . 2) q u8vector?)) c (? . 22)) ((c def c (c (? . 4) q ptr-add)) q (8630 . 5)) ((c form c (c (? . 26) q provide-protected)) q (24786 . 2)) ((c def c (c (? . 13) q in-atomic-mode?)) q (26349 . 2)) ((c def c (c (? . 0) q _union)) q (7788 . 3)) ((c def c (c (? . 2) q f64vector)) c (? . 18)) ((c def c (c (? . 2) q u32vector?)) c (? . 9)) ((c def c (c (? . 6) q _LCID)) q (37000 . 2)) ((c def c (c (? . 6) q make-com-object)) q (36333 . 7)) ((c def c (c (? . 0) q _cpointer/null)) c (? . 33)) ((c def c (c (? . 2) q f80vector->cpointer)) c (? . 10)) ((c def c (c (? . 2) q s64vector-set!)) c (? . 12)) ((c def c (c (? . 0) q _int)) c (? . 1)) ((c def c (c (? . 0) q _sintptr)) c (? . 1)) ((c def c (c (? . 4) q _float)) c (? . 31)) ((c def c (c (? . 0) q _sbyte)) c (? . 34)) ((c def c (c (? . 4) q ffi-lib?)) q (0 . 3)) ((c def c (c (? . 0) q _array)) q (6967 . 4)) ((c def c (c (? . 2) q s32vector?)) c (? . 20)) ((c def c (c (? . 2) q s16vector->list)) c (? . 14)) ((c def c (c (? . 3) q make-objc_super)) q (30411 . 4)) ((c def c (c (? . 0) q function-ptr)) q (5693 . 4)) ((c def c (c (? . 35) q register-custodian-shutdown)) q (25396 . 11)) ((c def c (c (? . 4) q _symbol)) q (3205 . 2)) ((c def c (c (? . 6) q _GUID)) q (36920 . 2)) ((c def c (c (? . 6) q com-make-event-executor)) q (34212 . 2)) ((c def c (c (? . 0) q _string*/utf-8)) c (? . 19)) ((c def c (c (? . 0) q array-set!)) q (7229 . 5)) ((c def c (c (? . 6) q com-methods)) q (32232 . 3)) ((c def c (c (? . 4) q malloc)) q (12076 . 16)) ((c def c (c (? . 2) q f64vector-ref)) c (? . 18)) ((c def c (c (? . 0) q _word)) c (? . 32)) ((c def c (c (? . 4) q ffi-callback?)) q (40198 . 3)) ((c def c (c (? . 0) q _cprocedure)) q (3863 . 19)) ((c def c (c (? . 6) q AddRef)) q (36151 . 3)) ((c def c (c (? . 4) q ctype-scheme->c)) c (? . 36)) ((c def c (c (? . 37) q call-as-nonatomic-retry-point)) q (26391 . 3)) ((c def c (c (? . 2) q s16vector->cpointer)) c (? . 14)) ((c def c (c (? . 0) q _string/latin-1)) c (? . 30)) ((c def c (c (? . 6) q _IUnknown-pointer)) q (37317 . 2)) ((c def c (c (? . 2) q s8vector?)) c (? . 11)) ((q form ((lib "ffi/objc.rkt") objc-unsafe!)) q (30532 . 2)) ((c def c (c (? . 4) q _int16)) c (? . 8)) ((c def c (c (? . 3) q _Protocol)) q (26905 . 2)) ((c def c (c (? . 6) q com-type=?)) q (32145 . 4)) ((c def c (c (? . 2) q f80vector-length)) c (? . 10)) ((c def c (c (? . 2) q f32vector-ref)) c (? . 23)) ((c def c (c (? . 2) q u8vector-set!)) c (? . 22)) ((c def c (c (? . 21) q cvector-ptr)) q (22689 . 3)) ((c form c (c (? . 2) q _s64vector)) q (19090 . 3)) ((c def c (c (? . 2) q f80vector?)) c (? . 10)) ((c form c (c (? . 0) q _vector)) q (6129 . 2)) ((c def c (c (? . 0) q _slong)) c (? . 1)) ((c def c (c (? . 0) q vector->cblock)) q (38034 . 4)) ((c def c (c (? . 2) q u8vector-ref)) c (? . 22)) ((c def c (c (? . 2) q make-f64vector)) c (? . 18)) ((c def c (c (? . 6) q com-object-set-clsid!)) q (31813 . 4)) ((c def c (c (? . 4) q memmove)) q (10016 . 24)) ((c def c (c (? . 4) q ptr-equal?)) q (8531 . 4)) ((c def c (c (? . 0) q cblock->list)) q (38520 . 5)) ((c form c (c (? . 3) q tell)) q (27022 . 9)) ((c def c (c (? . 0) q _racket)) q (3665 . 2)) ((c def c (c (? . 4) q cpointer-gcable?)) q (8909 . 3)) ((c def c (c (? . 0) q cblock->vector)) q (38661 . 5)) ((c form c (c (? . 0) q _list)) q (5979 . 9)) ((c def c (c (? . 2) q f32vector?)) c (? . 23)) ((c def c (c (? . 6) q SysAllocStringLen)) q (37133 . 4)) ((c def c (c (? . 6) q com-register-event-callback)) q (34273 . 9)) ((c def c (c (? . 4) q ffi-obj-lib)) c (? . 27)) ((c def c (c (? . 2) q s16vector)) c (? . 14)) ((c def c (c (? . 0) q _long)) c (? . 1)) ((c form c (c (? . 3) q set-ivar!)) q (28345 . 2)) ((c def c (c (? . 6) q type-described?)) q (35055 . 3)) ((c def c (c (? . 4) q _path)) q (3182 . 2)) ((c def c (c (? . 3) q _SEL)) q (26932 . 2)) ((c def c (c (? . 2) q list->s16vector)) c (? . 14)) ((c def c (c (? . 0) q _uintmax)) c (? . 28)) ((c def c (c (? . 0) q set-ffi-obj!)) q (835 . 6)) ((c form c (c (? . 2) q _s32vector)) q (17290 . 3)) ((c def c (c (? . 21) q cvector-type)) q (22624 . 3)) ((c def c (c (? . 0) q _short)) c (? . 1)) ((c def c (c (? . 6) q com-method-type)) q (32337 . 6)) ((c def c (c (? . 4) q _fixnum)) c (? . 38)) ((c def c (c (? . 6) q clsid?)) q (30738 . 3)) ((c def c (c (? . 39) q win64?)) q (37881 . 2)) ((c def c (c (? . 4) q make-cstruct-type)) q (6205 . 5)) ((c def c (c (? . 2) q u8vector->list)) c (? . 22)) ((c def c (c (? . 0) q union?)) q (7851 . 3)) ((c def c (c (? . 6) q guid?)) q (30687 . 3)) ((c def c (c (? . 0) q _array/vector)) q (7598 . 4)) ((c def c (c (? . 2) q u32vector-length)) c (? . 9)) ((c def c (c (? . 2) q u32vector-ref)) c (? . 9)) ((c def c (c (? . 6) q string->clsid)) q (30901 . 3)) ((c def c (c (? . 0) q register-finalizer)) q (13038 . 4)) ((c def c (c (? . 0) q array?)) q (7078 . 3)) ((c def c (c (? . 6) q com-idispatch?)) q (34932 . 3)) ((c def c (c (? . 4) q _fpointer)) q (3715 . 2)) ((c def c (c (? . 4) q ctype-alignof)) c (? . 40)) ((c form c (c (? . 3) q import-class)) q (27344 . 2)) ((c def c (c (? . 4) q ctype-basetype)) c (? . 36)) ((c def c (c (? . 13) q call-as-nonatomic)) q (26279 . 3)) ((c def c (c (? . 0) q _sint64)) c (? . 8)) ((c def c (c (? . 2) q list->s64vector)) c (? . 12)) ((c def c (c (? . 2) q s8vector-set!)) c (? . 11)) ((c form c (c (? . 0) q _box)) q (5967 . 2)) ((c def c (c (? . 2) q s64vector?)) c (? . 12)) ((c def c (c (? . 3) q objc_msgSendSuper/typed)) q (30108 . 9)) ((c def c (c (? . 4) q ctype?)) q (1738 . 3)) ((c form c (c (? . 2) q _f64vector)) q (21428 . 3)) ((c def c (c (? . 4) q _uint32)) c (? . 8)) ((c def c (c (? . 21) q cvector-ref)) q (22756 . 4)) ((c def c (c (? . 2) q f32vector-length)) c (? . 23)) ((c def c (c (? . 0) q cpointer-has-tag?)) c (? . 41)) ((c def c (c (? . 0) q _byte)) c (? . 34)) ((c def c (c (? . 6) q windows-error)) q (37382 . 4)) ((c def c (c (? . 4) q make-sized-byte-string)) q (13153 . 4)) ((c def c (c (? . 6) q com-get-property-type)) q (32824 . 6)) ((c def c (c (? . 0) q _ulong)) c (? . 1)) ((c def c (c (? . 4) q _longdouble)) q (3044 . 2)) ((c def c (c (? . 6) q string->guid)) q (30840 . 3)) ((c def c (c (? . 2) q make-u8vector)) c (? . 22)) ((c def c (c (? . 16) q deallocator)) q (24950 . 4)) ((c def c (c (? . 3) q _id)) q (26860 . 2)) ((c form c (c (? . 3) q tellv)) q (27280 . 3)) ((c def c (c (? . 4) q free)) q (12772 . 3))))
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 = (eq? 'global (system-type 'so-mode))
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
_size : ctype?
_ssize : ctype?
_ptrdiff : ctype?
_intmax : ctype?
_uintmax : ctype?
value
_fixnum : ctype?
_ufixnum : ctype?
value
_fixint : ctype?
_ufixint : ctype?
value
_float : ctype?
_double : ctype?
_double* : ctype?
value
_longdouble : 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
(_bytes o len-expr)
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
         | #:no-equal
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 : byte?
(u8vector? v) -> boolean?
  v : any/c
(u8vector-length vec) -> exact-nonnegative-integer?
  vec : u8vector?
(u8vector-ref vec k) -> byte?
  vec : u8vector?
  k : exact-nonnegative-integer?
(u8vector-set! vec k val) -> void?
  vec : u8vector?
  k : exact-nonnegative-integer?
  val : byte?
(list->u8vector lst) -> u8vector?
  lst : (listof byte?)
(u8vector->list vec) -> (listof byte?)
  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 : (integer-in -128 127)
(s8vector? v) -> boolean?
  v : any/c
(s8vector-length vec) -> exact-nonnegative-integer?
  vec : s8vector?
(s8vector-ref vec k) -> (integer-in -128 127)
  vec : s8vector?
  k : exact-nonnegative-integer?
(s8vector-set! vec k val) -> void?
  vec : s8vector?
  k : exact-nonnegative-integer?
  val : (integer-in -128 127)
(list->s8vector lst) -> s8vector?
  lst : (listof (integer-in -128 127))
(s8vector->list vec) -> (listof (integer-in -128 127))
  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 : (integer-in -32768 32767)
(s16vector? v) -> boolean?
  v : any/c
(s16vector-length vec) -> exact-nonnegative-integer?
  vec : s16vector?
(s16vector-ref vec k) -> (integer-in -32768 32767)
  vec : s16vector?
  k : exact-nonnegative-integer?
(s16vector-set! vec k val) -> void?
  vec : s16vector?
  k : exact-nonnegative-integer?
  val : (integer-in -32768 32767)
(list->s16vector lst) -> s16vector?
  lst : (listof (integer-in -32768 32767))
(s16vector->list vec) -> (listof (integer-in -32768 32767))
  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 : (integer-in 0 65535)
(u16vector? v) -> boolean?
  v : any/c
(u16vector-length vec) -> exact-nonnegative-integer?
  vec : u16vector?
(u16vector-ref vec k) -> (integer-in 0 65535)
  vec : u16vector?
  k : exact-nonnegative-integer?
(u16vector-set! vec k val) -> void?
  vec : u16vector?
  k : exact-nonnegative-integer?
  val : (integer-in 0 65535)
(list->u16vector lst) -> u16vector?
  lst : (listof (integer-in 0 65535))
(u16vector->list vec) -> (listof (integer-in 0 65535))
  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 : (integer-in -2147483648 2147483647)
(s32vector? v) -> boolean?
  v : any/c
(s32vector-length vec) -> exact-nonnegative-integer?
  vec : s32vector?
(s32vector-ref vec k) -> (integer-in -2147483648 2147483647)
  vec : s32vector?
  k : exact-nonnegative-integer?
(s32vector-set! vec k val) -> void?
  vec : s32vector?
  k : exact-nonnegative-integer?
  val : (integer-in -2147483648 2147483647)
(list->s32vector lst) -> s32vector?
  lst : (listof (integer-in -2147483648 2147483647))
(s32vector->list vec)
 -> (listof (integer-in -2147483648 2147483647))
  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 : (integer-in 0 4294967295)
(u32vector? v) -> boolean?
  v : any/c
(u32vector-length vec) -> exact-nonnegative-integer?
  vec : u32vector?
(u32vector-ref vec k) -> (integer-in 0 4294967295)
  vec : u32vector?
  k : exact-nonnegative-integer?
(u32vector-set! vec k val) -> void?
  vec : u32vector?
  k : exact-nonnegative-integer?
  val : (integer-in 0 4294967295)
(list->u32vector lst) -> u32vector?
  lst : (listof (integer-in 0 4294967295))
(u32vector->list vec) -> (listof (integer-in 0 4294967295))
  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 : (integer-in -9223372036854775808 9223372036854775807)
(s64vector? v) -> boolean?
  v : any/c
(s64vector-length vec) -> exact-nonnegative-integer?
  vec : s64vector?
(s64vector-ref vec k)
 -> (integer-in -9223372036854775808 9223372036854775807)
  vec : s64vector?
  k : exact-nonnegative-integer?
(s64vector-set! vec k val) -> void?
  vec : s64vector?
  k : exact-nonnegative-integer?
  val : (integer-in -9223372036854775808 9223372036854775807)
(list->s64vector lst) -> s64vector?
  lst : (listof (integer-in -9223372036854775808 9223372036854775807))
(s64vector->list vec)
 -> (listof (integer-in -9223372036854775808 9223372036854775807))
  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 : (integer-in 0 18446744073709551615)
(u64vector? v) -> boolean?
  v : any/c
(u64vector-length vec) -> exact-nonnegative-integer?
  vec : u64vector?
(u64vector-ref vec k) -> (integer-in 0 18446744073709551615)
  vec : u64vector?
  k : exact-nonnegative-integer?
(u64vector-set! vec k val) -> void?
  vec : u64vector?
  k : exact-nonnegative-integer?
  val : (integer-in 0 18446744073709551615)
(list->u64vector lst) -> u64vector?
  lst : (listof (integer-in 0 18446744073709551615))
(u64vector->list vec)
 -> (listof (integer-in 0 18446744073709551615))
  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 : real?
(f32vector? v) -> boolean?
  v : any/c
(f32vector-length vec) -> exact-nonnegative-integer?
  vec : f32vector?
(f32vector-ref vec k) -> real?
  vec : f32vector?
  k : exact-nonnegative-integer?
(f32vector-set! vec k val) -> void?
  vec : f32vector?
  k : exact-nonnegative-integer?
  val : real?
(list->f32vector lst) -> f32vector?
  lst : (listof real?)
(f32vector->list vec) -> (listof real?)
  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 : real?
(f64vector? v) -> boolean?
  v : any/c
(f64vector-length vec) -> exact-nonnegative-integer?
  vec : f64vector?
(f64vector-ref vec k) -> real?
  vec : f64vector?
  k : exact-nonnegative-integer?
(f64vector-set! vec k val) -> void?
  vec : f64vector?
  k : exact-nonnegative-integer?
  val : real?
(list->f64vector lst) -> f64vector?
  lst : (listof real?)
(f64vector->list vec) -> (listof real?)
  vec : f64vector?
(f64vector->cpointer vec) -> cpointer?
  vec : f64vector?
syntax
(_f64vector mode maybe-len)
_f64vector
procedure
(make-f80vector len) -> f80vector?
  len : exact-nonnegative-integer?
(f80vector val ...) -> f80vector?
  val : extflonum?
(f80vector? v) -> boolean?
  v : any/c
(f80vector-length vec) -> exact-nonnegative-integer?
  vec : f80vector?
(f80vector-ref vec k) -> extflonum?
  vec : f80vector?
  k : exact-nonnegative-integer?
(f80vector-set! vec k val) -> void?
  vec : f80vector?
  k : exact-nonnegative-integer?
  val : extflonum?
(list->f80vector lst) -> f80vector?
  lst : (listof extflonum?)
(f80vector->list vec) -> (listof extflonum?)
  vec : f80vector?
(f80vector->cpointer vec) -> cpointer?
  vec : f80vector?
syntax
(_f80vector mode maybe-len)
_f80vector
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 : (or/c string?
                   (cons/c string? list?))
procedure
(com-get-property* obj property v ...) -> any/c
  obj : com-object?
  property : string?
  v : any/c
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 property ...+ v) -> void?
  obj : com-object?
  property : (or/c string?
                   (cons/c string? list?))
  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
