purescript-0.15.8: PureScript Programming Language Compiler
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.PureScript.Names

Description

Data types for names

Synopsis

Documentation

data Name Source #

A sum of the possible name types, useful for error and lint messages.

Instances

Instances details
Generic Name Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep Name :: Type -> Type #

Methods

from :: Name -> Rep Name x #

to :: Rep Name x -> Name #

Show Name Source # 
Instance details

Defined in Language.PureScript.Names

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

NFData Name Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: Name -> () #

Eq Name Source # 
Instance details

Defined in Language.PureScript.Names

Methods

(==) :: Name -> Name -> Bool #

(/=) :: Name -> Name -> Bool #

Ord Name Source # 
Instance details

Defined in Language.PureScript.Names

Methods

compare :: Name -> Name -> Ordering #

(<) :: Name -> Name -> Bool #

(<=) :: Name -> Name -> Bool #

(>) :: Name -> Name -> Bool #

(>=) :: Name -> Name -> Bool #

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Serialise Name Source # 
Instance details

Defined in Language.PureScript.Names

type Rep Name Source # 
Instance details

Defined in Language.PureScript.Names

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 InternalIdents with a single pattern, and thus don't have to change if a new InternalIdentData constructor is created.

Constructors

RuntimeLazyFactory 
Lazy !Text 

Instances

Instances details
FromJSON InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

ToJSON InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

Generic InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep InternalIdentData :: Type -> Type #

Show InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

NFData InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: InternalIdentData -> () #

Eq InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

Ord InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

Serialise InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

type Rep InternalIdentData Source # 
Instance details

Defined in Language.PureScript.Names

