store/[org.clojure/clojure "1.8.0"] clj::clojure.core/supers

Official Documentation

Add notes
Arities
==================================================
   [class]

Docstring
==================================================
  Returns the immediate and indirect superclasses and interfaces of c, if any

Source

(defn supers
  "Returns the immediate and indirect superclasses and interfaces of c, if any"
  {:added "1.0"
   :static true}
  [^Class class]
  (loop [ret (set (bases class)) cs ret]
    (if (seq cs)
      (let [c (first cs) bs (bases c)]
        (recur (into1 ret bs) (into1 (disj cs c) bs)))
      (not-empty ret))))

Example 1

Edit
;;find superclasses and interfaces of Java objects...
(supers Object)
;; => nil

(supers String)
;; => #{java.lang.Comparable java.lang.CharSequence java.io.Serializable java.lang.Object}

;;...or Java interfaces
(supers javax.naming.Name)
;; => #{java.lang.Cloneable java.lang.Comparable java.io.Serializable}

;;Also with clojure types...
(defrecord MyThing [a b c])
;; => user.MyThing

(supers MyThing)
;; => #{clojure.lang.Counted java.lang.Iterable clojure.lang.IKeywordLookup
;;      clojure.lang.IObj clojure.lang.IPersistentMap clojure.lang.Associative
;;      clojure.lang.Seqable java.util.Map clojure.lang.IMeta
;;      java.io.Serializable java.lang.Object
;;      clojure.lang.IPersistentCollection clojure.lang.ILookup}

Uses on crossclj