
#8822: Allow -- ^ Haddock syntax on record constructors -------------------------------------+------------------------------------- Reporter: Fuuzetsu | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.9 (Parser) | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: Unknown/Multiple | Difficulty: Moderate (less Type of failure: None/Unknown | than a day) Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------- Changes (by goldfire): * difficulty: Unknown => Moderate (less than a day) Comment: I took a look at this, and it requires more happy-fu than I've got at the moment. Suppose that we implemented parsing as requested, Then, the problem is that the parser gets mightily confused when it sees {{{ data Foo = Bar -- ^ urk }}} What should it expect next? A `|` and another constructor? Or a `{` and a list of fields? Given the current way constructors are parsed (as ''types'', to allow the possibility of infix constructors), there's not an easy way to restructure things to answer this question (that I can see). On the plus side, I think that solving this problem would make it easier to implement something I've wanted: the ability to annotate individual constructor arguments, like so: {{{ data Foo = Bar Int -- ^ urk Double -- ^ blah }}} which would currently be difficult to parse. If someone wants to restructure this section of the parser, please go for it! :) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8822#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler