
#10059: :i doesn't work for ~ -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: GHCi | Version: 7.11 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Other | Test Case: Blocked By: | Blocking: Related Tickets: #10056, #12023 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): After some digging, it turns out that the reason this doesn't work is because the `identifier` parser production doesn't catch `(~)`. It turns out that this patch: {{{#!diff diff --git a/compiler/parser/Parser.y b/compiler/parser/Parser.y index c6face8..06a5722 100644 --- a/compiler/parser/Parser.y +++ b/compiler/parser/Parser.y @@ -629,6 +629,8 @@ identifier :: { Located RdrName } | qconop { $1 } | '(' '->' ')' {% ams (sLL $1 $> $ getRdrName funTyCon) [mj AnnOpenP $1,mu AnnRarrow $2,mj AnnCloseP $3] } + | '(' '~' ')' {% ams (sLL $1 $> $ eqTyCon_RDR) + [mop $1,mj AnnTilde $2,mcp $3] } ----------------------------------------------------------------------------- -- Backpack stuff }}} Is enough to make `:info (~)` go through: {{{ λ> :info (~) class (a ~ b) => (~) (a :: k) (b :: k) -- Defined in ‘Data.Type.Equality’ instance [incoherent] forall k (a :: k) (b :: k). (a ~ b) => a ~ b -- Defined in ‘Data.Type.Equality’ }}} (The pretty-printing of the class definition of `(~)` is gnarly, though—I'm still figuring out how to work around that.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10059#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler