2013-04-03 7 views
7

का उपयोग करते समय त्रुटि मुझे मिलने वाले परिणामों से थोड़ा उलझन में है।टेम्पलेट हास्केल त्रुटि "व्युत्पन्न"

GHCi, version 7.4.2: http://www.haskell.org/ghc/ :? for help 
Loading package ghc-prim ... linking ... done. 
Loading package integer-gmp ... linking ... done. 
Loading package base ... linking ... done. 
Prelude> :m + Language.Haskell.TH 

मैं इस सफल परिणाम प्राप्त:

Prelude Language.Haskell.TH> runQ [d| data X = X |] 
[DataD [] X_0 [] [NormalC X_1 []] []] 

लेकिन मैं इस त्रुटि मिलती है:

Prelude Language.Haskell.TH> runQ [d| data X = X deriving Show |] 

<interactive>:4:30: 
    The exact Name `X' is not in scope 
     Probable cause: you used a unique name (NameU) in Template Haskell but did not bind it 
    In the Template Haskell quotation [d| data X = X deriving (Show) |] 
    In the first argument of `runQ', namely 
     `[d| data X = X deriving (Show) |]' 
    In the expression: runQ [d| data X = X deriving (Show) |] 

मैं खाका हास्केल का उपयोग करते समय दिखाएँ प्राप्त नहीं सकता निम्नलिखित का उपयोग?

उत्तर

7

ऐसा लगता है कि यह एक bug in GHC उस संस्करण 7.6.1 में fixed था:

$ ~/bin/ghc-7.6.1/bin/ghci 
GHCi, version 7.6.1: http://www.haskell.org/ghc/ :? for help 
[...] 
Prelude> :set -XTemplateHaskell 
Prelude> import Language.Haskell.TH 
Prelude Language.Haskell.TH> runQ [d| data X = X deriving (Show) |] 
[...] 
[DataD [] X_0 [] [NormalC X_1 []] [GHC.Show.Show]] 
+0

मैं हास्केल मंच 2012.4 उपयोग कर रहा हूँ। मुझे लगता है कि मुझे या तो जीएचसी मैन्युअल रूप से अपडेट करने की आवश्यकता है या अगली बड़ी रिलीज के लिए प्रतीक्षा करें ... – me2

+0

अगली बड़ी रिलीज (2013.2) [मई की पहली छमाही में अपेक्षित है] (http://article.gmane.org/gmane.comp .lang.haskell.platform/2484)। –

संबंधित मुद्दे