
#11671: Allow labels starting with uppercase with OverloadedLabels -------------------------------------+------------------------------------- Reporter: inaki | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1-rc1 (Parser) | Resolution: | Keywords: ORF Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by inaki): I should add one point: some of the possible constructors that we want to overload can be fairly generic words (`Nothing`, for instance, is one). Having the `#` character in front helps a lot in here, since it makes the distinction between `Nothing` (constructor of `Maybe a` type) and `#Nothing` (some pattern to be resolved depending on the usage location). So creating patterns explicitly easily leads to name clashes with ordinary constructors. To avoid this currently we add a final underscore (`Nothing` -> `Nothing_`), but this final underscore is easy to forget, and not that nice as a solution. Having a OverloadedLabels style solution would be much nicer. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11671#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler