The metaprogramming would be "cooler" but it's too clever for its own good.  The explicit routines are much more discoverable and (when I get to them) will be much easier to document.  Perhaps it's a style choice, but I prefer the way the explicit routines communicate intent to the more terse, but obscure metaprogramming technique.