2013-04-03 19 views
7

Trochę mylony z wynikami, które otrzymuję. Przy użyciu następujących:Błąd szablonu Haskell podczas korzystania z "wyprowadzania"

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 

otrzymuję ten udany wynik:

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

Ale otrzymuję ten błąd:

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) |] 

nie mogę czerpać Pokaż przy użyciu szablonu Haskell?

Odpowiedz

7

Wygląda na to, że był to bug in GHC że był fixed w wersji 7.6.1:

$ ~/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

Używam Haskell Platform 2012.4. Chyba muszę ręcznie zaktualizować GHC lub poczekać na kolejne duże wydanie ... – me2

+0

Kolejne duże wydanie (2013.2) [oczekiwane jest w pierwszej połowie maja] (http://article.gmane.org/gmane.comp .lang.haskell.platform/2484). –

Powiązane problemy