This makes use of our Leibniz-like type EqTypes to remove several casts. This equips operations that are doing identity reduces to prove to scalac that the input value type is the same as the output.
The main value here is just to remove casts in current and future optimization code. Each cast is a danger, even when correct, because it
makes is more tolerant of casts which in other cases may be unsafe
may incorrectly become unsafe due to code change, but not detected by the compiler during refactoring.
This makes use of our Leibniz-like type EqTypes to remove several casts. This equips operations that are doing identity reduces to prove to scalac that the input value type is the same as the output.
The main value here is just to remove casts in current and future optimization code. Each cast is a danger, even when correct, because it