Clojure contains a set of combinators that are implemented in a similar, but slightly different way. That is, they are implemented as a complete set of variadic overloads on both the call-side and also on the functions that they return. Visually, they all tend to look something like:
To build this type of function for each combinator is tedious and error-prone.
There must be a way to implement a macro that takes a "specification" of a combinator including:
3. do stuff template
4. do variadic stuff template
And builds something like the function foo above. This macro should be able to implement the current batch of combinators (assuming that http://dev.clojure.org/jira/browse/CLJ-730 is completed first for the sake of verification).