             [cljs.pprint :refer [pprint write]]
             [cljs-morphic.morph :refer [redefine
                                         move-morph without set-prop add-morphs-to add-morph
-                                        submorphs properties description changes $morph it morph-lens]])
+                                        submorphs properties description optimization changes $morph it morph-lens =>]])
   (:require-macros [cljs.test :refer (is deftest run-tests testing)]
                    [cljs-morphic.macros :refer [rectangle ellipse image]]))
 

(deftest test-loop-mapping
  (testing "Changing an unbound property of a looped morph, alters the prototype"
    (is (= (-> expression-world
             (putback [($morph "b") submorphs 0 submorphs 1 properties :fill] "red")
             (fetch description))
           (with-out-str 
             (pprint '(rectangle {:id "world" :position {:x 0 :y 0}}
                                 (ellipse {:id "b" :position {:x 42 :y 42}}
                                          (map (fn [a b]
                                                 (ellipse {:id (str a b)
                                                           :extent {:x a :y b}
                                                           :position {:x 10 :y 42}
                                                           :fill "red"})) (range 3) (range 3))
                                          (ellipse {:id "tea" :fill "black"})
                                          (ellipse {:id "milk" :fill "white"}))

                                                     (ellipse {:id (str a b)
                                                               :extent {:x a :y b}
                                                               :position {:x 10 :y 42}})) (range 3) (range 3))
                                            (=> "11" :extent {:x 42 :y 42}))
                                          (ellipse {:id "tea" :fill "black"})
                                          (ellipse {:id "milk" :fill "white"}))
                                 (image {:id "c" :position {:x 100 :y 100}}
