anchor.diff:         (with-float-traps-restored
            ,@actual-body))))
   
  -(defmacro c-array->list (array count &optional (type :pointer))
  -  (once-only (array)
  -    (with-gensyms (i)
  -      `(loop for ,i below ,count collect (mem-aref ,array ',type ,i)))))
  +(defun c-array->list (array count &optional (type :pointer))
  +  (loop for i below count collect (mem-aref array type i)))
   
   ;;;; ## GLFW Types
   (defcenum (key-action)
  
positive.code:   (defmethod expand-from-foreign (value (type float-traps-masked-type))
      `(with-float-traps-saved-and-masked ,value)))
  
  ;;;; ## Helper Macros
  (defmacro define-glfw-callback (&whole whole name args &body body)
    "Define a foreign callback. This macro is a thin wrapper around
  CFFI's defcallback that takes care of GLFW specifics."
  
negative.code: (defun get-video-modes (monitor)
    "Returns list of available video modes for the supplied monitor."
    (with-foreign-object (count :int)
      (c-array->list (foreign-funcall "glfwGetVideoModes" monitor monitor :pointer count
  				    :pointer)
          (mem-ref count :int)
          '(:struct video-mode))))
  
  (defcfun ("glfwGetVideoMode" get-video-mode) (:pointer (:struct video-mode))
    (monitor monitor))
  