[GHC] #14341: Show instance for TypeReps is a bit broken
GHC
ghc-devs at haskell.org
Wed Oct 11 19:46:00 UTC 2017
#14341: Show instance for TypeReps is a bit broken
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Core Libraries | Version: 8.2.1
Resolution: | Keywords: Typeable
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D4084
Wiki Page: |
-------------------------------------+-------------------------------------
Description changed by dfeuer:
Old description:
> There are two problems.
>
> 1. Showing typereps of tuples can produce unnecessary parentheses:
>
> {{{
> Prelude K T> typeRep @(Int, Maybe Bool)
> (Int,(Maybe Bool))
> }}}
>
> The fix is trivial.
>
> 2. Showing typereps of ticked (i.e., lifted) tuples and lists gives hard-
> to-read results, because it does not use the usual special syntax:
>
> {{{
> Prelude K T> typeRep @'(Int, Maybe Bool)
> '(,) * * Int (Maybe Bool)
>
> Prelude K T> typeRep @'[1,2,3]
> ': Nat 1 (': Nat 2 (': Nat 3 ('[] Nat)))
> }}}
>
> Fixing the lifted tuple case is trivial. Fixing the lifted list case
> is slightly less trivial, but not hard.
New description:
There are three problems.
1. Showing typereps of tuples can produce unnecessary parentheses:
{{{
Prelude K T> typeRep @(Int, Maybe Bool)
(Int,(Maybe Bool))
}}}
The fix is trivial.
2. Showing typereps of ticked (i.e., lifted) tuples and lists gives hard-
to-read results, because it does not use the usual special syntax:
{{{
Prelude K T> typeRep @'(Int, Maybe Bool)
'(,) * * Int (Maybe Bool)
Prelude K T> typeRep @'[1,2,3]
': Nat 1 (': Nat 2 (': Nat 3 ('[] Nat)))
}}}
Fixing the lifted tuple case is trivial. Fixing the lifted list case is
slightly less trivial, but not hard.
3. Type operator applications are not shown infix.
{{{
Prelude K T> typeRep @(Maybe :*: Either Int)
:*: * Maybe (Either Int)
}}}
This is the hardest problem to fix, although it's probably not too
terribly hard. See comment:1 for thoughts.
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14341#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list