Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.PureScript.Names
Description
Data types for names
Synopsis
- data Name
- getIdentName :: Name -> Maybe Ident
- getValOpName :: Name -> Maybe (OpName 'ValueOpName)
- getTypeName :: Name -> Maybe (ProperName 'TypeName)
- getTypeOpName :: Name -> Maybe (OpName 'TypeOpName)
- getDctorName :: Name -> Maybe (ProperName 'ConstructorName)
- getClassName :: Name -> Maybe (ProperName 'ClassName)
- getModName :: Name -> Maybe ModuleName
- data Ident
- runIdent :: Ident -> Text
- showIdent :: Ident -> Text
- freshIdent :: MonadSupply m => Text -> m Ident
- freshIdent' :: MonadSupply m => m Ident
- newtype OpName (a :: OpNameType) = OpName {}
- showOp :: OpName a -> Text
- data OpNameType
- eraseOpName :: OpName a -> OpName 'AnyOpName
- coerceOpName :: OpName a -> OpName b
- newtype ProperName (a :: ProperNameType) = ProperName {}
- data ProperNameType
- coerceProperName :: ProperName a -> ProperName b
- newtype ModuleName = ModuleName Text
- runModuleName :: ModuleName -> Text
- moduleNameFromString :: Text -> ModuleName
- isBuiltinModuleName :: ModuleName -> Bool
- data Qualified a = Qualified (Maybe ModuleName) a
- showQualified :: (a -> Text) -> Qualified a -> Text
- getQual :: Qualified a -> Maybe ModuleName
- qualify :: ModuleName -> Qualified a -> (ModuleName, a)
- mkQualified :: a -> ModuleName -> Qualified a
- disqualify :: Qualified a -> a
- disqualifyFor :: Maybe ModuleName -> Qualified a -> Maybe a
- isQualified :: Qualified a -> Bool
- isUnqualified :: Qualified a -> Bool
- isQualifiedWith :: ModuleName -> Qualified a -> Bool
Documentation
A sum of the possible name types, useful for error and lint messages.
Constructors
Instances
getValOpName :: Name -> Maybe (OpName 'ValueOpName) Source #
getTypeName :: Name -> Maybe (ProperName 'TypeName) Source #
getTypeOpName :: Name -> Maybe (OpName 'TypeOpName) Source #
getDctorName :: Name -> Maybe (ProperName 'ConstructorName) Source #
getClassName :: Name -> Maybe (ProperName 'ClassName) Source #
getModName :: Name -> Maybe ModuleName Source #
Names for value identifiers
Constructors
Ident Text | An alphanumeric identifier |
GenIdent (Maybe Text) Integer | A generated name for an identifier |
UnusedIdent | A generated name used only for type-checking |
Instances
Eq Ident Source # | |
Ord Ident Source # | |
Show Ident Source # | |
Generic Ident Source # | |
ToJSON Ident Source # | |
Defined in Language.PureScript.Names | |
FromJSON Ident Source # | |
NFData Ident Source # | |
Defined in Language.PureScript.Names | |
Serialise Ident Source # | |
type Rep Ident Source # | |
Defined in Language.PureScript.Names type Rep Ident = D1 ('MetaData "Ident" "Language.PureScript.Names" "purescript-ast-0.1.1.0-GLW6QEKazq2LhbbklNgI7y" 'False) (C1 ('MetaCons "Ident" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: (C1 ('MetaCons "GenIdent" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: C1 ('MetaCons "UnusedIdent" 'PrefixI 'False) (U1 :: Type -> Type))) |
freshIdent :: MonadSupply m => Text -> m Ident Source #
freshIdent' :: MonadSupply m => m Ident Source #
newtype OpName (a :: OpNameType) Source #
Operator alias names.
Instances
Eq (OpName a) Source # | |
Ord (OpName a) Source # | |
Defined in Language.PureScript.Names | |
Show (OpName a) Source # | |
Generic (OpName a) Source # | |
ToJSON (OpName a) Source # | |
Defined in Language.PureScript.Names | |
FromJSON (OpName a) Source # | |
NFData (OpName a) Source # | |
Defined in Language.PureScript.Names | |
Serialise (OpName a) Source # | |
type Rep (OpName a) Source # | |
Defined in Language.PureScript.Names |
data OpNameType Source #
The closed set of operator alias types.
Constructors
ValueOpName | |
TypeOpName | |
AnyOpName |
coerceOpName :: OpName a -> OpName b Source #
newtype ProperName (a :: ProperNameType) Source #
Proper names, i.e. capitalized names for e.g. module names, type//data constructors.
Constructors
ProperName | |
Fields |
Instances
data ProperNameType Source #
The closed set of proper name types.
Constructors
TypeName | |
ConstructorName | |
ClassName | |
Namespace |
coerceProperName :: ProperName a -> ProperName b Source #
Coerces a ProperName from one ProperNameType to another. This should be used with care, and is primarily used to convert ClassNames into TypeNames after classes have been desugared.
newtype ModuleName Source #
Module names
Constructors
ModuleName Text |
Instances
runModuleName :: ModuleName -> Text Source #
isBuiltinModuleName :: ModuleName -> Bool Source #
A qualified name, i.e. a name with an optional module name
Constructors
Qualified (Maybe ModuleName) a |
Instances
qualify :: ModuleName -> Qualified a -> (ModuleName, a) Source #
Provide a default module name, if a name is unqualified
mkQualified :: a -> ModuleName -> Qualified a Source #
Makes a qualified value from a name and module name.
disqualify :: Qualified a -> a Source #
Remove the module name from a qualified name
disqualifyFor :: Maybe ModuleName -> Qualified a -> Maybe a Source #
Remove the qualification from a value when it is qualified with a particular module name.
isQualified :: Qualified a -> Bool Source #
Checks whether a qualified value is actually qualified with a module reference
isUnqualified :: Qualified a -> Bool Source #
Checks whether a qualified value is not actually qualified with a module reference
isQualifiedWith :: ModuleName -> Qualified a -> Bool Source #
Checks whether a qualified value is qualified with a particular module