 
 (defn str->nested
   "Given a delimited text, where each token is again a delimited text, tokenize it and return a vector of nested
-  vectors of tokens. By default, the outer delimiter is a comma and the inner delimiter is a colon."
+  vectors of tokens. By default, the outer delimiter is a comma and the inner delimiter is a colon.
+  Example:
+  => (str->nested :foo \"joe: 30: male, sue: 35: female, max: 40: male\")
+  [[\"joe\" \"30\" \"male\"]
+   [\"sue\" \"35\" \"female\"]
+   [\"max\" \"40\" \"male\"]]"
   ([outer-tokenizer inner-tokenizer the-key text]
     (str->coll
       outer-tokenizer


(defn str->tuples
  "Given a delimited text, where each token is again a delimited text, tokenize it and return a vector of maps. By
  default, the outer delimiter is a comma and the inner delimiter is a colon."
  ([outer-tokenizer inner-tokenizer ks the-key text]
    (->> (str->nested outer-tokenizer inner-tokenizer the-key text)
      (mapv #(zipmap ks %))))



(defn str->vec
  "Given a delimited text, tokenize it and return a vector of tokens. By default, the delimiter is a comma.
  Example:
  => (str-vec :foo \"a, b, c\")
  [\"a\" \"b\" \"c\"]"
  ([tokenizer the-key text]
    (str->coll tokenizer identity the-key text))
  ([the-key text]
