Description
A quick simple implementation seems to be 8x faster, avoiding the whole multiple-dispatch approach.
Also it should give us more flexibility to unify with variadic/commutative patterns as explored in #1592
This would make our current dependency on unification/kanren completely optional (the latter should already be optional), reducing our default dependencies