   {:pre [(some? *show*)]}
   (let [pan (bind-keyword-param pan Number 0)
         tilt (bind-keyword-param tilt Number 0)]
-    (if-not (some (partial satisfies? IParam) [pan tilt])
+    (if (not-any? param? [pan tilt])
       ;; Optimize the degenerate case of all constant parameters
       (Vector2d. (make-radians pan radians) (make-radians tilt radians))
       ;; Handle the general case of some dynamic parameters

  ([value type-expected name]
   `(when (some? ~value) (check-type ~value ~type-expected ~name))))

(defn head-param?
  "Checks whether the argument is an [[IParam]] which also
  satisfies [[IHeadParam]]."

  (validate-param-type default type)
  (let [key (keyword variable)
        current (get @(:variables *show*) key)]
    (if (and (some? current) (param? current))
      ;; Found a parameter at the named variable, try to bind now.
      (do (validate-param-type current type key)
          current)  ; Binding succeeded; return underlying parameter
