Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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)
- data InternalIdentData
- data Ident
- unusedIdent :: Text
- runIdent :: Ident -> Text
- showIdent :: Ident -> Text
- freshIdent :: MonadSupply m => Text -> m Ident
- freshIdent' :: MonadSupply m => m Ident
- isPlainIdent :: Ident -> Bool
- 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 QualifiedBy
- pattern ByNullSourcePos :: QualifiedBy
- isBySourcePos :: QualifiedBy -> Bool
- byMaybeModuleName :: Maybe ModuleName -> QualifiedBy
- toMaybeModuleName :: QualifiedBy -> Maybe ModuleName
- data Qualified a = Qualified QualifiedBy 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.
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 #
data InternalIdentData Source #
This type is meant to be extended with any new uses for idents that come
along. Adding constructors to this type is cheaper than adding them to
Ident
because functions that match on Ident
can ignore all
InternalIdent
s with a single pattern, and thus don't have to change if
a new InternalIdentData
constructor is created.
Instances
Names for value identifiers
Ident Text | An alphanumeric identifier |
GenIdent (Maybe Text) Integer | A generated name for an identifier |
UnusedIdent | A generated name used only for type-checking |
InternalIdent !InternalIdentData | A generated name used only for internal transformations |
Instances
unusedIdent :: Text Source #
freshIdent :: MonadSupply m => Text -> m Ident Source #
freshIdent' :: MonadSupply m => m Ident Source #
isPlainIdent :: Ident -> Bool Source #
newtype OpName (a :: OpNameType) Source #
Operator alias names.
Instances
FromJSON (OpName a) Source # | |
ToJSON (OpName a) Source # | |
Defined in Language.PureScript.Names | |
Generic (OpName a) Source # | |
Show (OpName a) Source # | |
NFData (OpName a) Source # | |
Defined in Language.PureScript.Names | |
Eq (OpName a) Source # | |
Ord (OpName a) Source # | |
Defined in Language.PureScript.Names | |
Serialise (OpName a) Source # | |
type Rep (OpName a) Source # | |
Defined in Language.PureScript.Names |
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.
Instances
data ProperNameType Source #
The closed set of proper name types.
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
Instances
runModuleName :: ModuleName -> Text Source #
isBuiltinModuleName :: ModuleName -> Bool Source #
data QualifiedBy Source #
Instances
pattern ByNullSourcePos :: QualifiedBy Source #
isBySourcePos :: QualifiedBy -> Bool Source #
A qualified name, i.e. a name with an optional module name
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