It's a lot of heavy lifting. I'm not sure it actually
adds any useful value yet, but I'll continue to play
with it. It is nice that we can *sometimes* use
loops. Sometimes we can't though. And we have
to make some blind-corner evaluations that throw
dummy failures to keep the compiler from complaining
about missing cases -- despite the fact that they;ll
never be reached at compiletime. (Runtime evaluation
could be different, of course.)
I think, perhaps, a universal representation of a
dereferenced iterator might solve some of this, but
I also don't want to sink too much effort into this,
despite how much fun I'm having.
I'm still on the fence about going full `constexpr` functions
for meta-code. Overall, I think there's potential here. I'm
not aiming to replicate what `boost::mpl` or `boost::hana` do
though. This is more of an internal support mechanism for
Alepha code. As-needed I'll implement things.