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

Official Documentation

Add notes
Arities
==================================================
   [child parent]
   [h child parent]

Docstring
==================================================
  Returns true if (= child parent), or child is directly or indirectly derived from
  parent, either via a Java type inheritance relationship or a
  relationship established via derive. h must be a hierarchy obtained
  from make-hierarchy, if not supplied defaults to the global
  hierarchy

Source

(defn isa?
  "Returns true if (= child parent), or child is directly or indirectly derived from
  parent, either via a Java type inheritance relationship or a
  relationship established via derive. h must be a hierarchy obtained
  from make-hierarchy, if not supplied defaults to the global
  hierarchy"
  {:added "1.0"}
  ([child parent] (isa? global-hierarchy child parent))
  ([h child parent]
   (or (= child parent)
       (and (class? parent) (class? child)
            (. ^Class parent isAssignableFrom child))
       (contains? ((:ancestors h) child) parent)
       (and (class? child) (some #(contains? ((:ancestors h) %) parent) (supers child)))
       (and (vector? parent) (vector? child)
            (= (count parent) (count child))
            (loop [ret true i 0]
              (if (or (not ret) (= i (count parent)))
                ret
                (recur (isa? h (child i) (parent i)) (inc i))))))))

Example 1

Edit
(derive ::Feline ::Animal)
;; => nil

(derive ::Cat ::Feline)
;; => nil

(derive ::Lion ::Feline)
;; => nil

(isa? ::Lion ::Feline)
;; => true

(isa? ::Lion ::Animal)
;; => true

(isa? ::Tuna ::Feline)
;; => false

Example 2

Edit
(import 'java.util.PriorityQueue)
;; => java.util.PriorityQueue

(bases PriorityQueue)
;; => (java.util.AbstractQueue java.io.Serializable)

(import 'java.util.AbstractQueue)
;; => java.util.AbstractQueue

(isa? PriorityQueue AbstractQueue)
;; => true

(bases AbstractQueue)
;; => (java.util.AbstractCollection java.util.Queue)

(isa? PriorityQueue java.util.AbstractCollection)
;; => true

(isa? PriorityQueue java.util.Queue)
;; => true

(isa? java.util.PriorityQueue java.util.TreeMap)
;; => false

Uses on crossclj