(gns/disjoint? 'Number '(not java.io.Serializable)) is wrong
Since every Number is Serializable, then Number should be disjoint with (not Serializable), but the code does not reflect this.
clojure-rte.rte-core> (gns/disjoint? 'Number '(not java.io.Serializable))
false
clojure-rte.rte-core> (ancestors Number)
#{java.io.Serializable java.lang.Object}
clojure-rte.rte-core>