<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class="">On Aug 19, 2020, at 18:22, Viktor Dukhovni <<a href="mailto:ietf-dane@dukhovni.org" class="">ietf-dane@dukhovni.org</a>> wrote:</div><div class=""><div class=""><br class="">Though perhaps much too careful/complete a read of the documentation is<br class="">needed to see support in the documentation for the conclusions I<br class="">ultimately reached, I do believe that the text is on some level there<br class=""></div></div></blockquote><div><br class=""></div><div>I do not agree with your interpretation. :)</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">But when we get to "9.17.4. Pattern type signatures" […] we see that are they are rather different beasts, that deviate from the description in the overview.  In particular, "2" no longer holds, because these are neither generalised, nor universally quantified.<br class=""></div></div></blockquote><div><br class=""></div><div>It is true that such variables are not generalized, but the documentation does not say “generalized”—it says <i class="">rigid</i><span style="font-style: normal;" class="">. If we consider that the primary purpose of this feature is to bring existentials into scope, then there is no violation of the principle when used in the intended way. After all, existentials brought into scope via `case` are very much rigid (and distinct from all other variables).</span></div><div><span style="font-style: normal;" class=""><br class=""></span></div><div><span style="font-style: normal;" class="">It is true that GHC implements a much more flexible behavior that allows entirely different things to be brought into scope. But that is just part of the divergence from the documentation—there’s nothing that says pattern signatures are exempt from that restriction. It only states that pattern signatures that refer to unbound variables bring those variables into scope, nothing more.</span></div></div><br class=""><div class="">Of course, this is all somewhat immaterial—there is no way to objectively determine which interpretation is “correct,” and the docs are unambiguously unclear regardless, so they should be changed. But purely as a matter of friendly debate, I stand by my interpretation.</div><div class=""><br class=""></div><div class="">Alexis</div></body></html>