Agda
Safe HaskellNone
LanguageHaskell2010

Agda.Syntax.Abstract.Name

Description

Abstract names carry unique identifiers and stuff.

Synopsis

Documentation

getUnambiguous :: AmbiguousQName -> Maybe QName Source #

Get the name if unambiguous.

headAmbQ :: AmbiguousQName -> QName Source #

Get the first of the ambiguous names.

isAmbiguous :: AmbiguousQName -> Bool Source #

Is a name ambiguous.

isAnonymousModuleName :: ModuleName -> Bool Source #

A module is anonymous if the qualification path ends in an underscore.

isLeChildModuleOf :: ModuleName -> ModuleName -> Bool Source #

Is the first module a weak child of the second?

isLeParentModuleOf :: ModuleName -> ModuleName -> Bool Source #

Is the first module a weak parent of the second?

isLtChildModuleOf :: ModuleName -> ModuleName -> Bool Source #

Is the first module a proper child of the second?

isLtParentModuleOf :: ModuleName -> ModuleName -> Bool Source #

Is the first module a proper parent of the second?

isOperator :: QName -> Bool Source #

Is the name an operator?

mergeAmbQ :: AmbiguousQName -> AmbiguousQName -> AmbiguousQName Source #

Preserve lineage information from both maps, left-biased.

nextName :: FreshNameMode -> Name -> Name Source #

Get the next version of the concrete name. For instance, nextName "x" = "x₁". The name must not be a NoName.

qnameToConcrete :: QName -> QName Source #

Turn a qualified name into a concrete name. This should only be used as a fallback when looking up the right concrete name in the scope fails.

qualify_ :: Name -> QName Source #

Convert a Name to a QName (add no module name).

sameRoot :: Name -> Name -> Bool Source #

Ignoring the suffix.

uglyShowName :: Name -> String Source #

Useful for debugging scoping problems

unambiguous :: QName -> AmbiguousQName Source #

A singleton "ambiguous" name.

withRangesOf :: ModuleName -> List1 Name -> ModuleName Source #

Sets the ranges of the individual names in the module name to match those of the corresponding concrete names. If the concrete names are fewer than the number of module name name parts, then the initial name parts get the range noRange.

C.D.E `withRangesOf` [A, B] returns C.D.E but with ranges set as follows:

  • C: noRange.
  • D: the range of A.
  • E: the range of B.

Precondition: The number of module name name parts has to be at least as large as the length of the list.

withRangesOfQ :: ModuleName -> QName -> ModuleName Source #

Like withRangesOf, but uses the name parts (qualifier + name) of the qualified name as the list of concrete names.

data AbstractModule Source #

A decoration of abstract syntax module names.

Constructors

AbsModule 

Fields

Instances

Instances details
HasNameBindingSite AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Pretty AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

InScope AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Scope.Base

SetBindingSite AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Scope.Base

EmbPrj AbstractModule Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

NFData AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: AbstractModule -> () #

Generic AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Associated Types

