(with-dyn-lib "./query.so" (deffi query "query" void (closure))) (deffi-cb query-cb int ((carray char) (ptr (array 1 size-t)))) (query (query-cb (lambda (buf sizeptr) (symacrolet ((size [sizeptr 0])) (let* ((s "Here am I") (l (length s))) (cond ((> l size) 0) (t (carray-set-length buf size) (carray-put buf s) (set size l))))))))