The Third Bit: An E-Bike for the Mind

Speaking of which, do any of my programming language friends know of a type system that captures "how it's used" as opposed to "what values it's allowed to have" in the way that Sajaniemi's variable roles do? Borrow checking in Rust is kind of somewhat adjacent, but not really the same thing - any others?
@gvwilson const and final?
@gvwilson (thanks for the article btw, v interesting)