(defclass condition ()  ((name    :initarg :name    :initform 'nil    :accessor name    :type symbol)   (operation    :initarg :operation    :initform 'nil    :accessor operation    :type symbol)   (args    :initarg :args    :initform '(nil)    :accessor args    :type list))  (:documentation "Class for condition structure")  )(defun unknown-type-meg (type)  (lol-error-msg    (format nil           "The type ~S is not yet implemented~%when evaluating test." type)))(defmethod test ((object t) (test condition))  (let ((op (operation test))        (type-op nil)        (args (append (list object) (args test))))    (setq type-op (symbol-function op))    (cond ((functionp type-op)           (apply op args))          ((vectorp type-op)           (eval `(,op ,.args)))          (t (unknown-type-meg type-op)))))(defmethod test ((object t) (test list))  (mapcar #'(lambda (x) (test object x))          test))#|(setq a '(t nil))(setq f 'and)(symbol-function f)(eval `(,f ,.a))(test 0       (make-instance 'condition :operation 'equalp :args '(0)))(test -1       (make-instance 'condition :operation '< :args '(0)))(test nil       (make-instance 'condition :operation 'and :args '(t)))(test nil       (make-instance 'condition :operation 'or :args '(t)))(test 0       (make-instance 'condition :operation 'equalp :args '(0)))|##|(defun condition-constructor |#