| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Agda.Syntax.Abstract.Name
Description
Abstract names carry unique identifiers and stuff.
Synopsis
- ambAbstractNames :: AmbiguousQName -> [AbstractName]
- ambigName :: List1 AbstractName -> AmbiguousQName
- ambiguous :: List1 QName -> AmbiguousQName
- commonParentModule :: ModuleName -> ModuleName -> ModuleName
- fromAmbQName :: AmbQNameEntry -> QName
- generalizedVarsMetadata :: Map QName Name -> NameMetadata
- getAmbiguous :: AmbiguousQName -> List1 QName
- getUnambiguous :: AmbiguousQName -> Maybe QName
- headAmbQ :: AmbiguousQName -> QName
- instanceMetadata :: IsInstance -> NameMetadata
- isAmbiguous :: AmbiguousQName -> Bool
- isAnonymousModuleName :: ModuleName -> Bool
- isInModule :: QName -> ModuleName -> Bool
- isLeChildModuleOf :: ModuleName -> ModuleName -> Bool
- isLeParentModuleOf :: ModuleName -> ModuleName -> Bool
- isLtChildModuleOf :: ModuleName -> ModuleName -> Bool
- isLtParentModuleOf :: ModuleName -> ModuleName -> Bool
- isOperator :: QName -> Bool
- lensAmodName :: Lens' AbstractModule ModuleName
- lensAnameName :: Lens' AbstractName QName
- lensQNameName :: Lens' QName Name
- makeName :: NameId -> Name -> Range -> Fixity' -> Bool -> Name
- mergeAmbQ :: AmbiguousQName -> AmbiguousQName -> AmbiguousQName
- mnameFromList :: [Name] -> ModuleName
- mnameFromList1 :: List1 Name -> ModuleName
- mnameToConcrete :: ModuleName -> QName
- mnameToList1 :: ModuleName -> List1 Name
- mnameToQName :: ModuleName -> QName
- nameToArgName :: Name -> ArgName
- namedArgName :: NamedArg Name -> ArgName
- nextName :: FreshNameMode -> Name -> Name
- noMetadata :: NameMetadata
- noModuleName :: ModuleName
- qnameFromList :: List1 Name -> QName
- qnameToConcrete :: QName -> QName
- qnameToList :: QName -> List1 Name
- qnameToList0 :: QName -> [Name]
- qnameToMName :: QName -> ModuleName
- qualify :: ModuleName -> Name -> QName
- qualifyM :: ModuleName -> ModuleName -> ModuleName
- qualifyQ :: ModuleName -> QName -> QName
- qualify_ :: Name -> QName
- sameRoot :: Name -> Name -> Bool
- showQNameId :: QName -> String
- uglyShowName :: Name -> String
- unambigName :: AbstractName -> AmbiguousQName
- unambiguous :: QName -> AmbiguousQName
- withRangesOf :: ModuleName -> List1 Name -> ModuleName
- withRangesOfQ :: ModuleName -> QName -> ModuleName
- data AbstractModule = AbsModule {}
- data AbstractName = AbsName {}
- data AmbQNameEntry
- newtype AmbiguousQName = AmbQ {}
- class HasNameBindingSite a where
- nameBindingSite :: a -> Range
- class HasNameId a where
- class IsProjP a where
- isProjP :: a -> Maybe (ProjOrigin, AmbiguousQName)
- data KindOfName
- class MkName a where
- newtype ModuleName = MName {
- mnameToList :: [Name]
- data Name = Name {}
- data NameMetadata = NameMetadata {}
- data QName = QName {}
- data QNamed a = QNamed {}
- data Suffix
- data WhyInScope
- class IsNoName a where
- data FreshNameMode
Documentation
commonParentModule :: ModuleName -> ModuleName -> ModuleName Source #
fromAmbQName :: AmbQNameEntry -> QName Source #
getAmbiguous :: AmbiguousQName -> List1 QName Source #
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.
isInModule :: QName -> ModuleName -> Bool Source #
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?
lensAmodName :: Lens' AbstractModule ModuleName Source #
Van Laarhoven lens on amodName.
lensAnameName :: Lens' AbstractName QName Source #
Van Laarhoven lens on anameName.
mergeAmbQ :: AmbiguousQName -> AmbiguousQName -> AmbiguousQName Source #
Preserve lineage information from both maps, left-biased.
mnameFromList :: [Name] -> ModuleName Source #
mnameFromList1 :: List1 Name -> ModuleName Source #
mnameToConcrete :: ModuleName -> QName Source #
mnameToList1 :: ModuleName -> List1 Name Source #
mnameToQName :: ModuleName -> QName Source #
nameToArgName :: Name -> ArgName Source #
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.
qnameToList0 :: QName -> [Name] Source #
qnameToMName :: QName -> ModuleName Source #
qualifyM :: ModuleName -> ModuleName -> ModuleName Source #
showQNameId :: QName -> String Source #
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 ofA.E: the range ofB.
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
data AbstractName Source #
A decoration of QName.
Constructors
| AbsName | |
Fields
| |
Instances
| NameToExpr AbstractName Source # | Turn an | ||||
Defined in Agda.Syntax.Abstract Methods nameToExpr :: AbstractName -> Expr Source # | |||||
| HasNameBindingSite AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: AbstractName -> Range Source # | |||||
| HasNameId AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods nameId :: AbstractName -> NameId Source # | |||||
| IsInstanceDef AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods isInstanceDef :: AbstractName -> Maybe KwRange Source # | |||||
| LensFixity AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| Pretty AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods pretty :: AbstractName -> Doc Source # prettyPrec :: Int -> AbstractName -> Doc Source # prettyList :: [AbstractName] -> Doc Source # | |||||
| HasRange AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods getRange :: AbstractName -> Range Source # | |||||
| KillRange AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| SetRange AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods setRange :: Range -> AbstractName -> AbstractName Source # | |||||
| InScope AbstractName Source # | |||||
Defined in Agda.Syntax.Scope.Base Methods | |||||
| SetBindingSite AbstractName Source # | |||||
Defined in Agda.Syntax.Scope.Base Methods setBindingSite :: Range -> AbstractName -> AbstractName Source # | |||||
| ToConcrete AbstractName Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete Associated Types
Methods toConcrete :: MonadToConcrete m => AbstractName -> m (ConOfAbs AbstractName) Source # bindToConcrete :: MonadToConcrete m => AbstractName -> (ConOfAbs AbstractName -> m b) -> m b Source # | |||||
| PrettyTCM AbstractName Source # | |||||
Defined in Agda.TypeChecking.Pretty Methods prettyTCM :: MonadPretty m => AbstractName -> m Doc Source # | |||||
| EmbPrj AbstractName Source # | |||||
| NFData AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods rnf :: AbstractName -> () # | |||||
| Generic AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Associated Types
| |||||
| Show AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods showsPrec :: Int -> AbstractName -> ShowS # show :: AbstractName -> String # showList :: [AbstractName] -> ShowS # | |||||
| Eq AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Ord AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods compare :: AbstractName -> AbstractName -> Ordering # (<) :: AbstractName -> AbstractName -> Bool # (<=) :: AbstractName -> AbstractName -> Bool # (>) :: AbstractName -> AbstractName -> Bool # (>=) :: AbstractName -> AbstractName -> Bool # max :: AbstractName -> AbstractName -> AbstractName # min :: AbstractName -> AbstractName -> AbstractName # | |||||
| Hashable AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| type ConOfAbs AbstractName Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete | |||||
| type Rep AbstractName Source # | |||||
Defined in Agda.Syntax.Abstract.Name type Rep AbstractName = D1 ('MetaData "AbstractName" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "AbsName" 'PrefixI 'True) ((S1 ('MetaSel ('Just "anameName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName) :*: S1 ('MetaSel ('Just "anameKind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KindOfName)) :*: (S1 ('MetaSel ('Just "anameLineage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WhyInScope) :*: S1 ('MetaSel ('Just "anameMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameMetadata)))) | |||||
data AmbQNameEntry Source #
Alternative in AmbiguousQName.
Constructors
| AmbQName QName |
|
| AmbAbstractName AbstractName |
|
Instances
| HasRange AmbQNameEntry Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods getRange :: AmbQNameEntry -> Range Source # | |||||
| KillRange AmbQNameEntry Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| NFData AmbQNameEntry Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods rnf :: AmbQNameEntry -> () # | |||||
| Semigroup AmbQNameEntry Source # | Prefer | ||||
Defined in Agda.Syntax.Abstract.Name Methods (<>) :: AmbQNameEntry -> AmbQNameEntry -> AmbQNameEntry # sconcat :: NonEmpty AmbQNameEntry -> AmbQNameEntry # stimes :: Integral b => b -> AmbQNameEntry -> AmbQNameEntry # | |||||
| Generic AmbQNameEntry Source # | |||||
Defined in Agda.Syntax.Abstract.Name Associated Types
| |||||
| Show AmbQNameEntry Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods showsPrec :: Int -> AmbQNameEntry -> ShowS # show :: AmbQNameEntry -> String # showList :: [AmbQNameEntry] -> ShowS # | |||||
| Eq AmbQNameEntry Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods (==) :: AmbQNameEntry -> AmbQNameEntry -> Bool # (/=) :: AmbQNameEntry -> AmbQNameEntry -> Bool # | |||||
| Ord AmbQNameEntry Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods compare :: AmbQNameEntry -> AmbQNameEntry -> Ordering # (<) :: AmbQNameEntry -> AmbQNameEntry -> Bool # (<=) :: AmbQNameEntry -> AmbQNameEntry -> Bool # (>) :: AmbQNameEntry -> AmbQNameEntry -> Bool # (>=) :: AmbQNameEntry -> AmbQNameEntry -> Bool # max :: AmbQNameEntry -> AmbQNameEntry -> AmbQNameEntry # min :: AmbQNameEntry -> AmbQNameEntry -> AmbQNameEntry # | |||||
| type Rep AmbQNameEntry Source # | |||||
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 | |
Fields | |
Instances
| Pretty AmbiguousQName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods pretty :: AmbiguousQName -> Doc Source # prettyPrec :: Int -> AmbiguousQName -> Doc Source # prettyList :: [AmbiguousQName] -> Doc Source # | |
| NumHoles AmbiguousQName Source # | We can have an instance for ambiguous names as all share a common concrete name. |
Defined in Agda.Syntax.Abstract.Name Methods numHoles :: AmbiguousQName -> Int Source # | |
| NamesIn AmbiguousQName Source # | |
Defined in Agda.Syntax.Internal.Names Methods namesAndMetasIn' :: Monoid m => (Either QName MetaId -> m) -> AmbiguousQName -> m Source # | |
| HasRange AmbiguousQName Source # | The range of an |
Defined in Agda.Syntax.Abstract.Name Methods getRange :: AmbiguousQName -> Range Source # | |
| KillRange AmbiguousQName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods | |
| EmbPrj AmbiguousQName Source # | Note: Serialization of |
Defined in Agda.TypeChecking.Serialise.Instances.Common | |
| Sized AmbiguousQName Source # | |
Defined in Agda.Syntax.Abstract.Name | |
| NFData AmbiguousQName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods rnf :: AmbiguousQName -> () # | |
| Show AmbiguousQName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods showsPrec :: Int -> AmbiguousQName -> ShowS # show :: AmbiguousQName -> String # showList :: [AmbiguousQName] -> ShowS # | |
| Eq AmbiguousQName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods (==) :: AmbiguousQName -> AmbiguousQName -> Bool # (/=) :: AmbiguousQName -> AmbiguousQName -> Bool # | |
| Ord AmbiguousQName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods compare :: AmbiguousQName -> AmbiguousQName -> Ordering # (<) :: AmbiguousQName -> AmbiguousQName -> Bool # (<=) :: AmbiguousQName -> AmbiguousQName -> Bool # (>) :: AmbiguousQName -> AmbiguousQName -> Bool # (>=) :: AmbiguousQName -> AmbiguousQName -> Bool # max :: AmbiguousQName -> AmbiguousQName -> AmbiguousQName # min :: AmbiguousQName -> AmbiguousQName -> AmbiguousQName # | |
class HasNameBindingSite a where Source #
Methods
nameBindingSite :: a -> Range Source #
Instances
| HasNameBindingSite AbstractModule Source # | |
Defined in Agda.Syntax.Abstract.Name Methods | |
| HasNameBindingSite AbstractName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: AbstractName -> Range Source # | |
| HasNameBindingSite ModuleName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: ModuleName -> Range Source # | |
| HasNameBindingSite Name Source # | |
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: Name -> Range Source # | |
| HasNameBindingSite QName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: QName -> Range Source # | |
class IsProjP a where Source #
Check whether we are a projection pattern.
Methods
isProjP :: a -> Maybe (ProjOrigin, AmbiguousQName) Source #
Instances
| IsProjP Expr Source # | |
Defined in Agda.Syntax.Abstract Methods isProjP :: Expr -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP Void Source # | |
Defined in Agda.Syntax.Abstract.Name Methods isProjP :: Void -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP (Pattern' e) Source # | |
Defined in Agda.Syntax.Abstract Methods isProjP :: Pattern' e -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP a => IsProjP (Arg a) Source # | |
Defined in Agda.Syntax.Abstract.Name Methods isProjP :: Arg a -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP (Pattern' a) Source # | |
Defined in Agda.Syntax.Internal Methods isProjP :: Pattern' a -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP a => IsProjP (Named n a) Source # | |
Defined in Agda.Syntax.Abstract.Name Methods isProjP :: Named n a -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
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 ( |
| CoConName | Constructor name (definitely |
| 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 |
| DataName | Name of a |
| RecName | Name of a |
| FunName | Name of a defined function. |
| AxiomName | Name of a |
| PrimName | Name of a |
| OtherDefName | A |
Instances
| KillRange KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| EmbPrj KindOfName Source # | |||||
| NFData KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods rnf :: KindOfName -> () # | |||||
| Bounded KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Enum KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods succ :: KindOfName -> KindOfName # pred :: KindOfName -> KindOfName # toEnum :: Int -> KindOfName # fromEnum :: KindOfName -> Int # enumFrom :: KindOfName -> [KindOfName] # enumFromThen :: KindOfName -> KindOfName -> [KindOfName] # enumFromTo :: KindOfName -> KindOfName -> [KindOfName] # enumFromThenTo :: KindOfName -> KindOfName -> KindOfName -> [KindOfName] # | |||||
| Generic KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Associated Types
| |||||
| Show KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods showsPrec :: Int -> KindOfName -> ShowS # show :: KindOfName -> String # showList :: [KindOfName] -> ShowS # | |||||
| Eq KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Ord KindOfName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods compare :: KindOfName -> KindOfName -> Ordering # (<) :: KindOfName -> KindOfName -> Bool # (<=) :: KindOfName -> KindOfName -> Bool # (>) :: KindOfName -> KindOfName -> Bool # (>=) :: KindOfName -> KindOfName -> Bool # max :: KindOfName -> KindOfName -> KindOfName # min :: KindOfName -> KindOfName -> KindOfName # | |||||
| type Rep KindOfName Source # | |||||
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))))) | |||||
Make a Name from some kind of string.
Minimal complete definition
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
| SubstExpr ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract Methods substExpr :: [(Name, Expr)] -> ModuleName -> ModuleName Source # | |||||
| HasNameBindingSite ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: ModuleName -> Range Source # | |||||
| ExprLike ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Views Methods recurseExpr :: RecurseExprFn m ModuleName Source # foldExpr :: FoldExprFn m ModuleName Source # traverseExpr :: TraverseExprFn m ModuleName Source # mapExpr :: (Expr -> Expr) -> ModuleName -> ModuleName Source # | |||||
| Pretty ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods pretty :: ModuleName -> Doc Source # prettyPrec :: Int -> ModuleName -> Doc Source # prettyList :: [ModuleName] -> Doc Source # | |||||
| IsNoName ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods isNoName :: ModuleName -> Bool Source # | |||||
| HasRange ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods getRange :: ModuleName -> Range Source # | |||||
| KillRange ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| KillRange Sections Source # | |||||
Defined in Agda.TypeChecking.Monad.Base Methods | |||||
| SetRange ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods setRange :: Range -> ModuleName -> ModuleName Source # | |||||
| SetBindingSite ModuleName Source # | Sets the binding site of all names in the path. | ||||
Defined in Agda.Syntax.Scope.Base Methods setBindingSite :: Range -> ModuleName -> ModuleName Source # | |||||
| ToConcrete ModuleName Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete Associated Types
Methods toConcrete :: MonadToConcrete m => ModuleName -> m (ConOfAbs ModuleName) Source # bindToConcrete :: MonadToConcrete m => ModuleName -> (ConOfAbs ModuleName -> m b) -> m b Source # | |||||
| PrettyTCM ModuleName Source # | |||||
Defined in Agda.TypeChecking.Pretty Methods prettyTCM :: MonadPretty m => ModuleName -> m Doc Source # | |||||
| InstantiateFull ModuleName Source # | |||||
Defined in Agda.TypeChecking.Reduce Methods instantiateFull' :: ModuleName -> ReduceM ModuleName Source # | |||||
| EmbPrj ModuleName Source # | |||||
Defined in Agda.TypeChecking.Serialise.Instances.Common | |||||
| Null ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Sized ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| NFData ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods rnf :: ModuleName -> () # | |||||
| Show ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods showsPrec :: Int -> ModuleName -> ShowS # show :: ModuleName -> String # showList :: [ModuleName] -> ShowS # | |||||
| Eq ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Ord ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods compare :: ModuleName -> ModuleName -> Ordering # (<) :: ModuleName -> ModuleName -> Bool # (<=) :: ModuleName -> ModuleName -> Bool # (>) :: ModuleName -> ModuleName -> Bool # (>=) :: ModuleName -> ModuleName -> Bool # max :: ModuleName -> ModuleName -> ModuleName # min :: ModuleName -> ModuleName -> ModuleName # | |||||
| Hashable ModuleName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| type ConOfAbs ModuleName Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete | |||||
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
| HasNameBindingSite Name Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: Name -> Range Source # | |||||
| HasNameId Name Source # | |||||
| LensFixity Name Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| LensFixity' Name Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Pretty Name Source # | |||||
| IsNoName Name Source # | An abstract name is empty if its concrete name is empty. | ||||
| LensInScope Name Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods lensInScope :: Lens' Name NameInScope Source # isInScope :: Name -> NameInScope Source # mapInScope :: (NameInScope -> NameInScope) -> Name -> Name Source # setInScope :: Name -> Name Source # setNotInScope :: Name -> Name Source # | |||||
| NumHoles Name Source # | |||||
| Suggest Name Source # | |||||
Defined in Agda.Syntax.Internal | |||||
| HasRange Name Source # | |||||
| KillRange Name Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| SetRange Name Source # | |||||
| SetBindingSite Name Source # | |||||
Defined in Agda.Syntax.Scope.Base | |||||
| ToConcrete Name Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete Associated Types
| |||||
| Reify Name Source # | |||||
Defined in Agda.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| FreshName Name Source # | |||||
Defined in Agda.TypeChecking.Monad.Base Methods freshName_ :: MonadFresh NameId m => Name -> m Name Source # | |||||
| AddContext Name Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Name -> m a -> m a Source # contextSize :: Name -> Nat Source # | |||||
| PrettyTCM Name Source # | |||||
Defined in Agda.TypeChecking.Pretty | |||||
| InstantiateFull Name Source # | |||||
Defined in Agda.TypeChecking.Reduce | |||||
| EmbPrj Name Source # | |||||
| Subst Name Source # | |||||
Defined in Agda.TypeChecking.Substitute Associated Types
Methods applySubst :: Substitution' (SubstArg Name) -> Name -> Name Source # | |||||
| Null Name Source # | |||||
| NFData Name Source # | The range is not forced. | ||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Show Name Source # | Show instances (only for debug printing!) Use | ||||
| Eq Name Source # | Important instances: For the identity and comparing of names, only the | ||||
| Ord Name Source # | |||||
| Hashable Name Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| AddContext (Dom (Name, Type)) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Dom (Name, Type) -> m a -> m a Source # | |||||
| (ToAbstract r, AbsOfRef r ~ Expr) => ToAbstract (Dom r, Name) Source # | |||||
Defined in Agda.Syntax.Translation.ReflectedToAbstract Associated Types
Methods toAbstract :: MonadReflectedToAbstract m => (Dom r, Name) -> m (AbsOfRef (Dom r, Name)) Source # | |||||
| AddContext (Name, Dom Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (Name, Dom Type) -> m a -> m a Source # | |||||
| AddContext (List1 Name, Dom Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context | |||||
| AddContext (List1 (Arg Name), Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context | |||||
| AddContext (List1 (NamedArg Name), Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context | |||||
| AddContext (List1 (WithHiding Name), Dom Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 (WithHiding Name), Dom Type) -> m a -> m a Source # contextSize :: (List1 (WithHiding Name), Dom Type) -> Nat Source # | |||||
| AddContext (List1 (Dom Name), Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context | |||||
| AddContext ([Name], Dom Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Name], Dom Type) -> m a -> m a Source # | |||||
| AddContext ([Arg Name], Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Arg Name], Type) -> m a -> m a Source # | |||||
| AddContext ([NamedArg Name], Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([NamedArg Name], Type) -> m a -> m a Source # | |||||
| AddContext ([WithHiding Name], Dom Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([WithHiding Name], Dom Type) -> m a -> m a Source # contextSize :: ([WithHiding Name], Dom Type) -> Nat Source # | |||||
| AddContext ([Dom Name], Type) Source # | |||||
Defined in Agda.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Dom Name], Type) -> m a -> m a Source # | |||||
| type ConOfAbs Name Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete | |||||
| type ReifiesTo Name Source # | |||||
Defined in Agda.Syntax.Translation.InternalToAbstract | |||||
| type SubstArg Name Source # | |||||
Defined in Agda.TypeChecking.Substitute | |||||
| type AbsOfRef (Dom r, Name) Source # | |||||
Defined in Agda.Syntax.Translation.ReflectedToAbstract | |||||
data NameMetadata Source #
Constructors
| NameMetadata | |
Fields | |
Instances
| IsInstanceDef NameMetadata Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods isInstanceDef :: NameMetadata -> Maybe KwRange Source # | |||||
| KillRange NameMetadata Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| EmbPrj NameMetadata Source # | |||||
| Null NameMetadata Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| NFData NameMetadata Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods rnf :: NameMetadata -> () # | |||||
| Generic NameMetadata Source # | |||||
Defined in Agda.Syntax.Abstract.Name Associated Types
| |||||
| Show NameMetadata Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods showsPrec :: Int -> NameMetadata -> ShowS # show :: NameMetadata -> String # showList :: [NameMetadata] -> ShowS # | |||||
| type Rep NameMetadata Source # | |||||
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))) | |||||
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 | |
Fields
| |
Instances
| HasNameBindingSite QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods nameBindingSite :: QName -> Range Source # | |||||
| HasNameId QName Source # | |||||
| DeclaredNames KName Source # | |||||
Defined in Agda.Syntax.Abstract.Views Methods declaredNames :: Collection KName m => KName -> m Source # | |||||
| ExprLike QName Source # | |||||
Defined in Agda.Syntax.Abstract.Views Methods recurseExpr :: RecurseExprFn m QName Source # foldExpr :: FoldExprFn m QName Source # | |||||
| LensFixity QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| LensFixity' QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Pretty QName Source # | |||||
| LensInScope QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods lensInScope :: Lens' QName NameInScope Source # isInScope :: QName -> NameInScope Source # mapInScope :: (NameInScope -> NameInScope) -> QName -> QName Source # setInScope :: QName -> QName Source # setNotInScope :: QName -> QName Source # | |||||
| NumHoles QName Source # | |||||
| TermLike QName Source # | |||||
| NamesIn QName Source # | |||||
Defined in Agda.Syntax.Internal.Names | |||||
| HasRange QName Source # | |||||
| KillRange QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| KillRange Definitions Source # | |||||
Defined in Agda.TypeChecking.Monad.Base Methods | |||||
| KillRange RewriteRuleMap Source # | |||||
Defined in Agda.TypeChecking.Monad.Base Methods | |||||
| SetRange QName Source # | |||||
| SetBindingSite QName Source # | |||||
Defined in Agda.Syntax.Scope.Base | |||||
| ToConcrete QName Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete Associated Types
| |||||
| Occurs QName Source # | |||||
| ChaseDisplayForms QName Source # | |||||
Defined in Agda.TypeChecking.Monad.Signature | |||||
| PrettyTCM QName Source # | Automatically highlights the resulting document with the correct name kind. | ||||
Defined in Agda.TypeChecking.Pretty | |||||
| FromTerm QName Source # | |||||
Defined in Agda.TypeChecking.Primitive | |||||
| PrimTerm QName Source # | |||||
| PrimType QName Source # | |||||
| ToTerm QName Source # | |||||
| InstantiateFull QName Source # | |||||
Defined in Agda.TypeChecking.Reduce | |||||
| EmbPrj QName Source # | |||||
| Subst QName Source # | |||||
Defined in Agda.TypeChecking.Substitute.Class Associated Types
Methods applySubst :: Substitution' (SubstArg QName) -> QName -> QName Source # | |||||
| Unquote QName Source # | |||||
| Null QName Source # | |||||
| Sized QName Source # | |||||
| NFData QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| Generic QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name Associated Types
| |||||
| Show QName Source # | |||||
| Eq QName Source # | |||||
| Ord QName Source # | |||||
| Hashable QName Source # | |||||
Defined in Agda.Syntax.Abstract.Name | |||||
| type ConOfAbs QName Source # | |||||
Defined in Agda.Syntax.Translation.AbstractToConcrete | |||||
| type SubstArg QName Source # | |||||
Defined in Agda.TypeChecking.Substitute.Class | |||||
| type Rep QName Source # | |||||
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))) | |||||
Something preceeded by a qualified name.
Instances
| Functor QNamed Source # | |||||
| Foldable QNamed Source # | |||||
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 # elem :: Eq a => a -> QNamed a -> Bool # maximum :: Ord a => QNamed a -> a # minimum :: Ord a => QNamed a -> a # | |||||
| Traversable QNamed Source # | |||||
| Pretty a => Pretty (QNamed a) Source # | |||||
| Reify (QNamed Clause) Source # | |||||
Defined in Agda.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| Reify (QNamed System) Source # | |||||
Defined in Agda.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| ToAbstract (QNamed Clause) Source # | |||||
Defined in Agda.Syntax.Translation.ReflectedToAbstract Associated Types
Methods toAbstract :: MonadReflectedToAbstract m => QNamed Clause -> m (AbsOfRef (QNamed Clause)) Source # | |||||
| ToAbstract (List1 (QNamed Clause)) Source # | |||||
Defined in Agda.Syntax.Translation.ReflectedToAbstract | |||||
| ToAbstract [QNamed Clause] Source # | |||||
Defined in Agda.Syntax.Translation.ReflectedToAbstract Associated Types
Methods toAbstract :: MonadReflectedToAbstract m => [QNamed Clause] -> m (AbsOfRef [QNamed Clause]) Source # | |||||
| PrettyTCM (QNamed Clause) Source # | |||||
Defined in Agda.TypeChecking.Pretty | |||||
| Show a => Show (QNamed a) Source # | |||||
| type ReifiesTo (QNamed Clause) Source # | |||||
Defined in Agda.Syntax.Translation.InternalToAbstract | |||||
| type ReifiesTo (QNamed System) Source # | |||||
Defined in Agda.Syntax.Translation.InternalToAbstract | |||||
| type AbsOfRef (QNamed Clause) Source # | |||||
Defined in Agda.Syntax.Translation.ReflectedToAbstract | |||||
| type AbsOfRef (List1 (QNamed Clause)) Source # | |||||
| type AbsOfRef [QNamed Clause] Source # | |||||
Defined in Agda.Syntax.Translation.ReflectedToAbstract | |||||
A name suffix.
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
| KillRange WhyInScope Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods | |||||
| EmbPrj WhyInScope Source # | |||||
| NFData WhyInScope Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods rnf :: WhyInScope -> () # | |||||
| Generic WhyInScope Source # | |||||
Defined in Agda.Syntax.Abstract.Name Associated Types
| |||||
| Show WhyInScope Source # | |||||
Defined in Agda.Syntax.Abstract.Name Methods showsPrec :: Int -> WhyInScope -> ShowS # show :: WhyInScope -> String # showList :: [WhyInScope] -> ShowS # | |||||
| type Rep WhyInScope Source # | |||||
Defined in Agda.Syntax.Abstract.Name type Rep WhyInScope = D1 ('MetaData "WhyInScope" "Agda.Syntax.Abstract.Name" "Agda-2.9.0-inplace" 'False) (C1 ('MetaCons "Defined" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Opened" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WhyInScope)) :+: C1 ('MetaCons "Applied" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WhyInScope)))) | |||||
class IsNoName a where Source #
Check whether a name is the empty name "_".
Minimal complete definition
Nothing
Methods
Instances
| IsNoName ModuleName Source # | |
Defined in Agda.Syntax.Abstract.Name Methods isNoName :: ModuleName -> Bool Source # | |
| IsNoName Name Source # | An abstract name is empty if its concrete name is empty. |
| IsNoName Name Source # | |
| IsNoName QName Source # | |
| IsNoName RawTopLevelModuleName Source # | |
Defined in Agda.Syntax.TopLevelModuleName Methods isNoName :: RawTopLevelModuleName -> Bool Source # | |
| IsNoName ByteString Source # | |
Defined in Agda.Syntax.Concrete.Name Methods isNoName :: ByteString -> Bool Source # | |
| IsNoName String Source # | |
| IsNoName a => IsNoName (Ranged a) Source # | |
| IsNoName a => IsNoName (WithOrigin a) Source # | |
Defined in Agda.Syntax.Concrete.Name Methods isNoName :: WithOrigin a -> Bool Source # | |
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, … |