     a))
 
 (imp/register-implementation (complex-array 0 1))
-
+(imp/register-implementation (c/complex-number 2 3))
+

	    (m/array? m) (m/emap imag m)
      :else (error "Unable to get imaginary part of object: " m " with type " (class m)))))

;; a canoncial object used to register the complex array implementation
(def canonical-complex-array
  (let [a (complex-array 0 1)] 

    
     java.lang.Object 
     (toString [m]
       (str "#complex/complex-array [" (clojure.core.matrix.complex/real m) ", " (clojure.core.matrix.complex/imag m) "]"))
  
     clojure.lang.Seqable
     (seq [m]
