        s)))
 
 (defn- indented-str-block
-  "Appends a list ls of strings to string s in a formatted block with a specific width max-len
-   and indentation indent. May be called with a basic text string and max-len and indent in which
-   case text will be split on whitespace."
+  "Appends a list ls of strings to string s in a formatted block with a specific
+   width max-len and indentation indent. May be called with a basic text string
+   and max-len and indent in which case text will be split on whitespace."
   ([txt max-len indent] (indented-str-block "" (split #" +" txt) 0 max-len indent))
   ([s ls cur-len max-len indent]
      (if (empty? ls)

   [clojure.contrib.string :only (split)]))

(defn- length-of-longest-key
  "Returns the length of the longest key of map m. Assumes m's keys are strings and returns 0 if map is empty:
   (length-of-longest-key {\"foo\" 1 \"barr\" 2 \"bazzz\" 3}) ;=> 5
   (length-of-longest-key {}) ;=> 0"


(defn- gen-padding
  "Generates a padding string starting concatting s with len times pad:
   (gen-padding \"\" 5 \"b\") ;=> \"bbbbb\"
   May be called without starting string s in which case it defaults to the
   empty string."
  ([len pad] (gen-padding "" len pad))
  ([s len pad]
     (if (> len 0)
