Agda-2.5.1.2: A dependently typed functional programming language and proof assistant

Safe HaskellNone
LanguageHaskell98

Agda.Syntax.Translation.InternalToAbstract

Description

Translating from internal syntax to abstract syntax. Enables nice pretty printing of internal syntax.

TODO

  • numbers on metas
  • fake dependent functions to independent functions
  • meta parameters
  • shadowing

Documentation

class Reify i a | i -> a where Source #

Minimal complete definition

reify

Methods

reify :: i -> TCM a Source #

reifyWhen :: Bool -> i -> TCM a Source #

Instances

Reify MetaId Expr Source # 
Reify Name Name Source # 
Reify Literal Expr Source # 
Reify Expr Expr Source # 
Reify ClauseBody RHS Source # 
Reify Level Expr Source # 
Reify Sort Expr Source # 
Reify Telescope Telescope Source # 
Reify Type Expr Source # 
Reify Elim Expr Source # 
Reify Term Expr Source # 
Reify DisplayTerm Expr Source # 
Reify NamedClause Clause Source # 
Reify i a => Reify [i] [a] Source # 

Methods

reify :: [i] -> TCM [a] Source #

reifyWhen :: Bool -> [i] -> TCM [a] Source #

Reify i a => Reify (Dom i) (Arg a) Source # 

Methods

reify :: Dom i -> TCM (Arg a) Source #

reifyWhen :: Bool -> Dom i -> TCM (Arg a) Source #

Reify i a => Reify (Arg i) (Arg a) Source #

Skip reification of implicit and irrelevant args if option is off.

Methods

reify :: Arg i -> TCM (Arg a) Source #

reifyWhen :: Bool -> Arg i -> TCM (Arg a) Source #

(Free i, Reify i a) => Reify (Abs i) (Name, a) Source # 

Methods

reify :: Abs i -> TCM (Name, a) Source #

reifyWhen :: Bool -> Abs i -> TCM (Name, a) Source #

(Reify i1 a1, Reify i2 a2) => Reify (i1, i2) (a1, a2) Source # 

Methods

reify :: (i1, i2) -> TCM (a1, a2) Source #

reifyWhen :: Bool -> (i1, i2) -> TCM (a1, a2) Source #

Reify i a => Reify (Named n i) (Named n a) Source # 

Methods

reify :: Named n i -> TCM (Named n a) Source #

reifyWhen :: Bool -> Named n i -> TCM (Named n a) Source #

(Reify i1 a1, Reify i2 a2, Reify i3 a3) => Reify (i1, i2, i3) (a1, a2, a3) Source # 

Methods

reify :: (i1, i2, i3) -> TCM (a1, a2, a3) Source #

reifyWhen :: Bool -> (i1, i2, i3) -> TCM (a1, a2, a3) Source #

(Reify i1 a1, Reify i2 a2, Reify i3 a3, Reify i4 a4) => Reify (i1, i2, i3, i4) (a1, a2, a3, a4) Source # 

Methods

reify :: (i1, i2, i3, i4) -> TCM (a1, a2, a3, a4) Source #

reifyWhen :: Bool -> (i1, i2, i3, i4) -> TCM (a1, a2, a3, a4) Source #