I agree with Alan. While I believe that Rémi is correct insofar as you can write “var” in place of a type in any type pattern “T x”, in a deconstruction pattern “P(...) [d]” the occurrence of P is not a type; rather, it names a deconstructor.

Exactly right.

It does so happen that right now all deconstructors (like all constructors) share the name of an associated type, but it is important not to confuse them. You cannot replace a deconstructor name with “var” any more than you can write “new var()” or “new MyInterface()”.

or `new var[3]` or `import var` or `Foo<var> = e`.

Reply via email to