Skip to content

Lightweight quoting Stage error in interactive mode

ghc/compiler/stage2$ ./ghc-inplace --interactive -fth
GHCi, version 6.9.20071025: http://www.haskell.org/ghc/  :? for help
Loading package base ... linking ... done.
Prelude> :m +Language.Haskell.TH
Prelude Language.Haskell.TH> let f = 1
Prelude Language.Haskell.TH> :m +Language.Haskell.TH
Prelude Language.Haskell.TH> $(do {i <- reify 'f; runIO $ putStrLn (pprint i); [| 1 |]})

<interactive>:1:17:
    Stage error: the non-top-level quoted name 'f
    must be used at the same stage at which is is bound
    In the first argument of `reify', namely 'f
    In a 'do' expression: i <- reify 'f
    In the expression:
        $(do i <- reify 'f
               runIO $ putStrLn (pprint i)
             [| 1 |])

This error didn't show with version 6.6

$ ghci -fth
   ___         ___ _
  / _ \ /\  /\/ __(_)
 / /_\// /_/ / /  | |      GHC Interactive, version 6.6.1, for Haskell 98.
/ /_\\/ __  / /___| |      http://www.haskell.org/ghc/
\____/\/ /_/\____/|_|      Type :? for help.

Loading package base ... linking ... done.
Prelude> let f = 1
Prelude> :m +Language.Haskell.TH
Prelude Language.Haskell.TH> $(do {i <- reify 'f; runIO $ putStrLn (pprint i); [| 1 |]})
Loading package template-haskell ... linking ... done.
f_0 :: GHC.Num.Integer
f_0 :: GHC.Num.Integer
f_0 :: GHC.Num.Integer
f_0 :: GHC.Num.Integer
1
Prelude Language.Haskell.TH> 
Trac metadata
Trac field Value
Version 6.9
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Template Haskell
Test case
Differential revisions
BlockedBy
Related
Blocking
CC alfonso.acosta@gmail.com
Operating system Unknown
Architecture Unknown
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information