Conversation

What I like about linear/uniqueness types - at least how Rust does them - is that they don't make types noisier, or increase the annotation burden. (At least, not directly!) Is there any approach to solving "the problems which lifetimes solve" which is similar, or gets closer?
2
10
I think I could devise a language where “lifetimes” are syntactically correct by construction—but the explicitness of plumbing values could be an unacceptable “annotation burden”. In Kitten I’m doing a similar thing to Rust, where a type is inherently [non–]copyable/droppable.
1
2
I'd be interested in your thoughts about that to better understand the design space, even if it's not a clear/immediate improvement. :)
2
Trouble is I'm not just interested in regions and linearity/uniqueness. I also want control over the execution phase, erasure, parametericity. But it might all end up being a mess. Also dependent types are hard.
1
2