here is the way CvMemStorage is defined

typedef struct CvMemStorage
{
    int signature;
    CvMemBlock* bottom;           /* First allocated block.                   */
    CvMemBlock* top;              /* Current memory block - top of the stack. */
    struct  CvMemStorage* parent; /* We get new blocks from parent as needed. */
    int block_size;               /* Block size.                              */
    int free_space;               /* Remaining free space in current block.   */
}
CvMemStorage;


bu i get

unknown CFFI type: (:STRUCT CV-MEM-STORAGE).
   [Condition of type SIMPLE-ERROR]

when i wrap like this....i know lisp is known for recursion how do i bypass this
(defcstruct cv-mem-storage
    (signature :int)
    (bottom (:pointer (:struct cv-mem-block)))
    (top (:pointer (:struct cv-mem-block)))
    (parent (:pointer (:struct cv-mem-storage)))
    (block-size :int)
    (free-space :int))