Whenever a function is detoured into, it has the ability to edit the arguments and return type.
However if a second mod detours into the same function, which return type should we use? It's ambiguous.
The solution is to leapfrog the detours.
Instead of mod A and mod B both detouring to the same function, mod B instead detours into the rust function provided by mod A.
Ex:
ModB(ModA(LuaSurface::valid(self)))) -> bool