A New Way to Think About Borrow Checking (In Reverse)

Travel backwards in time, so that you already know the future

Oct 18, 2026  —  Evan Ovadia

Have you ever had a weird idea, and then it worked, but you can't really believe it?

That's what I'm feeling right now, about Valen's borrow checker.

Because it travels backward through time.

Or, to be less dramatic, it walks functions backwards, which is still very weird.

Years ago, if you told me it would be good to iterate a function in reverse, I would have called you crazy.

It turns out, there's actually some really good reasons to do this, and it's fairly common when you're doing e.g. optimization passes. 0 But I don't think anyone's done this for checking memory safety.