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 my brain says something something intrinsic vs extrinsic typing (https://ncatlab.org/nlab/show/intrinsic+and+extrinsic+views+of+typing) for the conceptual aspect

and for something more like what a programming language offers would be parametric polymorphism aka type classes where “what” you act on doesn’t matter but you have capabilities that limit/define the operations on it

@gvwilson but… reading your post more deeply that’s not quite getting to what you are asking. will have a think