links-lang / links

Links: Linking Theory to Practice for the Web
http://www.links-lang.org
Other
330 stars 42 forks source link

Mutual blocks that mix frozen and unfrozen functions can allow quantifiers to escape their scope #699

Open slindley opened 5 years ago

slindley commented 5 years ago

Now that we can mark functions as frozen (#688), we can write mutual blocks with one frozen function and one non-frozen function, allowing definitions like:

mutual {
  ~fun f(x) { x }
  fun g(x) { f(x) }
}

This allows quantifiers to escape their scope, similar to #678, meaning f uses the quantifiers bound by g's type.

jamescheney commented 4 years ago

Meeting discussion: as a first step it seems reasonable to disallow mixing frozen and unfrozen things. Alternatively @jstolarek suggests fixing #678 might address this.

Also seems related to #684.

jamescheney commented 4 years ago

@SimonJF we discussed this a bit further today and I think the consensus was:

You are away, I am just making this note now.

jamescheney commented 4 years ago

This is milestoned 0.9.2, which we hoped to get released around now. Is it likely to be resolved in the next week or so, or should we postpone it?

(0.9.2 is needed as a bugfix release due to #807 )