type Rep InternalIdentData = D1 ('MetaData "InternalIdentData" "Language.PureScript.Names" "purescript-0.15.8-4tiSWAb69Er4UfMmbMY7A8" 'False) (C1 ('MetaCons "RuntimeLazyFactory" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Lazy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))

data Ident 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

InternalIdent !InternalIdentData

A generated name used only for internal transformations

Instances

Instances details
FromJSON Ident Source # 
Instance details

Defined in Language.PureScript.Names

ToJSON Ident Source # 
Instance details

Defined in Language.PureScript.Names

Generic Ident Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep Ident :: Type -> Type #

Methods

from :: Ident -> Rep Ident x #

to :: Rep Ident x -> Ident #

Show Ident Source # 
Instance details

Defined in Language.PureScript.Names

Methods

showsPrec :: Int -> Ident -> ShowS #

show :: Ident -> String #

showList :: [Ident] -> ShowS #

NFData Ident Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: Ident -> () #

Eq Ident Source # 
Instance details

Defined in Language.PureScript.Names

Methods

(==) :: Ident -> Ident -> Bool #

(/=) :: Ident -> Ident -> Bool #

Ord Ident Source # 
Instance details

Defined in Language.PureScript.Names

Methods

compare :: Ident -> Ident -> Ordering #

(<) :: Ident -> Ident -> Bool #

(<=) :: Ident -> Ident -> Bool #

(>) :: Ident -> Ident -> Bool #

(>=) :: Ident -> Ident -> Bool #

max :: Ident -> Ident -> Ident #

min :: Ident -> Ident -> Ident #

Serialise Ident Source # 
Instance details

Defined in Language.PureScript.Names

type Rep Ident Source # 
Instance details

Defined in Language.PureScript.Names

newtype OpName (a :: OpNameType) Source #

Operator alias names.

Constructors

OpName 

Fields

Instances

Instances details
FromJSON (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

ToJSON (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

Generic (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep (OpName a) :: Type -> Type #

Methods

from :: OpName a -> Rep (OpName a) x #

to :: Rep (OpName a) x -> OpName a #

Show (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

showsPrec :: Int -> OpName a -> ShowS #

show :: OpName a -> String #

showList :: [OpName a] -> ShowS #

NFData (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: OpName a -> () #

Eq (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

(==) :: OpName a -> OpName a -> Bool #

(/=) :: OpName a -> OpName a -> Bool #

Ord (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

compare :: OpName a -> OpName a -> Ordering #

(<) :: OpName a -> OpName a -> Bool #

(<=) :: OpName a -> OpName a -> Bool #

(>) :: OpName a -> OpName a -> Bool #

(>=) :: OpName a -> OpName a -> Bool #

max :: OpName a -> OpName a -> OpName a #

min :: OpName a -> OpName a -> OpName a #

Serialise (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

type Rep (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

type Rep (OpName a) = D1 ('MetaData "OpName" "Language.PureScript.Names" "purescript-0.15.8-4tiSWAb69Er4UfMmbMY7A8" 'True) (C1 ('MetaCons "OpName" 'PrefixI 'True) (S1 ('MetaSel ('Just "runOpName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data OpNameType Source #

The closed set of operator alias types.

newtype ProperName (a :: ProperNameType) Source #

Proper names, i.e. capitalized names for e.g. module names, type//data constructors.

Constructors

ProperName 

Fields

Instances

Instances details
FromJSON (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

ToJSON (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

Generic (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep (ProperName a) :: Type -> Type #

Methods

from :: ProperName a -> Rep (ProperName a) x #

to :: Rep (ProperName a) x -> ProperName a #

Show (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

NFData (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: ProperName a -> () #

Eq (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

(==) :: ProperName a -> ProperName a -> Bool #

(/=) :: ProperName a -> ProperName a -> Bool #

Ord (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

Serialise (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

type Rep (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

type Rep (ProperName a) = D1 ('MetaData "ProperName" "Language.PureScript.Names" "purescript-0.15.8-4tiSWAb69Er4UfMmbMY7A8" 'True) (C1 ('MetaCons "ProperName" 'PrefixI 'True) (S1 ('MetaSel ('Just "runProperName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

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

Constructors

ModuleName Text 

Instances

Instances details
FromJSON ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

FromJSONKey ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

ToJSON ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

ToJSONKey ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

Generic ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep ModuleName :: Type -> Type #

Show ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

NFData ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: ModuleName -> () #

Eq ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

Ord ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

Serialise ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

type Rep ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

type Rep ModuleName = D1 ('MetaData "ModuleName" "Language.PureScript.Names" "purescript-0.15.8-4tiSWAb69Er4UfMmbMY7A8" 'True) (C1 ('MetaCons "ModuleName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data QualifiedBy Source #

Instances

Instances details
Generic QualifiedBy Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep QualifiedBy :: Type -> Type #

Show QualifiedBy Source # 
Instance details

Defined in Language.PureScript.Names

NFData QualifiedBy Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: QualifiedBy -> () #

Eq QualifiedBy Source # 
Instance details

Defined in Language.PureScript.Names

Ord QualifiedBy Source # 
Instance details

Defined in Language.PureScript.Names

Serialise QualifiedBy Source # 
Instance details

Defined in Language.PureScript.Names

type Rep QualifiedBy Source # 
Instance details

Defined in Language.PureScript.Names

type Rep QualifiedBy = D1 ('MetaData "QualifiedBy" "Language.PureScript.Names" "purescript-0.15.8-4tiSWAb69Er4UfMmbMY7A8" '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)))

data Qualified a Source #

A qualified name, i.e. a name with an optional module name

Constructors

Qualified QualifiedBy a 

Instances

Instances details
Foldable Qualified Source # 
Instance details

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] #

null :: Qualified a -> Bool #

length :: Qualified a -> Int #

elem :: Eq a => a -> Qualified a -> Bool #

maximum :: Ord a => Qualified a -> a #

minimum :: Ord a => Qualified a -> a #

sum :: Num a => Qualified a -> a #

product :: Num a => Qualified a -> a #

Traversable Qualified Source # 
Instance details

Defined in Language.PureScript.Names

Methods

traverse :: Applicative f => (a -> f b) -> Qualified a -> f (Qualified b) #

sequenceA :: Applicative f => Qualified (f a) -> f (Qualified a) #

mapM :: Monad m => (a -> m b) -> Qualified a -> m (Qualified b) #

sequence :: Monad m => Qualified (m a) -> m (Qualified a) #

Functor Qualified Source # 
Instance details

Defined in Language.PureScript.Names

Methods

fmap :: (a -> b) -> Qualified a -> Qualified b #

(<$) :: a -> Qualified b -> Qualified a #

FromJSON a => FromJSON (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

ToJSON a => ToJSON (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

Generic (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

Associated Types

type Rep (Qualified a) :: Type -> Type #

Methods

from :: Qualified a -> Rep (Qualified a) x #

to :: Rep (Qualified a) x -> Qualified a #

Show a => Show (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

NFData a => NFData (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: Qualified a -> () #

Eq a => Eq (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

(==) :: Qualified a -> Qualified a -> Bool #

(/=) :: Qualified a -> Qualified a -> Bool #

Ord a => Ord (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

Serialise a => Serialise (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

type Rep (Qualified a) Source # 
Instance details

Defined in Language.PureScript.Names

type Rep (Qualified a) = D1 ('MetaData "Qualified" "Language.PureScript.Names" "purescript-0.15.8-4tiSWAb69Er4UfMmbMY7A8" '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)))

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