Allow labels starting with uppercase with OverloadedLabels
The following program
{-# LANGUAGE OverloadedLabels, DataKinds, FlexibleInstances,
MultiParamTypeClasses #-}
import GHC.OverloadedLabels
instance IsLabel "Three" Int where
fromLabel _ = 3
test :: Int
test = #Three
main :: IO ()
main = print test
fails to compile in ghc 8.0 with a parse error (while it works as expected if we replace "Three" -> "three"). This may be a conscious design decision, but if not I figured I would ask if it would be possible to allow such labels starting with uppercase letters.
I run into this when working on adding support for OverloadedLabels to the gobject-introspection bindings (autogenerated bindings for gtk, etc.), where it would be natural in a few places to write overloaded labels starting with a capital letter. Not hugely important, but sometimes aesthetically more pleasing (imho), and I am not aware of a good reason to forbid them. Perhaps there is one?
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.1-rc1 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |