     (:foo map))
   (fact "using keyword avoids the exception"
     (get-foo nil)
-    => nil)
-
-  (defn get-bar
-    [map]
-    (map :bar))
-  (fact
-    (get-bar nil)
-    => (throws NullPointerException)) )
+    => nil))
+
+(defn get-bar
+  [map]
+  (map :bar))
+
+(fact
+  (get-bar nil)
+  => (throws NullPointerException))
 "
 also not all collections can act as functions
 

  (transient-capable? '(1 2 3)) => false
  (transient-capable? #{1 2 3}) => true
  (transient-capable? {:a 1 :b 2}) => true
  (transient-capable? [1 2 ure and Java collections, Java maps, Java
CharSequences (including Strings), Java Iterables, Arrays, nil (null), anything
clojure.lang.Seq.

"
(facts "some examples:"3]) => true)

"
a persistent collection used as a transient is unaffected

              (assoc-in summaries ks
                        (f (get-in summaries ks init) x))))
          {} coll))

(fact "now we get two level breakup"
  (reduce-by-in (juxt :customer :product)
                #(+ %1 (:total %2)) 0 orders)
