   (fact (= Short   java.lang.Short)   => true)
   (fact (= Integer java.lang.Integer) => true)
   (fact (= Long    java.lang.Long)    => true)
+  (fact (= Float   java.lang.Float)   => true)
   (fact (= Double  java.lang.Double)  => true))
 
 (fact "Some of Clojure's numeric types are from java.math"

  (fact (type 2.0M)  => BigDecimal)
  (fact (type 2M)    => BigDecimal)
  (fact (type 2.0)   => Double)
  (fact (type (Byte. (byte 2)))   => Byte)
  (fact (type (Short. (short 2))) => Short)
  (fact (type (Integer. (int 2))) => Integer)
  (fact (type (BigInteger. "2"))  => BigInteger))

(fact "Autoboxing"
  (fact (type (byte 2))  => Byte)
  (fact (type (short 2)) => Short)
  (fact (type (int 2))   => Integer)
  (fact (type (long 2))  => Long))

(fact "Ratios are turned into Longs if possible"
  (type 4/2) => Long)

  (fact (= BigInteger java.math.BigInteger) => true))

(fact "Some of Clojure's numeric types are from clojure.lang"
  ;; These are not available without the clojure.lang. prefix.
  (fact clojure.lang.BigInt => clojure.lang.BigInt)
  (fact clojure.lang.Ratio  => clojure.lang.Ratio))

