anchor.diff:    (check-type method keyword)
     (check-type uri-template (or list string))
     (check-type action (or list symbol))
  +  (check-type precondition (or function null))
     (when (stringp uri-template)
       (setf uri-template (list :normal uri-template)))
     (setf action (alexandria:ensure-list action))
  
positive.code: (defun make-rule-from-list (method uri-template action
                              &key
                                content-type
                                query-string-bind
                                (requestp t)
                                template)
  
negative.code:          :initarg :mode
           :reader rule-mode
           :type keyword)
     (precondition :documentation "A function designates the precondition of matching this rule."
                   :initarg :precondition
                   :reader rule-precondition
                   :type function)
     (uri-template :documentation "URI template of paths handled by the action in this rule"
                   :initarg :uri-template
                   :reader rule-uri-template
  