 
 ;;;; ___________________________________________________________________________
 
-(fact (type (- 2N 1N)) => BigInt)
-
-(fact (type (/ 4N 2N)) => BigInt)
-(fact (type (/ 2N 4N)) => Ratio)
+(fact (type (- 2N 1N)) => clojure.lang.BigInt)
+
+(fact (type (/ 4N 2N)) => clojure.lang.BigInt)
+(fact (type (/ 2N 4N)) => clojure.lang.Ratio)
 
 
 ;;;; ___________________________________________________________________________

(ns clojure-the-language.clojure-numerics-test
  (:require [midje.sweet :refer :all])
  (:import clojure.lang.BigInt ;; **** I'm surprised this is needed.
           clojure.lang.Ratio) ;; **** I'm surprised this is needed.
  )

;;;; ___________________________________________________________________________
;;;; ---- Numeric types ----

;;; 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)

