     (=-and-same-type (inc' 1) 2) => true)
   (fact "...do not demote"
     (type (dec' (inc' Long/MAX_VALUE)))
-    => BigInt))
+    => clojure.lang.BigInt))
 
 (def boxed-max-long Long/MAX_VALUE)
 


;;;; ___________________________________________________________________________

(fact (type (- 2N 1N)) => BigInt)

(fact (type (/ 4N 2N)) => BigInt)
(fact (type (/ 2N 4N)) => Ratio)


;;;; ___________________________________________________________________________

;;; Clojure's numeric types (some of which are Java types)

(fact (type 2)    => Long)
(fact (type 2)    => java.lang.Long)

;; **** I'm surprised clojure.lang.xxxx is needed for BigInt and Ratio.

(fact (type 2N)   => clojure.lang.BigInt)

(fact (type 2/3)  => clojure.lang.Ratio)

(fact (type 2.0M) => BigDecimal)
(fact (type 2.0M) => java.math.BigDecimal)
(fact (type 2M)   => BigDecimal)

(fact (type 2.0)  => Double)
(fact (type 2.0)  => java.lang.Double)

(fact (type 4/2)  => Long)