type Rep AbstractModule 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep AbstractModule = D1 ('MetaData "AbstractModule" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "AbsModule" 'PrefixI 'True) (S1 ('MetaSel ('Just "amodName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName) :*: S1 ('MetaSel ('Just "amodLineage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WhyInScope)))
Show AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Eq AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Ord AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep AbstractModule Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep AbstractModule = D1 ('MetaData "AbstractModule" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "AbsModule" 'PrefixI 'True) (S1 ('MetaSel ('Just "amodName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName) :*: S1 ('MetaSel ('Just "amodLineage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WhyInScope)))

data AbstractName Source #

A decoration of QName.

Constructors

AbsName 

Fields

Instances

Instances details
NameToExpr AbstractName Source #

Turn an AbstractName into an expression.

Instance details

Defined in Agda.Syntax.Abstract

HasNameBindingSite AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasNameId AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsInstanceDef AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

LensFixity AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Pretty AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasRange AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

SetRange AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

InScope AbstractName Source # 
Instance details

Defined in Agda.Syntax.Scope.Base

SetBindingSite AbstractName Source # 
Instance details

Defined in Agda.Syntax.Scope.Base

ToConcrete AbstractName Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs AbstractName 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => AbstractName -> m (ConOfAbs AbstractName) Source #

bindToConcrete :: MonadToConcrete m => AbstractName -> (ConOfAbs AbstractName -> m b) -> m b Source #

PrettyTCM AbstractName Source # 
Instance details

Defined in Agda.TypeChecking.Pretty

EmbPrj AbstractName Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

NFData AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: AbstractName -> () #

Generic AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Associated Types

type Rep AbstractName 
Instance details

Defined in Agda.Syntax.Abstract.Name

Show AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Eq AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Ord AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Hashable AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type ConOfAbs AbstractName Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

type Rep AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

data AmbQNameEntry Source #

Alternative in AmbiguousQName.

Constructors

AmbQName QName

QName without lineage information.

AmbAbstractName AbstractName

QName with lineage information, for error reporting.

Instances

Instances details
HasRange AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NFData AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: AmbQNameEntry -> () #

Semigroup AmbQNameEntry Source #

Prefer AmbAbstractName over AmbQName, left-biased.

Instance details

Defined in Agda.Syntax.Abstract.Name

Generic AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Associated Types

type Rep AmbQNameEntry 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep AmbQNameEntry = D1 ('MetaData "AmbQNameEntry" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "AmbQName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName)) :+: C1 ('MetaCons "AmbAbstractName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AbstractName)))
Show AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Eq AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Ord AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep AmbQNameEntry Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep AmbQNameEntry = D1 ('MetaData "AmbQNameEntry" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "AmbQName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName)) :+: C1 ('MetaCons "AmbAbstractName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AbstractName)))

newtype AmbiguousQName Source #

Ambiguous qualified names. Used for overloaded constructors.

A QName in this collection might be equipped with lineage information in form of an associated AbstractName (which must contain the same QName).

Invariant: All the names in the map must have the same concrete, unqualified name. (This implies that they all have the same Range).

Don't use the constructor AmbQ directly, use the smart constructors below!

Constructors

AmbQ 

Instances

Instances details
Pretty AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NumHoles AmbiguousQName Source #

We can have an instance for ambiguous names as all share a common concrete name.

Instance details

Defined in Agda.Syntax.Abstract.Name

NamesIn AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Internal.Names

HasRange AmbiguousQName Source #

The range of an AmbiguousQName is the range of any of its disambiguations (they are the same concrete name).

Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

EmbPrj AmbiguousQName Source #

Note: Serialization of AmbiguousQName discards lineage, treating all entries as just QName rather than AbstractName.

Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

Sized AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NFData AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: AmbiguousQName -> () #

Show AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Eq AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Ord AmbiguousQName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

class HasNameId a where Source #

Methods

nameId :: a -> NameId Source #

Instances

Instances details
HasNameId AbstractName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasNameId Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

nameId :: Name -> NameId Source #

HasNameId QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

nameId :: QName -> NameId Source #

class IsProjP a where Source #

Check whether we are a projection pattern.

Instances

Instances details
IsProjP Expr Source # 
Instance details

Defined in Agda.Syntax.Abstract

IsProjP Void Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsProjP (Pattern' e) Source # 
Instance details

Defined in Agda.Syntax.Abstract

IsProjP a => IsProjP (Arg a) Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsProjP (Pattern' a) Source # 
Instance details

Defined in Agda.Syntax.Internal

IsProjP a => IsProjP (Named n a) Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

data KindOfName Source #

For the sake of parsing left-hand sides, we distinguish constructor and record field names from defined names.

Constructors

ConName

Constructor name (Inductive or don't know).

CoConName

Constructor name (definitely CoInductive).

FldName

Record field name.

PatternSynName

Name of a pattern synonym.

GeneralizeName

Name to be generalized

DisallowedGeneralizeName

Generalizable variable from a let open

MacroName

Name of a macro

QuotableName

A name that can only be quoted. Previous category DefName: (Refined in a flat manner as Enum and Bounded are not hereditary.)

DataName

Name of a data.

RecName

Name of a record.

FunName

Name of a defined function.

AxiomName

Name of a postulate.

PrimName

Name of a primitive.

OtherDefName

A DefName, but either other kind or don't know which kind. End DefName. Keep these together in sequence, for sake of isDefName!

Instances

Instances details
KillRange KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

EmbPrj KindOfName Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

NFData KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: KindOfName -> () #

Bounded KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Enum KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Generic KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Associated Types

type Rep KindOfName 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep KindOfName = D1 ('MetaData "KindOfName" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (((C1 ('MetaCons "ConName" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CoConName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FldName" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PatternSynName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GeneralizeName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DisallowedGeneralizeName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MacroName" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "QuotableName" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DataName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RecName" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FunName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AxiomName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PrimName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherDefName" 'PrefixI 'False) (U1 :: Type -> Type)))))
Show KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Eq KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Ord KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep KindOfName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep KindOfName = D1 ('MetaData "KindOfName" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (((C1 ('MetaCons "ConName" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CoConName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FldName" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PatternSynName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GeneralizeName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DisallowedGeneralizeName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MacroName" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "QuotableName" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DataName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RecName" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FunName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AxiomName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PrimName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherDefName" 'PrefixI 'False) (U1 :: Type -> Type)))))

class MkName a where Source #

Make a Name from some kind of string.

Minimal complete definition

mkName

Methods

mkName :: Range -> NameId -> a -> Name Source #

The Range sets the definition site of the name, not the use site.

mkName_ :: NameId -> a -> Name Source #

Instances

Instances details
MkName String Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

newtype ModuleName Source #

A module name is just a qualified name.

The SetRange instance for module names sets all individual ranges to the given one.

Constructors

MName 

Fields

Instances

Instances details
SubstExpr ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract

HasNameBindingSite ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

ExprLike ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Pretty ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsNoName ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasRange ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange Sections Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

SetRange ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

SetBindingSite ModuleName Source #

Sets the binding site of all names in the path.

Instance details

Defined in Agda.Syntax.Scope.Base

ToConcrete ModuleName Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs ModuleName 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => ModuleName -> m (ConOfAbs ModuleName) Source #

bindToConcrete :: MonadToConcrete m => ModuleName -> (ConOfAbs ModuleName -> m b) -> m b Source #

PrettyTCM ModuleName Source # 
Instance details

Defined in Agda.TypeChecking.Pretty

InstantiateFull ModuleName Source # 
Instance details

Defined in Agda.TypeChecking.Reduce

EmbPrj ModuleName Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

Null ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Sized ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NFData ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: ModuleName -> () #

Show ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Eq ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Ord ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Hashable ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type ConOfAbs ModuleName Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

data Name Source #

A name is a unique identifier and a suggestion for a concrete name. The concrete name contains the source location (if any) of the name. The source location of the binding site is also recorded.

Constructors

Name 

Fields

Instances

Instances details
HasNameBindingSite Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasNameId Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

nameId :: Name -> NameId Source #

LensFixity Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

LensFixity' Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Pretty Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsNoName Name Source #

An abstract name is empty if its concrete name is empty.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

isNoName :: Name -> Bool Source #

LensInScope Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NumHoles Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

numHoles :: Name -> Int Source #

Suggest Name Source # 
Instance details

Defined in Agda.Syntax.Internal

HasRange Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

getRange :: Name -> Range Source #

KillRange Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

SetRange Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

setRange :: Range -> Name -> Name Source #

SetBindingSite Name Source # 
Instance details

Defined in Agda.Syntax.Scope.Base

ToConcrete Name Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs Name 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => Name -> m (ConOfAbs Name) Source #

bindToConcrete :: MonadToConcrete m => Name -> (ConOfAbs Name -> m b) -> m b Source #

Reify Name Source # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Associated Types

type ReifiesTo Name 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

FreshName Name Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

AddContext Name Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => Name -> m a -> m a Source #

contextSize :: Name -> Nat Source #

PrettyTCM Name Source # 
Instance details

Defined in Agda.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => Name -> m Doc Source #

InstantiateFull Name Source # 
Instance details

Defined in Agda.TypeChecking.Reduce

EmbPrj Name Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

Subst Name Source # 
Instance details

Defined in Agda.TypeChecking.Substitute

Associated Types

type SubstArg Name 
Instance details

Defined in Agda.TypeChecking.Substitute

Null Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NFData Name Source #

The range is not forced.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: Name -> () #

Show Name Source #

Show instances (only for debug printing!)

Use prettyShow to print names to the user.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

Eq Name Source #

Important instances: Eq, Ord, Hashable

For the identity and comparing of names, only the NameId matters!

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

(==) :: Name -> Name -> Bool #

(/=) :: Name -> Name -> Bool #

Ord Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

compare :: Name -> Name -> Ordering #

(<) :: Name -> Name -> Bool #

(<=) :: Name -> Name -> Bool #

(>) :: Name -> Name -> Bool #

(>=) :: Name -> Name -> Bool #

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Hashable Name Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

hashWithSalt :: Int -> Name -> Int #

hash :: Name -> Int #

AddContext (Dom (Name, Type)) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => Dom (Name, Type) -> m a -> m a Source #

contextSize :: Dom (Name, Type) -> Nat Source #

(ToAbstract r, AbsOfRef r ~ Expr) => ToAbstract (Dom r, Name) Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

Associated Types

type AbsOfRef (Dom r, Name) 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

AddContext (Name, Dom Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (Name, Dom Type) -> m a -> m a Source #

contextSize :: (Name, Dom Type) -> Nat Source #

AddContext (List1 Name, Dom Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

AddContext (List1 (Arg Name), Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (Arg Name), Type) -> m a -> m a Source #

contextSize :: (List1 (Arg Name), Type) -> Nat Source #

AddContext (List1 (NamedArg Name), Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

AddContext (List1 (WithHiding Name), Dom Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

AddContext (List1 (Dom Name), Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (Dom Name), Type) -> m a -> m a Source #

contextSize :: (List1 (Dom Name), Type) -> Nat Source #

AddContext ([Name], Dom Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([Name], Dom Type) -> m a -> m a Source #

contextSize :: ([Name], Dom Type) -> Nat Source #

AddContext ([Arg Name], Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([Arg Name], Type) -> m a -> m a Source #

contextSize :: ([Arg Name], Type) -> Nat Source #

AddContext ([NamedArg Name], Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([NamedArg Name], Type) -> m a -> m a Source #

contextSize :: ([NamedArg Name], Type) -> Nat Source #

AddContext ([WithHiding Name], Dom Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

AddContext ([Dom Name], Type) Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([Dom Name], Type) -> m a -> m a Source #

contextSize :: ([Dom Name], Type) -> Nat Source #

type ConOfAbs Name Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

type ReifiesTo Name Source # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

type SubstArg Name Source # 
Instance details

Defined in Agda.TypeChecking.Substitute

type AbsOfRef (Dom r, Name) Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

data NameMetadata Source #

Instances

Instances details
IsInstanceDef NameMetadata Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange NameMetadata Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

EmbPrj NameMetadata Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

Null NameMetadata Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NFData NameMetadata Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: NameMetadata -> () #

Generic NameMetadata Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Associated Types

type Rep NameMetadata 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep NameMetadata = D1 ('MetaData "NameMetadata" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "NameMetadata" 'PrefixI 'True) (S1 ('MetaSel ('Just "nameDataGeneralizedVars") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map QName Name)) :*: S1 ('MetaSel ('Just "nameDataIsInstance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IsInstance)))
Show NameMetadata Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep NameMetadata Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep NameMetadata = D1 ('MetaData "NameMetadata" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "NameMetadata" 'PrefixI 'True) (S1 ('MetaSel ('Just "nameDataGeneralizedVars") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map QName Name)) :*: S1 ('MetaSel ('Just "nameDataIsInstance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IsInstance)))

data QName Source #

Qualified names are non-empty lists of names. Equality on qualified names are just equality on the last name, i.e. the module part is just for show.

The SetRange instance for qualified names sets all individual ranges (including those of the module prefix) to the given one.

Constructors

QName 

Instances

Instances details
HasNameBindingSite QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasNameId QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

nameId :: QName -> NameId Source #

DeclaredNames KName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Views

ExprLike QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Views

LensFixity QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

LensFixity' QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Pretty QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

LensInScope QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NumHoles QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

numHoles :: QName -> Int Source #

TermLike QName Source # 
Instance details

Defined in Agda.Syntax.Internal.Generic

Methods

traverseTermM :: Monad m => (Term -> m Term) -> QName -> m QName Source #

foldTerm :: Monoid m => (Term -> m) -> QName -> m Source #

NamesIn QName Source # 
Instance details

Defined in Agda.Syntax.Internal.Names

Methods

namesAndMetasIn' :: Monoid m => (Either QName MetaId -> m) -> QName -> m Source #

HasRange QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

getRange :: QName -> Range Source #

KillRange QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange Definitions Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

KillRange RewriteRuleMap Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

SetRange QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

setRange :: Range -> QName -> QName Source #

SetBindingSite QName Source # 
Instance details

Defined in Agda.Syntax.Scope.Base

ToConcrete QName Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs QName 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => QName -> m (ConOfAbs QName) Source #

bindToConcrete :: MonadToConcrete m => QName -> (ConOfAbs QName -> m b) -> m b Source #

Occurs QName Source # 
Instance details

Defined in Agda.TypeChecking.MetaVars.Occurs

ChaseDisplayForms QName Source # 
Instance details

Defined in Agda.TypeChecking.Monad.Signature

PrettyTCM QName Source #

Automatically highlights the resulting document with the correct name kind.

Instance details

Defined in Agda.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => QName -> m Doc Source #

FromTerm QName Source # 
Instance details

Defined in Agda.TypeChecking.Primitive

PrimTerm QName Source # 
Instance details

Defined in Agda.TypeChecking.Primitive

Methods

primTerm :: QName -> TCM Term Source #

PrimType QName Source # 
Instance details

Defined in Agda.TypeChecking.Primitive

Methods

primType :: QName -> TCM Type Source #

ToTerm QName Source # 
Instance details

Defined in Agda.TypeChecking.Primitive

InstantiateFull QName Source # 
Instance details

Defined in Agda.TypeChecking.Reduce

EmbPrj QName Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

Subst QName Source # 
Instance details

Defined in Agda.TypeChecking.Substitute.Class

Associated Types

type SubstArg QName 
Instance details

Defined in Agda.TypeChecking.Substitute.Class

Unquote QName Source # 
Instance details

Defined in Agda.TypeChecking.Unquote

Null QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Sized QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NFData QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: QName -> () #

Generic QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Associated Types

type Rep QName 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep QName = D1 ('MetaData "QName" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "QName" 'PrefixI 'True) (S1 ('MetaSel ('Just "qnameModule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName) :*: S1 ('MetaSel ('Just "qnameName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))

Methods

from :: QName -> Rep QName x #

to :: Rep QName x -> QName #

Show QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

showsPrec :: Int -> QName -> ShowS #

show :: QName -> String #

showList :: [QName] -> ShowS #

Eq QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

(==) :: QName -> QName -> Bool #

(/=) :: QName -> QName -> Bool #

Ord QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

compare :: QName -> QName -> Ordering #

(<) :: QName -> QName -> Bool #

(<=) :: QName -> QName -> Bool #

(>) :: QName -> QName -> Bool #

(>=) :: QName -> QName -> Bool #

max :: QName -> QName -> QName #

min :: QName -> QName -> QName #

Hashable QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

hashWithSalt :: Int -> QName -> Int #

hash :: QName -> Int #

type ConOfAbs QName Source # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

type SubstArg QName Source # 
Instance details

Defined in Agda.TypeChecking.Substitute.Class

type Rep QName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep QName = D1 ('MetaData "QName" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "QName" 'PrefixI 'True) (S1 ('MetaSel ('Just "qnameModule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName) :*: S1 ('MetaSel ('Just "qnameName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))

data QNamed a Source #

Something preceeded by a qualified name.

Constructors

QNamed 

Fields

Instances

Instances details
Functor QNamed Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

fmap :: (a -> b) -> QNamed a -> QNamed b #

(<$) :: a -> QNamed b -> QNamed a #

Foldable QNamed Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

fold :: Monoid m => QNamed m -> m #

foldMap :: Monoid m => (a -> m) -> QNamed a -> m #

foldMap' :: Monoid m => (a -> m) -> QNamed a -> m #

foldr :: (a -> b -> b) -> b -> QNamed a -> b #

foldr' :: (a -> b -> b) -> b -> QNamed a -> b #

foldl :: (b -> a -> b) -> b -> QNamed a -> b #

foldl' :: (b -> a -> b) -> b -> QNamed a -> b #

foldr1 :: (a -> a -> a) -> QNamed a -> a #

foldl1 :: (a -> a -> a) -> QNamed a -> a #

toList :: QNamed a -> [a] #

null :: QNamed a -> Bool #

length :: QNamed a -> Int #

elem :: Eq a => a -> QNamed a -> Bool #

maximum :: Ord a => QNamed a -> a #

minimum :: Ord a => QNamed a -> a #

sum :: Num a => QNamed a -> a #

product :: Num a => QNamed a -> a #

Traversable QNamed Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

traverse :: Applicative f => (a -> f b) -> QNamed a -> f (QNamed b) #

sequenceA :: Applicative f => QNamed (f a) -> f (QNamed a) #

mapM :: Monad m => (a -> m b) -> QNamed a -> m (QNamed b) #

sequence :: Monad m => QNamed (m a) -> m (QNamed a) #

Pretty a => Pretty (QNamed a) Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Reify (QNamed Clause) Source # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Associated Types

type ReifiesTo (QNamed Clause) 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Reify (QNamed System) Source # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Associated Types

type ReifiesTo (QNamed System) 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract (QNamed Clause) Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

Associated Types

type AbsOfRef (QNamed Clause) 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract (List1 (QNamed Clause)) Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

Associated Types

type AbsOfRef (List1 (QNamed Clause)) 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract [QNamed Clause] Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

Associated Types

type AbsOfRef [QNamed Clause] 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

PrettyTCM (QNamed Clause) Source # 
Instance details

Defined in Agda.TypeChecking.Pretty

Show a => Show (QNamed a) Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

showsPrec :: Int -> QNamed a -> ShowS #

show :: QNamed a -> String #

showList :: [QNamed a] -> ShowS #

type ReifiesTo (QNamed Clause) Source # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

type ReifiesTo (QNamed System) Source # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

type AbsOfRef (QNamed Clause) Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

type AbsOfRef (List1 (QNamed Clause)) Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

type AbsOfRef [QNamed Clause] Source # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

data Suffix Source #

A name suffix.

Constructors

NoSuffix 
Suffix !Integer 

Instances

Instances details
Pretty Suffix Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange Suffix Source # 
Instance details

Defined in Agda.Syntax.Abstract

EmbPrj Suffix Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

Null Suffix Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

NFData Suffix Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: Suffix -> () #

Show Suffix Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Eq Suffix Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

(==) :: Suffix -> Suffix -> Bool #

(/=) :: Suffix -> Suffix -> Bool #

Ord Suffix Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

data WhyInScope Source #

Where does a name come from?

This information is solely for reporting to the user, see whyInScope.

Constructors

Defined

Defined in this module.

Opened QName WhyInScope

Imported from another module.

Applied QName WhyInScope

Imported by a module application.

Instances

Instances details
KillRange WhyInScope Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

EmbPrj WhyInScope Source # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

NFData WhyInScope Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: WhyInScope -> () #

Generic WhyInScope Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Show WhyInScope Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

type Rep WhyInScope Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

class IsNoName a where Source #

Check whether a name is the empty name "_".

Minimal complete definition

Nothing

Methods

isNoName :: a -> Bool Source #

default isNoName :: forall (t :: Type -> Type) b. (Foldable t, IsNoName b, t b ~ a) => a -> Bool Source #

Instances

Instances details
IsNoName ModuleName Source # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsNoName Name Source #

An abstract name is empty if its concrete name is empty.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

isNoName :: Name -> Bool Source #

IsNoName Name Source # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: Name -> Bool Source #

IsNoName QName Source # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: QName -> Bool Source #

IsNoName RawTopLevelModuleName Source # 
Instance details

Defined in Agda.Syntax.TopLevelModuleName

IsNoName ByteString Source # 
Instance details

Defined in Agda.Syntax.Concrete.Name

IsNoName String Source # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: String -> Bool Source #

IsNoName a => IsNoName (Ranged a) Source # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: Ranged a -> Bool Source #

IsNoName a => IsNoName (WithOrigin a) Source # 
Instance details

Defined in Agda.Syntax.Concrete.Name

data FreshNameMode Source #

Method by which to generate fresh unshadowed names.

Constructors

UnicodeSubscript

Append an integer Unicode subscript: x, x₁, x₂, …

AsciiCounter

Append an integer ASCII counter: x, x1, x2, …