[Haskell-cafe] About 'Overloaded functions are not your friend' line in GHC manual

David Menendez dave at zednenem.com
Fri Jan 11 20:34:18 UTC 2019


Are you talking about instances such as Show a => Show (Maybe a)? If
the fields of a record are fixed types, it seems like GHC would be
able to inline the dictionaries.

On Fri, Jan 11, 2019 at 1:14 PM Brandon Allbery <allbery.b at gmail.com> wrote:
>
> Only up to a point. Recursive uses — such as show, which delegates to other Show instances for record fields, etc. — are problematic.
>
> On Fri, Jan 11, 2019 at 1:04 PM Johannes Waldmann <johannes.waldmann at htwk-leipzig.de> wrote:
>>
>>
>> At run-time, only the branch (Left/Right) is "picked" at run-time.
>> For each branch, the "show" instance is determined at compile-time.
>>
>> The problem is that such instances are represented by dictionaries,
>> and this adds extra cost (extra arguments) to function calls -
>> but only in those cases where these dictionaries
>> are not inlined (that is, removed) statically.
>>
>> But I am thinking that GHC has become very good at inlining.
>>
>> - J.W.
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>
>
>
> --
> brandon s allbery kf8nh
> allbery.b at gmail.com
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.



-- 
Dave Menendez <dave at zednenem.com>
<http://www.eyrie.org/~zednenem/>


More information about the Haskell-Cafe mailing list