anchor.diff:    "Fetches an object's attributes from the data store."
     (red:hgetall (make-key class id)))
   
  -(defmacro retrieve (class forms &key connection-plist)
  +(defmacro retrieve (class &rest params)
     (let ((gclass (gensym "class"))
           (gid (gensym "id"))
           (gids (gensym "ids")))
  
positive.code:   (when auth-supplied-p
      (setf (getf *redis-default-connection* :auth) auth)))
  
  (defmacro with-connection (connection-plist &body body)
    `(redis:with-persistent-connection ,(if (null connection-plist)
                                            *redis-default-connection*
                                            connection-plist)
       ,@body))
  
  (defmacro with-transactional-connection (connection-plist &body body)
    `(with-connection ,connection-plist
       (red:multi)
       ,@body
       (red:exec)))
  
negative.code:        (unless (subtypep ,gclass 'ohm-model)
           (error 'ohm-unmanged-class-error :class ,gclass))
         ,(cond
           ((eql (car params) :all)
            `(with-connection ()
               (let ((,gids (red:smembers (make-key ,gclass 'all))))
                 (mapcar (lambda (,gid)
                           (make-persisted-instance ,gclass
                                                    ,gid
                                                    (fetch-object ,gclass ,gid)))
                         ,gids))))
           ((eql (car params) :id)
            `(with-connection ()
               (let ((,gid ,(second params)))
                 (make-persisted-instance ,gclass ,gid (fetch-object ,gclass ,gid)))))))))
  