@starsandspirals Hey Dani! I had a question about the "Entente Cordiale" paper. In the copy rule what do you mean with "smuggle out a value which pretends to be truly unique.". I cannot think of an example for this. Related: https://t.co/LlubhAXu5s
@starsandspirals Thanks a lot for the reply! :) Additional question: is it then true that `clone t1 as x in t2` could be changed to `clone t`? I guess in the paper this syntax is chosen to make it clear it's some kind of monad, or is there another reason?
@GabriellaG439 Hindley-Milner with only top-level generlization is also very simple. But I feel RankN and forall subtyping is something you'd like to keep, is that true?
@GabriellaG439 You might be interested in the paper "Spine-local type inference", it's also about bidirectional typechecking without unification. Also have you considered just sticking to Hindley-Milner? I think everything stays pretty simple in that case. No scope checking needed.
@PTOOP@EremondiJoey Do you think we'll ever find a way to get inductive-inductive types from a fixpoint? Or is there something fundamentally different about those.
@GabriellaG439@antonycourtney I'm sorry, I don't quite understand what you mean. Do you mean in the approach where you store mutable references in the type AST itself?
@GabriellaG439 I think for System F without subtyping things can stay simple. For each meta associate a set of in-scope type variables, then during occurs check also check for out of scope type variables...just an idea.
@GabriellaG439 If you stick to Hindley-Milner unification is very simple. But once you include higher-ranked types you have to keep track of the type variable scoping which is trickier. And then if you also want some subtyping between the foralls...difficult.