 (defmacro deftx
   "Define a function that creates a transaction. The first entry of the
   definitions argument vector will be bound to the database used during the
-  execution of the transaction. Further arguments are optional."
+  execution of the transaction. Further arguments are optional. While
+  the resulting functions have access to the object representing the database
+  any modifications they make to it will be lost."
   {:arglists '([fn-name [db & args] & body]
                [fn-name doc-string [db & args] & body])}
   [fn-name & body]

            [fhofherr.clj-db-util.db :as db-repr]))

;; Wrapper for a transaction. `op` is a function of one argument returning
;; a map {::connection con ::value v}. The argument to `op` is the database
;; currently in use.
(defrecord Transaction [op])


  [db v]
  v)

;; Can't use deftx here as we need to return con* for the ::db.
;; If we would use deftx con would be returned.
(defn tx-bind
  "Take a transacton `tx` containting a value `v` and a function `f` of
