(defn
get-in
"Returns the value in a nested associative structure,\n where ks is a sequence of keys. Returns nil if the key is not present,\n or the not-found value if supplied."
{:added "1.2", :static true}
([m ks] (reduce get m ks))
([m ks not-found]
(loop
[sentinel lookup-sentinel m m ks (seq ks)]
(if-not
(nil? ks)
(let
[m (get m (first ks) sentinel)]
(if
(identical? sentinel m)
not-found
(recur sentinel m (next ks))))
m))))