 (defmacro gen-module-requires
   "Generate the `require` statements to pull in all necessary
   namespaces to be able to connect the modules. That is, all the
-  namespaces named in both `:extends` and `:provides`."
+  namespaces named in both `:extends` and `:provides`.
+  It seems that this should be in a separate namespace from
+  `gen-module-loads`, or the namespaces won't yet be loaded when the
+  extension calls are made."
   []
   (let [modules (read-all-modules)
         provides (->> modules

            [_#]
            (reduce
              (fn [vs# th#]
                (~add-fn vs# (~(if clojure?
                                 `deref
                                 `(fn [x#] (x#)))


(defmacro defhook
  "Macro to generate a module extension point.
  `:writer` will be a function name that should be in the `:provides`
  section of the module.edn.
  `:reader` will be deref-able and will give a collection of the
  values passed to the writer.

