TIL: lerp being A*(1-t)+B*t, if you lerp between the same value, say A=50 and B=50, you'll get a value that isn't 50, for some values of t. (floats) Kinda obvious in hindsight but surprised I never hit it before. I had to put in a special case for lerp. If (A==B) return A
The idea is that the contract says “if A==B, the result is undefined”. This way, you only pay the cost of checking if you know you may need to. Some use cases may be able to guarantee A!=B and should not have to pay the overhead of checking.