<div dir="ltr">What GHC are you testing against? I suspect <a href="https://gitlab.haskell.org/ghc/ghc/merge_requests/668">https://gitlab.haskell.org/ghc/ghc/merge_requests/668</a> will fix this.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 14, 2020 at 4:20 PM Alexis King <<a href="mailto:lexi.lambda@gmail.com">lexi.lambda@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">Hi all,<br>
<br>
I discovered today that GHC never specializes functions with implicit parameters. This is not that surprising—I wouldn’t expect GHC to specialize the implicit parameters themselves—but it’s unfortunate because it means a single implicit parameter somewhere can transitively destroy specialization that would otherwise be very helpful.<br>
<br>
Is there any obstacle to specializing these functions’ other dictionaries and leaving the implicit parameters alone? That is, if I have a function<br>
<br>
    foo :: (?foo :: Bool, Show a) => a -> String<br>
<br>
could GHC specialize `foo @Int` to<br>
<br>
    foo :: (?foo :: Bool) => Int -> String<br>
<br>
treating the implicit parameter little differently from an ordinary function argument?<br>
<br>
As far as I can tell, there isn’t any real obstacle to doing this, so unless I’m missing something, I might give it a try myself. I just wanted to make sure I wasn’t missing anything before diving in.<br>
<br>
Thanks,<br>
Alexis<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>