-ddump-types vs -fprint-explicit-foralls, and symbol-ness of worker/wrapper names [Re: [commit: ghc] master: Pretty-print the following TyThings via their IfaceDecl counterpart: * AnId * ACoAxiom * AConLike (065c35a) (fwd)]
Johan Tibell
johan.tibell at gmail.com
Mon Mar 17 15:25:55 UTC 2014
Sounds good to me.
On Mon, Mar 17, 2014 at 3:23 PM, Dr. ÉRDI Gergő <gergo at erdi.hu> wrote:
> Exactly, the problem is precisely that $foo is regarded as an infix
> operator in that code path, so with my change, it would be classified as
> prefix.
> On Mar 17, 2014 10:10 PM, "Simon Peyton Jones" <simonpj at microsoft.com>
> wrote:
>
>> Do they show up in –ddump-simpl? It would be nice to keep that output
>> as readable as possible, as there are quite a few of us that read it on a
>> regular basis.
>>
>>
>>
>> I don’t think so (because –ddump-simpl doesn’t print **any** operators
>> in parens) but I could be wrong, and I agree that would be bad.
>>
>>
>>
>> Does that mean that any operator that starts with $ will now not be
>> considered infix for printing purposes?
>>
>>
>>
>> No, I believe that Gergo’s suggestion is that a function be considered
>> infix operator (for display purposes) only if all its characters are
>> operator chars, rather than just the first one.
>>
>>
>>
>> Simon
>>
>>
>>
>> *From:* Johan Tibell [mailto:johan.tibell at gmail.com]
>> *Sent:* 17 March 2014 14:00
>> *To:* Simon Peyton Jones
>> *Cc:* Dr. ERDI Gergo; GHC Devs
>> *Subject:* Re: -ddump-types vs -fprint-explicit-foralls, and symbol-ness
>> of worker/wrapper names [Re: [commit: ghc] master: Pretty-print the
>> following TyThings via their IfaceDecl counterpart: * AnId * ACoAxiom *
>> AConLike (065c35a) (fwd)]
>>
>>
>>
>> On Mon, Mar 17, 2014 at 2:45 PM, Simon Peyton Jones <
>> simonpj at microsoft.com> wrote:
>>
>> | The one interesting case is T4306 which fails because the generated
>> name
>>
>> | $wupd is regarded as an infix name, and thus with my new code is
>> | rendered as
>> |
>> | ($wupd) :: GHC.Prim.Double# -> GHC.Prim.Double#
>> |
>> | instead of the old
>> |
>> | $wupd :: GHC.Prim.Double# -> GHC.Prim.Double#
>>
>> I think it'd also be ok just to accept this output too. These "$wxx"
>> names are generated by GHC and won't show up in user output. It doesn't
>> much matter displaying them in parens.
>>
>>
>>
>> Do they show up in -ddump-simpl? It would be nice to keep that output as
>> readable as possible, as there are quite a few of us that read it on a
>> regular basis.
>>
>>
>>
>> But changing isLexVarSym is probably equally fine too. I think (worth a
>> check) that it's only called for display purposes, and not in any
>> performance-critical parts.
>>
>> Whichever you choose, add a Note with isLexVarSym to explain the issue
>> and the choice.
>>
>>
>>
>> Does that mean that any operator that starts with $ will now not be
>> considered infix for printing purposes?
>>
>>
>>
>> -- Johan
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140317/65462174/attachment.html>
More information about the ghc-devs
mailing list