(cond-eq? arg ..clauses)
  arg: any form
  clauses: zero or more arrs
M

Successively tests a value for equality using eq?.

cond-eq? evaluates arg and repeatedly tests it for equality against the first form in each clause, using eq?. The first matching clause is evaluated and returned.

As for cond, the final clause may start with the symbol else.

Any clause may start with the symbol any-of, followed by an array of forms. In that case, arg is compared against each form in turn.

(cond-eq? x
  ((+ 2 3)
    (prn "x is 5"))
  (any-of (3 4)
    (prn "x is 3 or 4"))
  (else
    (bail)))

; ...is equivalent to...

(let arg x)
(cond
  ((eq? x (+ 2 3))
    (prn "x is 5"))
  ((eq-any? x 3 4)
    (prn "x is 3 or 4"))
  (else
    (bail)))
cond
cond-same?