Agda-2.5.4.1.20181026: 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 Source #

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

Minimal complete definition

toAbstract

Methods

toAbstract :: concrete -> ScopeM abstract Source #

Instances
ToAbstract HoleContent HoleContent Source #

Content of interaction hole.

Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract RHS AbstractRHS Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract TypedBinding TypedBinding Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract TypedBindings TypedBindings Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LamBinding LamBinding Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Expr Expr Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Clause Clause Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NiceDeclaration Declaration Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LeftHandSide LHS Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract AbstractRHS RHS Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract RightHandSide AbstractRHS Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract OldModuleName ModuleName Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NewModuleQName ModuleName Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NewModuleName ModuleName Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract PatName APatName Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract OldQName Expr Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Pragma [Pragma] Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LHSCore (LHSCore' Expr) Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Pattern (Pattern' Expr) Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LetDef [LetBinding] Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LetDefs [LetBinding] Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (TopLevel [Declaration]) TopLevelInfo Source #

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 Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (NewName Name) Name Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (NewName BoundName) Name Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

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

ToAbstract [Declaration] [Declaration] Source # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

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

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

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

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

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

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

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

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

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

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Methods

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

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

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

newtype OldName a Source #

Constructors

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

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data TopLevel a Source #

Temporary data type to scope check a file.

Constructors

TopLevel 

Fields

Instances
ToAbstract (TopLevel [Declaration]) TopLevelInfo Source #

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 Source #

Constructors

TopLevelInfo 

Fields

Instances
ToAbstract (TopLevel [Declaration]) TopLevelInfo Source #

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 Source #

The top-level module name.