
#14578: Incorrect parenthesization of types in -ddump-deriv -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: deriving Operating System: Unknown/Multiple | Architecture: Type of failure: Debugging | Unknown/Multiple information is incorrect | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): And here is why: the type `App (Compose f g) a` is produced by the function [http://git.haskell.org/ghc.git/blob/0a12d92a8f65d374f9317af2759af2b46267ad5c... typeToLHsType]. Here is the line of code that's responsible: {{{#!hs go (TyConApp tc args) = nlHsTyConApp (getRdrName tc) (map go args') where args' = filterOutInvisibleTypes tc args }}} Notice that this does not attempt to put the appropriate `HsParTy`s in place. I think an appropriate way to fix this would be to adopt the same trick that alanz has used elsewhere: apply the [http://git.haskell.org/ghc.git/blob/0a12d92a8f65d374f9317af2759af2b46267ad5c... mk_apps] function to `tc` and `args'`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14578#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler