anchor.diff:           :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
  
positive.code: (defun make-rule-from-list (method uri-template action
                              &key
                                content-type
                                query-string-bind
                                (requestp t)
                                template)
  
negative.code:   (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))
  