Linear types syntax: multiplicity annotations on lets
This is a continuation of #18460 : we want to support the multiplicity annotation on
let x # p = … in … let x # p :: a = … in …
See the linear types proposal for more.
There is quite a bit of work here. That's why I made it a separate issue of #18460 . There are a number of shortcuts in the code where we simply assume that
let binders have multiplicity
Many. Since there is no way to make them otherwise. And even if we had been careful to not make such assumptions, the fact that all
let binders are indeed
Many means that the code would probably be incorrect.