most of the advanced typesystems are in completely-mutation-free functional programming land, *and for good reason*
mutation-at-a-distance is effectively the ability to corrupt anyone else's view of the data
you can get around this with GC, but your types can't be too fancy
Conversation
Also F* requires you to write code in a restricted subset of the language (Low*) if you want 1 😟 - it's nice that Rust lets you have a highish level of language that automates a bunch of this lowering you'd otherwise need to do by hand.
2
4
I'm not sure… probably? I think it would be neat if a language let you do more with separation logic directly, but that would probably require more work from the programmer, with less of the automation the Rust's type system provides.
1
4
Yeah I've been interested in graph and hypergraph stuff - more from a user-oriented perspective. Like, doing dependencies in types and terms nicely, allowing for out of order declarations/definitions of fields/parameters, etc.
1
1
Like, trying to get away from the positionalness that seems to pervade a great deal of type theory (eg. currying etc). I think having proper support for named graphs would be super nice from a user perspective.
1
2
But yeah, I stuggle because I'm really not good at graph stuff, and I need to somehow come up with a type checking and efficient normalization/conversion algorithm for it if I want to actually use it in my type checker.
1
2
There's stuff out there on 'graph reduction' and 'graph rewriting', but a lot of it just seems to be on regular lambda terms, rather than the graphs I'm after…

