purescript-0.9.3: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell98

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

Eq Name Source # 

Methods

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

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

Show Name Source # 

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

data Ident Source #

Names for value identifiers

Constructors

Ident String

An alphanumeric identifier

GenIdent (Maybe String) Integer

A generated name for an identifier

newtype OpName a Source #

Operator alias names.

Constructors

OpName 

Fields

Instances

Eq (OpName a) Source # 

Methods

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

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

Ord (OpName a) Source # 

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 #

Show (OpName a) Source # 

Methods

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

show :: OpName a -> String #

showList :: [OpName a] -> ShowS #

ToJSON (OpName a) Source # 

Methods

toJSON :: OpName a -> Value #

toEncoding :: OpName a -> Encoding #

FromJSON (OpName a) Source # 

Methods

parseJSON :: Value -> Parser (OpName a) #

data OpNameType Source #

The closed set of operator alias types.

Constructors

ValueOpName 
TypeOpName 

newtype ProperName a Source #

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

Constructors

ProperName 

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.

data Qualified a Source #

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

Constructors

Qualified (Maybe ModuleName) a 

Instances

Functor Qualified Source # 

Methods

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

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

Eq a => Eq (Qualified a) Source # 

Methods

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

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

Ord a => Ord (Qualified a) Source # 
Show a => Show (Qualified a) Source # 
ToJSON a0 => ToJSON (Qualified a0) Source # 
FromJSON a0 => FromJSON (Qualified a0) Source # 

Methods

parseJSON :: Value -> Parser (Qualified a0) #

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