 ;;; Clojure's numeric types (some of which are Java types)
 
 (fact (type 2)    => Long)
-(fact (type 2N)   => BigInt)
-(fact (type 2/3)  => Ratio)
+(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.0M) => BigDecimal)
+
 (fact (type 2.0)  => Double)
+(fact (type 2.0)  => java.lang.Double)
 
 (fact (type 4/2)  => Long)
 

(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 ----


(fact (type (java.math.BigInteger. "2")) => java.math.BigInteger)

;;; From /Clojure Programming/, p427: "double is the only representation that
;;; is inherently inexact".

