agda2hs-1.4: src/Agda2Hs/Compile/Var.hs
module Agda2Hs.Compile.Var where
import Control.Arrow ( (&&&) )
import Control.Monad ( unless )
import Control.Monad.Reader.Class ( asks )
import Agda2Hs.Compile.Types
import Agda.Syntax.Common
import Agda.Syntax.Internal ( unDom )
import Agda.Syntax.Common.Pretty ( prettyShow )
import Agda.Syntax.Abstract.Name ( nameConcrete )
import Agda.TypeChecking.Pretty ( text )
import Agda.TypeChecking.Monad.Base ( ContextEntry(..) )
import Agda.TypeChecking.Monad.Context ( lookupBV )
import Agda.Utils.Monad ( whenM )
-- | Compile a variable.
compileDBVar :: Nat -> C String
compileDBVar x = do
n <- ceName <$> lookupBV x
return $ prettyShow $ nameConcrete n