I'm looking for the pedantic way to test whether something is an Atom or not, such as an (atom? ...) predicate in Clojure, similar to the family of (number? ...), (string? ...), (vector? ...), etc.
Given Atoms are a main language feature of Clojure, created with (atom ...), it feels wrong that I'd have to write my own custom function to test for an internal implementation class. e.g.,
(defn atom? [a] (= (type a) clojure.lang.Atom))
Is there more correct paradigm or built-in language feature I'm missing?
Note: this question is unrelated and not the same as Scheme's "atoms", (atom? ...), which are non-null cos-pairs.