
#15365: Argument-less infix declarations printed without parentheses in -ddump- splices -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Template | Version: 8.4.3 Haskell | Keywords: | 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: -------------------------------------+------------------------------------- Compile this: {{{#!hs {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -ddump-splices #-} module Bug where $([d| type (|||) = Either (&&&) :: Bool -> Bool -> Bool (&&&) = (&&) data (***) |]) }}} And you'll get this: {{{ $ /opt/ghc/8.4.3/bin/ghci Bug.hs GHCi, version 8.4.3: http://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from /home/rgscott/.ghci [1 of 1] Compiling Bug ( Bug.hs, interpreted ) Bug.hs:(6,3)-(12,6): Splicing declarations [d| (&&&_a1xt) :: Bool -> Bool -> Bool (&&&_a1xt) = (&&) type |||_a1xs = Either data ***_a1xr |] ======> type |||_a5bW = Either (&&&_a5bV) :: Bool -> Bool -> Bool (&&&_a5bV) = (&&) data ***_a5bX Ok, one module loaded. }}} Notice the pretty-printed declarations of `type |||_a5bW` and `data ***_a5bX`, which are lacking some necessary parentheses. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15365 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler