   key-exists-without-binding-clause?
   [key key-exists-without-binding-clause-key])
 
+(defn key-exists-without-binding-clause
+  "Returns a clause that asserts the existence of a non-nil value at `key`."
+  [key]
+  (make-key-exists-without-binding-clause key))
+
 (define-record-type KeyExistsWithBindingClause
   ^{:doc "A clause that asserts the existence of a non-nil value in a map at the `key`. When evaluated, binds it's result to `binding`."}
   (make-key-exists-with-binding-clause key binding)

        `(~(fold-path path '_) :guard ~(match-value message path))
        (fold-path path (match-value message path))))

    (optional-path-matches-without-binding-clause? clause)
    {}

    (optional-path-with-default-binding-clause? clause)
    {}))


(defn reduce-lhs
  [lhss]

    (path-matches-with-binding-clause? clause)
    (conj bindings (path-matches-with-binding-clause->rhs-match message clause))

    (optional-path-without-binding-clause? clause)
    (conj bindings `[])

    (optional-path-with-default-binding-clause? clause)
