Skip to content
  • Ryan Scott's avatar
    Fix #15236 by removing parentheses from funTyConName · 3397396a
    Ryan Scott authored
    Currently, `funTyConName` is defined as:
    
    ```lang=haskell
    funTyConName = mkPrimTyConName (fsLit "(->)") funTyConKey funTyCon
    ```
    
    What's strange about this definition is that there are extraneous
    parentheses around `->`, which is quite unlike every other infix
    `Name`. As a result, the `:info (->)` output is totally garbled (see
    Trac #15236).
    
    It's quite straightforward to fix that particular bug by removing the
    extraneous parentheses. However, it turns out that this makes some
    test output involving `Show` instances for `TypeRep` look less
    appealing, since `->` is no longer surrounded with parentheses when
    applied prefix. But neither were any /other/ infix type constructors!
    The right fix there was to change `showTypeable` to put parentheses
    around prefix applications of infix tycons.
    
    Test Plan: ./validate
    
    Reviewers: bgamari, hvr
    
    Reviewed By: bgamari
    
    Subscribers: rwbarton, thomie, carter
    
    GHC Trac Issues: #15236
    
    Differential Revision: https://phabricator.haskell.org/D4799
    3397396a