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)
- 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 :: forall (a :: OpNameType). OpName a -> Text
- data OpNameType
- eraseOpName :: forall (a :: OpNameType). OpName a -> OpName 'AnyOpName
- coerceOpName :: forall (a :: OpNameType) (b :: OpNameType). OpName a -> OpName b
- newtype ProperName (a :: ProperNameType) = ProperName {}
- data ProperNameType
- coerceProperName :: forall (a :: ProperNameType) (b :: ProperNameType). 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.
Constructors
Instances
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 #
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.
Constructors
RuntimeLazyFactory | |
Lazy !Text |
Instances
FromJSON InternalIdentData # | |||||
Defined in Language.PureScript.Names Methods parseJSON :: Value -> Parser InternalIdentData # parseJSONList :: Value -> Parser [InternalIdentData] # | |||||
ToJSON InternalIdentData # | |||||
Defined in Language.PureScript.Names Methods toJSON :: InternalIdentData -> Value # toEncoding :: InternalIdentData -> Encoding # toJSONList :: [InternalIdentData] -> Value # toEncodingList :: [InternalIdentData] -> Encoding # omitField :: InternalIdentData -> Bool # | |||||
NFData InternalIdentData # | |||||
Defined in Language.PureScript.Names Methods rnf :: InternalIdentData -> () # | |||||
Generic InternalIdentData # | |||||
Defined in Language.PureScript.Names Associated Types
Methods from :: InternalIdentData -> Rep InternalIdentData x # to :: Rep InternalIdentData x -> InternalIdentData # | |||||
Show InternalIdentData # | |||||
Defined in Language.PureScript.Names Methods showsPrec :: Int -> InternalIdentData -> ShowS # show :: InternalIdentData -> String # showList :: [InternalIdentData] -> ShowS # | |||||
Eq InternalIdentData # | |||||
Defined in Language.PureScript.Names Methods (==) :: InternalIdentData -> InternalIdentData -> Bool # (/=) :: InternalIdentData -> InternalIdentData -> Bool # | |||||
Ord InternalIdentData # | |||||
Defined in Language.PureScript.Names Methods compare :: InternalIdentData -> InternalIdentData -> Ordering # (<) :: InternalIdentData -> InternalIdentData -> Bool # (<=) :: InternalIdentData -> InternalIdentData -> Bool # (>) :: InternalIdentData -> InternalIdentData -> Bool # (>=) :: InternalIdentData -> InternalIdentData -> Bool # max :: InternalIdentData -> InternalIdentData -> InternalIdentData # min :: InternalIdentData -> InternalIdentData -> InternalIdentData # | |||||
Serialise InternalIdentData # | |||||
Defined in Language.PureScript.Names Methods encode :: InternalIdentData -> Encoding # decode :: Decoder s InternalIdentData # encodeList :: [InternalIdentData] -> Encoding # decodeList :: Decoder s [InternalIdentData] # | |||||
type Rep InternalIdentData # | |||||
Defined in Language.PureScript.Names type Rep InternalIdentData = D1 ('MetaData "InternalIdentData" "Language.PureScript.Names" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "RuntimeLazyFactory" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Lazy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))) |
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 |
InternalIdent !InternalIdentData | A generated name used only for internal transformations |
Instances
FromJSON Ident # | |||||
Defined in Language.PureScript.Names | |||||
ToJSON Ident # | |||||
NFData Ident # | |||||
Defined in Language.PureScript.Names | |||||
Generic Ident # | |||||
Defined in Language.PureScript.Names Associated Types
| |||||
Show Ident # | |||||
Eq Ident # | |||||
Ord Ident # | |||||
Serialise Ident # | |||||
type Rep Ident # | |||||
Defined in Language.PureScript.Names type Rep Ident = D1 ('MetaData "Ident" "Language.PureScript.Names" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" '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) :+: C1 ('MetaCons "InternalIdent" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 InternalIdentData)))) |
unusedIdent :: Text #
freshIdent :: MonadSupply m => Text -> m Ident #
freshIdent' :: MonadSupply m => m Ident #
isPlainIdent :: Ident -> Bool #
newtype OpName (a :: OpNameType) #
Operator alias names.
Instances
FromJSON (OpName a) # | |||||
Defined in Language.PureScript.Names | |||||
ToJSON (OpName a) # | |||||
NFData (OpName a) # | |||||
Defined in Language.PureScript.Names | |||||
Generic (OpName a) # | |||||
Defined in Language.PureScript.Names Associated Types
| |||||
Show (OpName a) # | |||||
Eq (OpName a) # | |||||
Ord (OpName a) # | |||||
Defined in Language.PureScript.Names | |||||
Serialise (OpName a) # | |||||
type Rep (OpName a) # | |||||
Defined in Language.PureScript.Names |
showOp :: forall (a :: OpNameType). OpName a -> Text #
data OpNameType #
The closed set of operator alias types.
Constructors
ValueOpName | |
TypeOpName | |
AnyOpName |
eraseOpName :: forall (a :: OpNameType). OpName a -> OpName 'AnyOpName #
coerceOpName :: forall (a :: OpNameType) (b :: OpNameType). OpName a -> OpName b #
newtype ProperName (a :: ProperNameType) #
Proper names, i.e. capitalized names for e.g. module names, type//data constructors.
Constructors
ProperName | |
Fields |
Instances
FromJSON (ProperName a) # | |||||
Defined in Language.PureScript.Names Methods parseJSON :: Value -> Parser (ProperName a) # parseJSONList :: Value -> Parser [ProperName a] # omittedField :: Maybe (ProperName a) # | |||||
ToJSON (ProperName a) # | |||||
Defined in Language.PureScript.Names Methods toJSON :: ProperName a -> Value # toEncoding :: ProperName a -> Encoding # toJSONList :: [ProperName a] -> Value # toEncodingList :: [ProperName a] -> Encoding # omitField :: ProperName a -> Bool # | |||||
NFData (ProperName a) # | |||||
Defined in Language.PureScript.Names Methods rnf :: ProperName a -> () # | |||||
Generic (ProperName a) # | |||||
Defined in Language.PureScript.Names Associated Types
| |||||
Show (ProperName a) # | |||||
Defined in Language.PureScript.Names Methods showsPrec :: Int -> ProperName a -> ShowS # show :: ProperName a -> String # showList :: [ProperName a] -> ShowS # | |||||
Eq (ProperName a) # | |||||
Defined in Language.PureScript.Names | |||||
Ord (ProperName a) # | |||||
Defined in Language.PureScript.Names Methods compare :: ProperName a -> ProperName a -> Ordering # (<) :: ProperName a -> ProperName a -> Bool # (<=) :: ProperName a -> ProperName a -> Bool # (>) :: ProperName a -> ProperName a -> Bool # (>=) :: ProperName a -> ProperName a -> Bool # max :: ProperName a -> ProperName a -> ProperName a # min :: ProperName a -> ProperName a -> ProperName a # | |||||
Serialise (ProperName a) # | |||||
Defined in Language.PureScript.Names Methods encode :: ProperName a -> Encoding # decode :: Decoder s (ProperName a) # encodeList :: [ProperName a] -> Encoding # decodeList :: Decoder s [ProperName a] # | |||||
type Rep (ProperName a) # | |||||
Defined in Language.PureScript.Names type Rep (ProperName a) = D1 ('MetaData "ProperName" "Language.PureScript.Names" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'True) (C1 ('MetaCons "ProperName" 'PrefixI 'True) (S1 ('MetaSel ('Just "runProperName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |
data ProperNameType #
The closed set of proper name types.
Constructors
TypeName | |
ConstructorName | |
ClassName | |
Namespace |
coerceProperName :: forall (a :: ProperNameType) (b :: ProperNameType). 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.
newtype ModuleName #
Module names
Constructors
ModuleName Text |
Instances
FromJSON ModuleName # | |||||
Defined in Language.PureScript.Names | |||||
FromJSONKey ModuleName # | |||||
Defined in Language.PureScript.Names | |||||
ToJSON ModuleName # | |||||
Defined in Language.PureScript.Names Methods toJSON :: ModuleName -> Value # toEncoding :: ModuleName -> Encoding # toJSONList :: [ModuleName] -> Value # toEncodingList :: [ModuleName] -> Encoding # omitField :: ModuleName -> Bool # | |||||
ToJSONKey ModuleName # | |||||
Defined in Language.PureScript.Names | |||||
NFData ModuleName # | |||||
Defined in Language.PureScript.Names Methods rnf :: ModuleName -> () # | |||||
Generic ModuleName # | |||||
Defined in Language.PureScript.Names Associated Types
| |||||
Show ModuleName # | |||||
Defined in Language.PureScript.Names Methods showsPrec :: Int -> ModuleName -> ShowS # show :: ModuleName -> String # showList :: [ModuleName] -> ShowS # | |||||
Eq ModuleName # | |||||
Defined in Language.PureScript.Names | |||||
Ord ModuleName # | |||||
Defined in Language.PureScript.Names 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 # | |||||
Serialise ModuleName # | |||||
Defined in Language.PureScript.Names Methods encode :: ModuleName -> Encoding # decode :: Decoder s ModuleName # encodeList :: [ModuleName] -> Encoding # decodeList :: Decoder s [ModuleName] # | |||||
type Rep ModuleName # | |||||
Defined in Language.PureScript.Names type Rep ModuleName = D1 ('MetaData "ModuleName" "Language.PureScript.Names" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'True) (C1 ('MetaCons "ModuleName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |
runModuleName :: ModuleName -> Text #
moduleNameFromString :: Text -> ModuleName #
isBuiltinModuleName :: ModuleName -> Bool #
data QualifiedBy #
Constructors
BySourcePos SourcePos | |
ByModuleName ModuleName |
Instances
NFData QualifiedBy # | |||||
Defined in Language.PureScript.Names Methods rnf :: QualifiedBy -> () # | |||||
Generic QualifiedBy # | |||||
Defined in Language.PureScript.Names Associated Types
| |||||
Show QualifiedBy # | |||||
Defined in Language.PureScript.Names Methods showsPrec :: Int -> QualifiedBy -> ShowS # show :: QualifiedBy -> String # showList :: [QualifiedBy] -> ShowS # | |||||
Eq QualifiedBy # | |||||
Defined in Language.PureScript.Names | |||||
Ord QualifiedBy # | |||||
Defined in Language.PureScript.Names Methods compare :: QualifiedBy -> QualifiedBy -> Ordering # (<) :: QualifiedBy -> QualifiedBy -> Bool # (<=) :: QualifiedBy -> QualifiedBy -> Bool # (>) :: QualifiedBy -> QualifiedBy -> Bool # (>=) :: QualifiedBy -> QualifiedBy -> Bool # max :: QualifiedBy -> QualifiedBy -> QualifiedBy # min :: QualifiedBy -> QualifiedBy -> QualifiedBy # | |||||
Serialise QualifiedBy # | |||||
Defined in Language.PureScript.Names Methods encode :: QualifiedBy -> Encoding # decode :: Decoder s QualifiedBy # encodeList :: [QualifiedBy] -> Encoding # decodeList :: Decoder s [QualifiedBy] # | |||||
type Rep QualifiedBy # | |||||
Defined in Language.PureScript.Names type Rep QualifiedBy = D1 ('MetaData "QualifiedBy" "Language.PureScript.Names" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "BySourcePos" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourcePos)) :+: C1 ('MetaCons "ByModuleName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName))) |
pattern ByNullSourcePos :: QualifiedBy #
isBySourcePos :: QualifiedBy -> Bool #
A qualified name, i.e. a name with an optional module name
Constructors
Qualified QualifiedBy a |
Instances
Functor Qualified # | |||||
Foldable Qualified # | |||||
Defined in Language.PureScript.Names Methods fold :: Monoid m => Qualified m -> m # foldMap :: Monoid m => (a -> m) -> Qualified a -> m # foldMap' :: Monoid m => (a -> m) -> Qualified a -> m # foldr :: (a -> b -> b) -> b -> Qualified a -> b # foldr' :: (a -> b -> b) -> b -> Qualified a -> b # foldl :: (b -> a -> b) -> b -> Qualified a -> b # foldl' :: (b -> a -> b) -> b -> Qualified a -> b # foldr1 :: (a -> a -> a) -> Qualified a -> a # foldl1 :: (a -> a -> a) -> Qualified a -> a # toList :: Qualified a -> [a] # length :: Qualified a -> Int # elem :: Eq a => a -> Qualified a -> Bool # maximum :: Ord a => Qualified a -> a # minimum :: Ord a => Qualified a -> a # | |||||
Traversable Qualified # | |||||
Defined in Language.PureScript.Names | |||||
FromJSON a => FromJSON (Qualified a) # | |||||
Defined in Language.PureScript.Names | |||||
ToJSON a => ToJSON (Qualified a) # | |||||
NFData a => NFData (Qualified a) # | |||||
Defined in Language.PureScript.Names | |||||
Generic (Qualified a) # | |||||
Defined in Language.PureScript.Names Associated Types
| |||||
Show a => Show (Qualified a) # | |||||
Eq a => Eq (Qualified a) # | |||||
Ord a => Ord (Qualified a) # | |||||
Defined in Language.PureScript.Names | |||||
Serialise a => Serialise (Qualified a) # | |||||
type Rep (Qualified a) # | |||||
Defined in Language.PureScript.Names type Rep (Qualified a) = D1 ('MetaData "Qualified" "Language.PureScript.Names" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "Qualified" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QualifiedBy) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 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