| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Mikan.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
- mkName :: Range -> NameId -> ShortText -> Name
- mkName_ :: NameId -> ShortText -> Name
- 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
- suggests :: [Suggestion] -> ShortText
- 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 {}
- data ConHead = ConHead {
- conName :: !QName
- conDataRecord :: !DataOrRecord
- conInductive :: !Induction
- conFields :: [QName]
- class HasNameBindingSite a where
- nameBindingSite :: a -> Range
- class HasNameId a where
- class IsProjP a where
- isProjP :: a -> Maybe (ProjOrigin, AmbiguousQName)
- data KindOfName
- class LensConName a where
- lensConName :: Lens' a QName
- getConName :: a -> QName
- setConName :: QName -> a -> a
- mapConName :: (QName -> QName) -> a -> a
- newtype ModuleName = MName {
- mnameToList :: [Name]
- data Name = Name {}
- data NameMetadata = NameMetadata {}
- data QName = QName {}
- data QNamed a = QNamed {}
- data Suffix
- class Suggest a where
- suggestName :: a -> Maybe ShortText
- data Suggestion = Suggest a => Suggestion a
- 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 #
suggests :: [Suggestion] -> ShortText 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 Mikan.Syntax.Abstract Methods nameToExpr :: AbstractName -> Expr Source # | |||||
| HasNameBindingSite AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods nameBindingSite :: AbstractName -> Range Source # | |||||
| HasNameId AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods nameId :: AbstractName -> NameId Source # | |||||
| IsInstanceDef AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods isInstanceDef :: AbstractName -> Maybe KwRange Source # | |||||
| LensFixity AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| Pretty AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods pretty :: AbstractName -> Doc Source # prettyPrec :: Int -> AbstractName -> Doc Source # prettyList :: [AbstractName] -> Doc Source # | |||||
| HasRange AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods getRange :: AbstractName -> Range Source # | |||||
| KillRange AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| SetRange AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods setRange :: Range -> AbstractName -> AbstractName Source # | |||||
| InScope AbstractName Source # | |||||
Defined in Mikan.Syntax.Scope.Base Methods | |||||
| SetBindingSite AbstractName Source # | |||||
Defined in Mikan.Syntax.Scope.Base Methods setBindingSite :: Range -> AbstractName -> AbstractName Source # | |||||
| MarkLive AbstractName Source # | |||||
Defined in Mikan.Syntax.Scope.Trimming Methods markLiveName :: AbstractName -> ScopeM () Source # | |||||
| ToConcrete AbstractName Source # | |||||
Defined in Mikan.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 Mikan.TypeChecking.Pretty Methods prettyTCM :: MonadPretty m => AbstractName -> m Doc Source # | |||||
| EmbPrj AbstractName Source # | |||||
| NFData AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods rnf :: AbstractName -> () # | |||||
| Generic AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Associated Types
| |||||
| Show AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods showsPrec :: Int -> AbstractName -> ShowS # show :: AbstractName -> String # showList :: [AbstractName] -> ShowS # | |||||
| Eq AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| Ord AbstractName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name | |||||
| type ConOfAbs AbstractName Source # | |||||
Defined in Mikan.Syntax.Translation.AbstractToConcrete | |||||
| type Rep AbstractName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name type Rep AbstractName = D1 ('MetaData "AbstractName" "Mikan.Syntax.Abstract.Name" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" '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 Mikan.Syntax.Abstract.Name Methods getRange :: AmbQNameEntry -> Range Source # | |||||
| KillRange AmbQNameEntry Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| NFData AmbQNameEntry Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods rnf :: AmbQNameEntry -> () # | |||||
| Semigroup AmbQNameEntry Source # | Prefer | ||||
Defined in Mikan.Syntax.Abstract.Name Methods (<>) :: AmbQNameEntry -> AmbQNameEntry -> AmbQNameEntry # sconcat :: NonEmpty AmbQNameEntry -> AmbQNameEntry # stimes :: Integral b => b -> AmbQNameEntry -> AmbQNameEntry # | |||||
| Generic AmbQNameEntry Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Associated Types
| |||||
| Show AmbQNameEntry Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods showsPrec :: Int -> AmbQNameEntry -> ShowS # show :: AmbQNameEntry -> String # showList :: [AmbQNameEntry] -> ShowS # | |||||
| Eq AmbQNameEntry Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods (==) :: AmbQNameEntry -> AmbQNameEntry -> Bool # (/=) :: AmbQNameEntry -> AmbQNameEntry -> Bool # | |||||
| Ord AmbQNameEntry Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name type Rep AmbQNameEntry = D1 ('MetaData "AmbQNameEntry" "Mikan.Syntax.Abstract.Name" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" '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 Mikan.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 Mikan.Syntax.Abstract.Name Methods numHoles :: AmbiguousQName -> Int Source # | |
| NamesIn AmbiguousQName Source # | |
Defined in Mikan.Syntax.Internal.Names Methods namesAndMetasIn' :: Monoid m => (Either QName MetaId -> m) -> AmbiguousQName -> m Source # | |
| HasRange AmbiguousQName Source # | The range of an |
Defined in Mikan.Syntax.Abstract.Name Methods getRange :: AmbiguousQName -> Range Source # | |
| KillRange AmbiguousQName Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods | |
| EmbPrj AmbiguousQName Source # | Note: Serialization of |
| Sized AmbiguousQName Source # | |
Defined in Mikan.Syntax.Abstract.Name | |
| NFData AmbiguousQName Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods rnf :: AmbiguousQName -> () # | |
| Show AmbiguousQName Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods showsPrec :: Int -> AmbiguousQName -> ShowS # show :: AmbiguousQName -> String # showList :: [AmbiguousQName] -> ShowS # | |
| Eq AmbiguousQName Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods (==) :: AmbiguousQName -> AmbiguousQName -> Bool # (/=) :: AmbiguousQName -> AmbiguousQName -> Bool # | |
| Ord AmbiguousQName Source # | |
Defined in Mikan.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 # | |
Store the names of the record fields in the constructor. This allows reduction of projection redexes outside of TCM. For instance, during substitution and application.
Constructors
| ConHead | |
Fields
| |
Instances
| LensConName ConHead Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| CopatternMatchingAllowed ConHead Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| Pretty ConHead Source # | |||||
| NamesIn ConHead Source # | |||||
Defined in Mikan.Syntax.Internal.Names | |||||
| HasRange ConHead Source # | |||||
| KillRange ConHead Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| SetRange ConHead Source # | |||||
| PrettyTCM ConHead Source # | |||||
Defined in Mikan.TypeChecking.Pretty | |||||
| InstantiateFull ConHead Source # | |||||
Defined in Mikan.TypeChecking.Reduce | |||||
| EmbPrj ConHead Source # | |||||
| NFData ConHead Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| Generic ConHead Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Associated Types
| |||||
| Show ConHead Source # | |||||
| Eq ConHead Source # | |||||
| Ord ConHead Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| type Rep ConHead Source # | |||||
Defined in Mikan.Syntax.Abstract.Name type Rep ConHead = D1 ('MetaData "ConHead" "Mikan.Syntax.Abstract.Name" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "ConHead" 'PrefixI 'True) ((S1 ('MetaSel ('Just "conName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 QName) :*: S1 ('MetaSel ('Just "conDataRecord") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DataOrRecord)) :*: (S1 ('MetaSel ('Just "conInductive") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Induction) :*: S1 ('MetaSel ('Just "conFields") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [QName])))) | |||||
class HasNameBindingSite a where Source #
Methods
nameBindingSite :: a -> Range Source #
Instances
| HasNameBindingSite AbstractModule Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods | |
| HasNameBindingSite AbstractName Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods nameBindingSite :: AbstractName -> Range Source # | |
| HasNameBindingSite ModuleName Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods nameBindingSite :: ModuleName -> Range Source # | |
| HasNameBindingSite Name Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods nameBindingSite :: Name -> Range Source # | |
| HasNameBindingSite QName Source # | |
Defined in Mikan.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 Mikan.Syntax.Abstract Methods isProjP :: Expr -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP Void Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods isProjP :: Void -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP (Pattern' e) Source # | |
Defined in Mikan.Syntax.Abstract Methods isProjP :: Pattern' e -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP a => IsProjP (Arg a) Source # | |
Defined in Mikan.Syntax.Abstract.Name Methods isProjP :: Arg a -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP (Pattern' a) Source # | |
Defined in Mikan.Syntax.Internal.Pattern Methods isProjP :: Pattern' a -> Maybe (ProjOrigin, AmbiguousQName) Source # | |
| IsProjP a => IsProjP (Named n a) Source # | |
Defined in Mikan.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 Mikan.Syntax.Abstract.Name Methods | |||||
| EmbPrj KindOfName Source # | |||||
| NFData KindOfName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods rnf :: KindOfName -> () # | |||||
| Bounded KindOfName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| Enum KindOfName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name Associated Types
| |||||
| Show KindOfName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods showsPrec :: Int -> KindOfName -> ShowS # show :: KindOfName -> String # showList :: [KindOfName] -> ShowS # | |||||
| Eq KindOfName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| Ord KindOfName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name type Rep KindOfName = D1 ('MetaData "KindOfName" "Mikan.Syntax.Abstract.Name" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" '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 LensConName a where Source #
Minimal complete definition
Nothing
Methods
lensConName :: Lens' a QName Source #
getConName :: a -> QName Source #
setConName :: QName -> a -> a Source #
mapConName :: (QName -> QName) -> a -> a Source #
Instances
| LensConName ConHead Source # | |
Defined in Mikan.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
| SubstExpr ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract Methods substExpr :: [(Name, Expr)] -> ModuleName -> ModuleName Source # | |||||
| HasNameBindingSite ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods nameBindingSite :: ModuleName -> Range Source # | |||||
| ExprLike ModuleName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name Methods pretty :: ModuleName -> Doc Source # prettyPrec :: Int -> ModuleName -> Doc Source # prettyList :: [ModuleName] -> Doc Source # | |||||
| IsNoName ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods isNoName :: ModuleName -> Bool Source # | |||||
| HasRange ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods getRange :: ModuleName -> Range Source # | |||||
| KillRange ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| KillRange Sections Source # | |||||
Defined in Mikan.TypeChecking.Monad.Base Methods | |||||
| SetRange ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods setRange :: Range -> ModuleName -> ModuleName Source # | |||||
| SetBindingSite ModuleName Source # | Sets the binding site of all names in the path. | ||||
Defined in Mikan.Syntax.Scope.Base Methods setBindingSite :: Range -> ModuleName -> ModuleName Source # | |||||
| MarkLive ModuleName Source # | |||||
Defined in Mikan.Syntax.Scope.Trimming Methods markLiveName :: ModuleName -> ScopeM () Source # | |||||
| ToConcrete ModuleName Source # | |||||
Defined in Mikan.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 Mikan.TypeChecking.Pretty Methods prettyTCM :: MonadPretty m => ModuleName -> m Doc Source # | |||||
| InstantiateFull ModuleName Source # | |||||
Defined in Mikan.TypeChecking.Reduce Methods instantiateFull' :: ModuleName -> ReduceM ModuleName Source # | |||||
| EmbPrj ModuleName Source # | |||||
| Null ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| Sized ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| NFData ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods rnf :: ModuleName -> () # | |||||
| Show ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods showsPrec :: Int -> ModuleName -> ShowS # show :: ModuleName -> String # showList :: [ModuleName] -> ShowS # | |||||
| Eq ModuleName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| Ord ModuleName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name | |||||
| type ConOfAbs ModuleName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name Methods nameBindingSite :: Name -> Range Source # | |||||
| HasNameId Name Source # | |||||
| Suggest Name Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| LensFixity Name Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| LensFixity' Name Source # | |||||
Defined in Mikan.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 Mikan.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 # | |||||
| HasRange Name Source # | |||||
| KillRange Name Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| SetRange Name Source # | |||||
| SetBindingSite Name Source # | |||||
Defined in Mikan.Syntax.Scope.Base | |||||
| ToConcrete Name Source # | |||||
Defined in Mikan.Syntax.Translation.AbstractToConcrete Associated Types
| |||||
| Reify Name Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| FreshName Name Source # | |||||
Defined in Mikan.TypeChecking.Monad.Base Methods freshName_ :: MonadFresh NameId m => Name -> m Name Source # | |||||
| AddContext Name Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Name -> m a -> m a Source # | |||||
| PrettyTCM Name Source # | |||||
Defined in Mikan.TypeChecking.Pretty | |||||
| InstantiateFull Name Source # | |||||
Defined in Mikan.TypeChecking.Reduce | |||||
| EmbPrj Name Source # | |||||
| Subst Name Source # | |||||
Defined in Mikan.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 Mikan.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 Mikan.Syntax.Abstract.Name | |||||
| (ToAbstract r, AbsOfRef r ~ Expr) => ToAbstract (Dom r, Name) Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract Associated Types
Methods toAbstract :: MonadReflectedToAbstract m => (Dom r, Name) -> m (AbsOfRef (Dom r, Name)) Source # | |||||
| t ~ Term => AddContext (Dom' t (Name, Type)) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Dom' t (Name, Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (Name, Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (Name, Dom' t Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (List1 Name, Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 Name, Dom' t Type) -> m a -> m a Source # | |||||
| AddContext (List1 (Arg Name), Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 (Arg Name), Type) -> m a -> m a Source # | |||||
| AddContext (List1 (NamedArg Name), Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 (NamedArg Name), Type) -> m a -> m a Source # | |||||
| AddContext (List1 (WithHiding Name), Dom Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 (WithHiding Name), Dom Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (List1 (Dom' t Name), Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 (Dom' t Name), Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext ([Name], Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Name], Dom' t Type) -> m a -> m a Source # | |||||
| AddContext ([Arg Name], Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Arg Name], Type) -> m a -> m a Source # | |||||
| AddContext ([NamedArg Name], Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([NamedArg Name], Type) -> m a -> m a Source # | |||||
| AddContext ([WithHiding Name], Dom Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([WithHiding Name], Dom Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext ([Dom' t Name], Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Dom' t Name], Type) -> m a -> m a Source # | |||||
| type ConOfAbs Name Source # | |||||
Defined in Mikan.Syntax.Translation.AbstractToConcrete | |||||
| type ReifiesTo Name Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract | |||||
| type SubstArg Name Source # | |||||
Defined in Mikan.TypeChecking.Substitute | |||||
| type AbsOfRef (Dom r, Name) Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract | |||||
data NameMetadata Source #
Constructors
| NameMetadata | |
Fields | |
Instances
| IsInstanceDef NameMetadata Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods isInstanceDef :: NameMetadata -> Maybe KwRange Source # | |||||
| KillRange NameMetadata Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| EmbPrj NameMetadata Source # | |||||
| Null NameMetadata Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| NFData NameMetadata Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods rnf :: NameMetadata -> () # | |||||
| Generic NameMetadata Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Associated Types
| |||||
| Show NameMetadata Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods showsPrec :: Int -> NameMetadata -> ShowS # show :: NameMetadata -> String # showList :: [NameMetadata] -> ShowS # | |||||
| type Rep NameMetadata Source # | |||||
Defined in Mikan.Syntax.Abstract.Name type Rep NameMetadata = D1 ('MetaData "NameMetadata" "Mikan.Syntax.Abstract.Name" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" '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 Mikan.Syntax.Abstract.Name Methods nameBindingSite :: QName -> Range Source # | |||||
| HasNameId QName Source # | |||||
| DeclaredNames KName Source # | |||||
Defined in Mikan.Syntax.Abstract.Views Methods declaredNames :: Collection KName m => KName -> m Source # | |||||
| ExprLike QName Source # | |||||
Defined in Mikan.Syntax.Abstract.Views Methods recurseExpr :: RecurseExprFn m QName Source # foldExpr :: FoldExprFn m QName Source # | |||||
| LensFixity QName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| LensFixity' QName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| Pretty QName Source # | |||||
| LensInScope QName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Internal.Names | |||||
| HasRange QName Source # | |||||
| KillRange QName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods | |||||
| KillRange Definitions Source # | |||||
Defined in Mikan.TypeChecking.Monad.Base Methods | |||||
| SetRange QName Source # | |||||
| SetBindingSite QName Source # | |||||
Defined in Mikan.Syntax.Scope.Base | |||||
| MarkLive QName Source # | |||||
Defined in Mikan.Syntax.Scope.Trimming Methods markLiveName :: QName -> ScopeM () Source # | |||||
| ToConcrete QName Source # | |||||
Defined in Mikan.Syntax.Translation.AbstractToConcrete Associated Types
| |||||
| ChaseDisplayForms QName Source # | |||||
Defined in Mikan.TypeChecking.Monad.Signature | |||||
| PrettyTCM QName Source # | Automatically highlights the resulting document with the correct name kind. | ||||
Defined in Mikan.TypeChecking.Pretty | |||||
| FromTerm QName Source # | |||||
Defined in Mikan.TypeChecking.Primitive | |||||
| PrimTerm QName Source # | |||||
| PrimType QName Source # | |||||
| ToTerm QName Source # | |||||
| InstantiateFull QName Source # | |||||
Defined in Mikan.TypeChecking.Reduce | |||||
| EmbPrj QName Source # | |||||
| Subst QName Source # | |||||
Defined in Mikan.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 Mikan.Syntax.Abstract.Name | |||||
| Generic QName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Associated Types
| |||||
| Show QName Source # | |||||
| Eq QName Source # | |||||
| Ord QName Source # | |||||
| Hashable QName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name | |||||
| type ConOfAbs QName Source # | |||||
Defined in Mikan.Syntax.Translation.AbstractToConcrete | |||||
| type SubstArg QName Source # | |||||
Defined in Mikan.TypeChecking.Substitute.Class | |||||
| type Rep QName Source # | |||||
Defined in Mikan.Syntax.Abstract.Name type Rep QName = D1 ('MetaData "QName" "Mikan.Syntax.Abstract.Name" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" '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 Mikan.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 Mikan.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| Reify (QNamed System) Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| ToAbstract (QNamed Clause) Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract Associated Types
Methods toAbstract :: MonadReflectedToAbstract m => QNamed Clause -> m (AbsOfRef (QNamed Clause)) Source # | |||||
| ToAbstract (List1 (QNamed Clause)) Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract | |||||
| ToAbstract [QNamed Clause] Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract Associated Types
Methods toAbstract :: MonadReflectedToAbstract m => [QNamed Clause] -> m (AbsOfRef [QNamed Clause]) Source # | |||||
| PrettyTCM (QNamed Clause) Source # | |||||
Defined in Mikan.TypeChecking.Pretty | |||||
| Show a => Show (QNamed a) Source # | |||||
| type ReifiesTo (QNamed Clause) Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract | |||||
| type ReifiesTo (QNamed System) Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract | |||||
| type AbsOfRef (QNamed Clause) Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract | |||||
| type AbsOfRef (List1 (QNamed Clause)) Source # | |||||
| type AbsOfRef [QNamed Clause] Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract | |||||
A name suffix.
class Suggest a where Source #
Suggest a name if available (i.e. name is not "_")
Methods
suggestName :: a -> Maybe ShortText Source #
Instances
| Suggest Name Source # | |
Defined in Mikan.Syntax.Abstract.Name | |
| Suggest Term Source # | |
Defined in Mikan.Syntax.Internal.Term | |
| Suggest ShortText Source # | |
Defined in Mikan.Syntax.Abstract.Name | |
| Suggest (Abs b) Source # | |
Defined in Mikan.Syntax.Internal.Dom | |
data Suggestion Source #
Constructors
| Suggest a => Suggestion a |
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 Mikan.Syntax.Abstract.Name Methods | |||||
| EmbPrj WhyInScope Source # | |||||
| NFData WhyInScope Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods rnf :: WhyInScope -> () # | |||||
| Generic WhyInScope Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Associated Types
| |||||
| Show WhyInScope Source # | |||||
Defined in Mikan.Syntax.Abstract.Name Methods showsPrec :: Int -> WhyInScope -> ShowS # show :: WhyInScope -> String # showList :: [WhyInScope] -> ShowS # | |||||
| type Rep WhyInScope Source # | |||||
Defined in Mikan.Syntax.Abstract.Name type Rep WhyInScope = D1 ('MetaData "WhyInScope" "Mikan.Syntax.Abstract.Name" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" '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 Mikan.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 Mikan.Syntax.TopLevelModuleName Methods isNoName :: RawTopLevelModuleName -> Bool Source # | |
| IsNoName ByteString Source # | |
Defined in Mikan.Syntax.Concrete.Name Methods isNoName :: ByteString -> Bool Source # | |
| IsNoName Text Source # | |
| IsNoName ShortText Source # | |
| IsNoName String Source # | |
| IsNoName a => IsNoName (Ranged a) Source # | |
| IsNoName a => IsNoName (WithOrigin a) Source # | |
Defined in Mikan.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, … |