Main logic sorted, now just to add generic traversals.
It compiles...

But it seems the way I'm doing it now is a tad on the horrifically
flawed side, since at this point the type variables aren't instantiated.