Track where the reference points
Valen's author describes a group-borrowing model in which the compiler records a path for each reference. A reference to world.entities[0] carries a route through the owner, field, and item. If a later action replaces world.entities, that route no longer reaches the original item. A later use can then be rejected as an invalidated borrow.[1]
This is a different review question from counting mutable references. Ask whether an action breaks the recorded route before the next use.
Mutable aliasing is not the whole safety question. The lifetime of the route matters.
Function contracts carry invalidations
The proposal moves part of the safety model into function signatures. The caller needs to know which paths a call may invalidate. That can admit patterns used by C++ and reference-counted systems, but it also makes contract quality part of memory safety.[1]
Carbon's November 2025 project update confirms the trade. Its team was researching effect-annotated approaches influenced by group borrowing because they may prove more C++ patterns safe. The same update says the approach increases the complexity of function contracts.[3]
Prototype means prototype
The Valen repository calls the language a prototype that is barely past proof of concept. It says version 0.1 will come after the project is stable enough to use. The README documents a source build for a small program and warns that Rust interoperation needs a modified Rust compiler.[2]
We inspected revision 54794d0fce4691102e18641e46ca7f26574baa54. We did not build or run the compiler because the inspection host had no Rust toolchain. The article's examples and reported behavior remain author evidence. They are not an independent conformance result.
Review the route before the slogan
A useful code review card for any path-aware model has four fields. Record the owner. Record the exact descendant path. Name the action that may invalidate it. Name every use that follows. Then attach the real compiler revision and diagnostic.
The bench below teaches that reading order. It does not implement Valen's checker, parse source, or predict compiler behavior.