[GHC] #7667: Template Haskell fails to recognize type operator/function +
GHC
cvs-ghc at haskell.org
Wed Feb 6 16:46:07 CET 2013
#7667: Template Haskell fails to recognize type operator/function +
--------------------------------------+-------------------------------------
Reporter: andygill | Owner:
Type: bug | Status: new
Priority: normal | Component: Template Haskell
Version: 7.6.2 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: GHC rejects valid program | Blockedby:
Blocking: | Related:
--------------------------------------+-------------------------------------
The following message is issued for a valid TH program.
{{{
Main.hs:7:1:
Illegal type constructor or class name: `+'
When splicing a TH declaration:
type instance GHC.TypeLits.+ 1 2 = 3
Failed, modules loaded: Test1.
}}}
Code attached.
The program is attempting to capture the name +,
as used by Nat at the type level.
The problem appears to be in Convert.hs
{{{
-- Convert.hs
okOcc :: OccName.NameSpace -> String -> Bool
okOcc _ [] = False
okOcc ns str@(c:_) | OccName.isVarNameSpace ns = startsVarId c ||
startsVarSym c
| otherwise = startsConId c || startsConSym c ||
str == "[]"
}}}
+ is rejected, by okOcc, even though it is acceptable, the symbol neither
starts with upper-case, or ':'.
I have tried using reify to extract the *actual* name from other sources
(rather than use mkNameG_tc), and it fails in the same way.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7667>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list