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 Rust has `const` as a language-level construct to represent fixed values, and also has a std library type for one-way flag.
@djc @gvwilson typestate pattern also comes to mind?
@arichtman @gvwilson how do you see that being related to the roles defined in the paper?
@djc @gvwilson sorry - I'll read more carefully next time