Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.PureScript.Names
Description
Data types for names
- 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 = OpName {}
- showOp :: OpName a -> Text
- data OpNameType
- newtype ProperName a = ProperName {}
- data ProperNameType
- coerceProperName :: ProperName a -> ProperName b
- newtype ModuleName = ModuleName [ProperName Namespace]
- runModuleName :: ModuleName -> Text
- moduleNameFromString :: Text -> ModuleName
- 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.
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 #
Names for value identifiers
freshIdent :: MonadSupply m => Text -> m Ident #
freshIdent' :: MonadSupply m => m Ident #
Operator alias names.
newtype ProperName a #
Proper names, i.e. capitalized names for e.g. module names, type//data constructors.
Constructors
ProperName | |
Fields |
Instances
Eq (ProperName a) # | |
Ord (ProperName a) # | |
Show (ProperName a) # | |
Generic (ProperName a) # | |
ToJSON (ProperName a) # | |
FromJSON (ProperName a) # | |
NFData (ProperName a) # | |
type Rep (ProperName a) # | |
data ProperNameType #
The closed set of proper name types.
Constructors
TypeName | |
ConstructorName | |
ClassName | |
KindName | |
Namespace |
coerceProperName :: ProperName a -> ProperName b #
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.
runModuleName :: ModuleName -> Text #
moduleNameFromString :: Text -> ModuleName #
A qualified name, i.e. a name with an optional module name
Constructors
Qualified (Maybe ModuleName) a |
showQualified :: (a -> Text) -> Qualified a -> Text #
getQual :: Qualified a -> Maybe ModuleName #
qualify :: ModuleName -> Qualified a -> (ModuleName, a) #
Provide a default module name, if a name is unqualified
mkQualified :: a -> ModuleName -> Qualified a #
Makes a qualified value from a name and module name.
disqualify :: Qualified a -> a #
Remove the module name from a qualified name
disqualifyFor :: Maybe ModuleName -> Qualified a -> Maybe a #
Remove the qualification from a value when it is qualified with a particular module name.
isQualified :: Qualified a -> Bool #
Checks whether a qualified value is actually qualified with a module reference
isUnqualified :: Qualified a -> Bool #
Checks whether a qualified value is not actually qualified with a module reference
isQualifiedWith :: ModuleName -> Qualified a -> Bool #
Checks whether a qualified value is qualified with a particular module