<div dir="auto">I think it would be good to raise an issue on the GHC GitLab. It would obviously be a nice feature, and the GHC devs are best positioned to figure out if it's worth the time and trouble. Any such check will surely be imprecise, since deriving via instances can take lots of forms, but it'd be nice to catch simple cases. Presumably it'd be a warning and not an error.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 12, 2021, 1:30 PM Viktor Dukhovni <<a href="mailto:ietf-dane@dukhovni.org">ietf-dane@dukhovni.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
GHC accepts:<br>
<br>
    {-# LANGUAGE DerivingStrategies, DerivingVia #-}<br>
    newtype Foo = Foo Int deriving (Show, Eq) via (Bar)<br>
    newtype Bar = Bar Int deriving (Show, Eq) via (Foo)<br>
<br>
should there be any effort to avoid circular definitions?<br>
<br>
Of course one could always implement an explicit `show` method that<br>
diverges, so perhaps this is no worse, but on the other hand, statically<br>
deciding divergence looks potentially easier in this case...  On the<br>
other hand actual definitions like this seem unlikely in practice, so<br>
perhaps not worth burning precious compiler cycles to detect them?<br>
<br>
-- <br>
    Viktor.<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>