 string and returns a lazy sequence of results.
 
 It doesn't clear up properly in all cases, for example if the sequence
-isn't fully consumed you may cause a resource leak.
-
-TODO: reimplement with proper resource handling."
+isn't fully consumed you may cause a resource leak."
+
+  ;; TODO: reimplement interfaces with proper resource handling.
   (query-dataset [this sparql-string model])
 
   (update! [this sparql-string]))

  (rollback [repo]
    (-> repo .rollback)))

(defmacro with-transaction [repo & forms]
  "Wraps the given forms in a transaction on the supplied repository.
  Exceptions are rolled back on failure."
  `(try
    (pr/begin ~repo)
    (let [return# (do ~@forms)]

                           (sesame-statement->IStatement msg)))]
          (map read-rdf statements))))))

(defn shutdown
  "Cleanly shutsdown the repository."
  [repo]
  (.shutDown repo))
