 (subset-of ts :string :atom)
 (subset-of ts :coll :all)
 (subset-of ts :atom :all)
+
+(def exotic-number (difference :number
+                               (union :double :float :integer)))
 
 (def-dispatch my-plus ts get-feature)
 

    (set? x) :set
    (coll? x) :coll))

(subset-of ts :double :number)
(subset-of ts :float :number)
(subset-of ts :map :coll)

   [:double b]]
  [:special-double-add a b])

(def-set-method my-plus "Exotic addition"
  [[exotic-number a]
   [exotic-number b]]
  [:exotic (+ a b)])


(deftest test-it
  (is (= [:double-sum 7.9]
