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

Safe HaskellNone

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 whereSource

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

Methods

toAbstract :: concrete -> ScopeM abstractSource

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

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

newtype OldName Source

Constructors

OldName Name 

data TopLevel a Source

Temporary data type to scope check a file.

Constructors

TopLevel 

Fields

topLevelPath :: AbsolutePath

The file path from which we loaded this module.

topLevelTheThing :: a

The file content.

topLevelModuleName :: TopLevelInfo -> ModuleNameSource

The top-level module name.