The library supports Objective-C interaction in two layers. The upper layer provides syntactic forms for sending messages and deriving subclasses. The lower layer is a think wrapper on the Objective-C runtime library functions. Even the upper layer is unsafe and relatively low-level compared to normal Scheme libraries, because argument and result types must be declared in terms of FFI C types (see Type Constructors).
Important: Most of the bindings documented here are available only after an (objc-unsafe!) declaration in the importing module.