 
 
 
+(defmacro defcorrelate*
+  "handy macro to define an correlation function which closes over a configuration"
+  ^{:arglists '([name docstring? [cfg] & body])}
+  [name & args]
+  (let [[docstring params & body] (if (string? (first args)) args (cons "" args))]
+    `(-def-moebius-builder :correlation ~name ~docstring ~params ~@body)))
+
+
+
 (defn as-correlate
   ([name statefulness f]
    (moebius-fn name "" :correlation statefulness f))

  [name & args]
  (let [[docstring params & body] (if (string? (first args)) args (cons "" args))]
    `(-def-moebius-function :filtering ~name ~docstring ~params ~@body)))




  [name & args]
  (let [[docstring params & body] (if (string? (first args)) args (cons "" args))]
    `(-def-moebius-function :enrichment ~name ~docstring ~params ~@body)))



(defmacro defenrich*
  "handy macro to define an enrichment function which closes over a configuration"
  ^{:arglists '([name docstring? [cfg] & body])}
  [name & args]
  (let [[docstring params & body] (if (string? (first args)) args (cons "" args))]
    `(-def-moebius-builder :enrichment ~name ~docstring ~params ~@body)))



