<html><body><div dir=""><div dir="ltr">
    <br><br>
    <div class="gmail_quote" dir="ltr">
        <div dir="ltr" class="gmail_attr">On 1 Apr 2021 at 09:59:18, Vladislav Zavialov (int-index) <<a href="mailto:vlad.z.4096@gmail.com">vlad.z.4096@gmail.com</a>> wrote:<br></div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            
<div>
<div>
    <blockquote type="cite">  It’s clear that (~) is a special name anyway, because it does not respect the enforced convention on type constructors<br></blockquote><br>To me, it is not clear at all. What convention do you have in mind? (~) is not that different from, say, (+), which is a valid type operator:<br><br>  class a + b   -- accepted<br></div></div></blockquote><div class="gmail_quote"><br></div>I meant the usual convention that type constructors must start with a capital letter or the : symbol. But in this case I had forgotten that with TypeOperators on, those conventions behave differently for types than for terms.</div><div class="gmail_quote" dir="ltr"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><br><blockquote type="cite"> If we agreed that TypeOperators is almost always on (because of GHC2021), why not simply export this from the Prelude?<br></blockquote><br>Exporting from Prelude is not a panacea: without a compatibility fallback, users of custom preludes will be affected. The proposed migration story means that for 8 releases, no existing code will break at all.<br></div></div></blockquote><div class="gmail_quote" dir="ltr"><br></div>But those custom preludes would have to be updated anyway, right?</div><div class="gmail_quote" dir="ltr"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><br>Also, (~) is a special, magical constraint, like Coercible and Typeable. Since the proposal drops the requirement of GADTs and TypeFamilies to use it, the idea is to (eventually) require an explicit import of Data.Type.Equality to indicate the use of (~) in the code, for the same reason that we ask the users to import Data.Coerce and Data.Typeable/Type.Reflection<br><br></div>
</div>
        </blockquote>
    </div>
</div></div></body></html>