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

Safe HaskellNone
LanguageHaskell2010

Agda.Syntax.Translation.ConcreteToAbstract

Description

Translation from Agda.Syntax.Concrete to Agda.Syntax.Abstract. Involves scope analysis, figuring out infix operator precedences and tidying up definitions.

Synopsis

Documentation

class ToAbstract concrete abstract | concrete -> abstract where #

Things that can be translated to abstract syntax are instances of this class.

Minimal complete definition

toAbstract

Methods

toAbstract :: concrete -> ScopeM abstract #

Instances
ToAbstract HoleContent HoleContent #

Content of interaction hole.

Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract RHS AbstractRHS # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract TypedBinding TypedBinding # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract TypedBindings TypedBindings # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LamBinding LamBinding # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Expr Expr # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Clause Clause # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NiceDeclaration Declaration # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LeftHandSide LHS # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract AbstractRHS RHS # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract RightHandSide AbstractRHS # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract OldModuleName ModuleName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NewModuleQName ModuleName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NewModuleName ModuleName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract PatName APatName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract OldQName Expr # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Pragma [Pragma] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LHSCore (LHSCore' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Pattern (Pattern' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LetDef [LetBinding] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LetDefs [LetBinding] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract ModuleAssignment (ModuleName, [LetBinding]) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (TopLevel [Declaration]) TopLevelInfo #

Top-level declarations are always (import|open)* -- a bunch of possibly opened imports module ThisModule ... -- the top-level module of this file

Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

(Show a, ToQName a) => ToAbstract (OldName a) QName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (NewName Name) Name # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (NewName BoundName) Name # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract c a => ToAbstract [c] [a] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

toAbstract :: [c] -> ScopeM [a] #

ToAbstract [Declaration] [Declaration] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract c a => ToAbstract (Maybe c) (Maybe a) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

toAbstract :: Maybe c -> ScopeM (Maybe a) #

ToAbstract c a => ToAbstract (Arg c) (Arg a) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

toAbstract :: Arg c -> ScopeM (Arg a) #

ToAbstract c a => ToAbstract (WithHiding c) (WithHiding a) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract c a => ToAbstract (FieldAssignment' c) (FieldAssignment' a) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (Pattern' Expr) (Pattern' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (LHSCore' Expr) (LHSCore' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

(ToAbstract c1 a1, ToAbstract c2 a2) => ToAbstract (Either c1 c2) (Either a1 a2) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

toAbstract :: Either c1 c2 -> ScopeM (Either a1 a2) #

(ToAbstract c1 a1, ToAbstract c2 a2) => ToAbstract (c1, c2) (a1, a2) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

toAbstract :: (c1, c2) -> ScopeM (a1, a2) #

ToAbstract c a => ToAbstract (Named name c) (Named name a) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

toAbstract :: Named name c -> ScopeM (Named name a) #

(ToAbstract c1 a1, ToAbstract c2 a2, ToAbstract c3 a3) => ToAbstract (c1, c2, c3) (a1, a2, a3) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

toAbstract :: (c1, c2, c3) -> ScopeM (a1, a2, a3) #

localToAbstract :: ToAbstract c a => c -> (a -> ScopeM b) -> ScopeM b #

This operation does not affect the scope, i.e. the original scope is restored upon completion.

newtype OldName a #

Constructors

OldName a 
Instances
(Show a, ToQName a) => ToAbstract (OldName a) QName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data TopLevel a #

Temporary data type to scope check a file.

Constructors

TopLevel 

Fields

Instances
ToAbstract (TopLevel [Declaration]) TopLevelInfo #

Top-level declarations are always (import|open)* -- a bunch of possibly opened imports module ThisModule ... -- the top-level module of this file

Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data TopLevelInfo #

Constructors

TopLevelInfo 

Fields

Instances
ToAbstract (TopLevel [Declaration]) TopLevelInfo #

Top-level declarations are always (import|open)* -- a bunch of possibly opened imports module ThisModule ... -- the top-level module of this file

Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

topLevelModuleName :: TopLevelInfo -> ModuleName #

The top-level module name.