 (defmacro defregistry
   "Defines a registry with the given name. See defregistry* for
    more information."
-  [name]
-  (defregistry* name &env))
+  ([name]
+   (defregistry* name &env))
+  ([name callback]
+   (defregistry* name callback &env)))

   utility functions that are defined implicitly.

   (defregistry* 'command)

   will result in the following functions to be defined:


   (defn reset-registered-commands! [] ...)
   (defn resolve-command [name] ...)."
  ([name]
   (defregistry* name nil nil))
  ([name env]
   (defregistry* name nil nil))
  ([name callback env]
   (let [registry-sym   (symbol (str "+" name "-registry+"))
         register-sym   (symbol (str "register-" name "!"))
         unregister-sym (symbol (str "unregister-" name "!"))
