(cffi:defcstruct (cv-size :classcv-size-type)(width :int)(height :int))(defmethod cffi:translate-from-foreign (p (type cv-size-type))(let((plist (call-next-method)))(make-size :width (getf plist 'width) :height (getf plist 'height)))) and my opencv wrappers for CvGetSize and cvCreateImage, get-size and create-image, are defined like this ;;CvSizecvGetSize(constCvArr*arr)(cffi:defcfun ("cvGetSize"get-size)(:structcv-size)(arr cv-arr));;IplImage*cvCreateImage(CvSizesize,intdepth,intchannels)(cffi:defcfun ("cvCreateImage"%create-image)ipl-image (size :int64)(depth :int)(channels :int))(defun create-image (size depth channels)"Create an image with dimensions given by SIZE, DEPTH bits per channel, and CHANNELS number of channels."(let((nsize (size->int64 size)))(%create-image nsize depth channels))) here is the definition of size->int64 (DEFUN SIZE->INT64 (S)(+(SIZE-WIDTH S)(ASH (SIZE-HEIGHT S)32)))it converts get-size output which isa structure here:#S(SIZE :WIDTH 640 :HEIGHT 480)into64-bit integer,which CFFI can handle but i love the idea of the translate-foreign defmethod's so i was wondering if you can show my how to make the translate-into-foreign version of the below from method this would really make my library awesome (defmethod cffi:translate-from-foreign (p (type cv-size-type))(let((plist (call-next-method)))(make-size :width (getf plist 'width) :height (getf plist 'height)))) I was going to try stuff and add it but for the get-size output structure, it isnt a plist so not really sure what to put there for the (let((plist (call-next-method))) part, for the (make-size :width (getf plist 'width) :height (getf plist 'height))))