        [:h2 "Use any function as a reactive value"]
 
        [:p [:code "reagent.core/track"] " takes a function, and
-       optional arguments for that function, and returns an
-       ”atom-like” value that can be derefed, and gives whatever is
+       optional arguments for that function, and gives a
+       derefable (i.e ”atom-like”) value, containing whatever is
        returned by that function. If the tracked function depends on a
        Reagent atom, the function is called again whenever that atom
        changes – just like a Reagent component function. If the value


       [:p "In other words, " [:code "@(r/track foo x)"] " gives the
       same result as " [:code "(foo x)"] " – but in the first case,
       foo is only called again when the atoms it depends on
       changes."]

       [:p "Here's an example: "]

  (:people @app-state))

(defn person-keys []
  (-> @(r/track people)
      keys
      sort))

(defn person [id]
  (-> @(r/track people)
      (get id)))

(defn name-comp [id]
  (let [p @(r/track person id)]
