[GHC] #10796: Illegal data constructor name: `fromList' ... When splicing a TH expression
GHC
ghc-devs at haskell.org
Tue Aug 25 23:41:24 UTC 2015
#10796: Illegal data constructor name: `fromList' ... When splicing a TH expression
-------------------------------------+-------------------------------------
Reporter: erisco | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Template | Version: 7.8.3
Haskell |
Keywords: | Operating System: Windows
Architecture: x86_64 | Type of failure: None/Unknown
(amd64) |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Revisions: |
-------------------------------------+-------------------------------------
At the end is a log of my ghci session reproducing the issue. It is
expected that the splice should succeed, but GHC complains "Illegal data
constructor name: `fromList' ... When splicing a TH expression".
Full definitions being used can be found at
http://hackage.haskell.org/package/regex-tdfa-quasiquoter-0.2.0.0 .
Briefly, this is the splice being used.
{{{#!hs
[e|patternToRegex $patternExp $compOptsExp $execOptsExp|]
where
patternExp = dataToExpQ (const Nothing) pattern
compOptsExp = dataToExpQ (const Nothing) compOpts
execOptsExp = dataToExpQ (const Nothing) execOpts
}}}
Data and Typeable instances are derived (using -XStandaloneDeriving
-XDeriveDataTypeable) as orphan instances in the Internal module.
The issue occurs when using bracket expressions (in POSIX regular
expressions). There may be other cases but I have not uncovered them.
{{{
> ghci
GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
>>> :set -XQuasiQuotes
>>> import Text.Regex.TDFA.QuasiQuoter
>>> :t [re|;[a]|]
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package array-0.5.0.0 ... linking ... done.
Loading package deepseq-1.3.0.2 ... linking ... done.
Loading package bytestring-0.10.4.0 ... linking ... done.
Loading package containers-0.5.5.1 ... linking ... done.
Loading package mtl-2.1.3.1 ... linking ... done.
Loading package regex-base-0.93.2 ... linking ... done.
Loading package text-1.2.0.3 ... linking ... done.
Loading package parsec-3.1.9 ... linking ... done.
Loading package regex-tdfa-1.2.0 ... linking ... done.
Loading package pretty-1.1.1.1 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package regex-tdfa-quasiquoter-0.2.0.0 ... linking ... done.
<interactive>:1:5:
Illegal data constructor name: `fromList'
When splicing a TH expression:
Text.Regex.TDFA.TDFA.patternToRegex (GHC.Tuple.(,)
(Text.Regex.TDFA.Pattern.POr ((GHC.Types.:)
(Text.Regex.TDFA.Pattern.PConcat ((GHC.Types.:)
(Text.Regex.TDFA.Pattern.PAny (Text.Regex.TDFA.Common.DoPa 1)
(Text.Regex.TDFA.Pattern.PatternSet (Data.Maybe.Just
(Data.Set.Base.fromList ((GHC.Types.:) 'a' GHC.Types.[])))
Data.Maybe.Nothing Data.Maybe.Nothing Data.Maybe.Nothing)) GHC.Types.[]))
GHC.Types.[])) (GHC.Tuple.(,) 0 (Text.Regex.TDFA.Common.DoPa 1)))
(Text.Regex.TDFA.Common.CompOption GHC.Types.True GHC.Types.True
GHC.Types.True GHC.Types.True GHC.Types.False)
(Text.Regex.TDFA.Common.ExecOption GHC.Types.True)
>>>
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10796>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list