(defn as-currency
"Money amounts are transmitted as \\"$2.44\\".
Parse this and return a numeric type."
[currency-amount]
(let [negative? (re-find #"^[^\\d]*-" currency-amount)
cleaned-amount (str/replace currency-amount #"^[\\d\\.]" "")]
(bigdec
(str (when negative? "-") cleaned-amount))))