Resolved in [6b60dc]. It turns out the macros are not redundant: one handles keyword arguments and one doesn’t. Maybe I knew this at one point and forgot. At any rate, the resolution was to change the names of the macros and change the way they are documented.

I could have gone with a single function to handle all cases, but my thought was that perhaps I would benefit by not using <code>define-tag-function</code> in places where I didn’t need keyword arguments. I have not benchmarked this or anything, but <code>define-tag-function</code> is itself a macro that uses <code>make-keyword-procedure</code>, which seems needlessly complicated and, surely (?), slower than just <code>define</code>ing a simple function when keyword arguments are not needed.