<div dir="auto">So this actually is a very good point!</div><div dir="auto"><br></div><div dir="auto">Happily, the technological steps needed to resolve issues that other comments so far have raised point to a better fix!</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Borrowing from the 2011 paper, we would write the following </div><div dir="auto"><br></div><div dir="auto">‘’’</div><div dir="auto">class Functor (f : Type/representational -> Type)  where </div><div dir="auto">‘’’</div><div dir="auto"><br></div><div dir="auto">Basically this then pushes the info into kind signatures.  As was originally intended. And role inferred/ annotated kind signatures provides a mechanism for gnd to work again for monad transformers and unvoxed vector </div><div dir="auto"><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 4, 2021 at 5:50 AM Roman Cheplyaka <<a href="mailto:roma@ro-che.info">roma@ro-che.info</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">On 03/01/2021 17.59, Carter Schonwald wrote:<br>
> this seems like it'd be best done via something like changing the<br>
> functor class definition to<br>
> <br>
> ```<br>
> class (forall c d .  Coercible c d => Coercible (f c) (f d))  ) =><br>
> Functor f where ..<br>
> ```<br>
<br>
I think it's important we keep the definitions of Functor and other<br>
fundamental classes understandable by newcomers, and this change would<br>
make the definition look scary for a marginal benefit.<br>
<br>
Roman<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div></div>