purescript-0.13.0: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell2010

Language.PureScript

Description

The main compiler module

Synopsis

Documentation

data Text #

A space efficient, packed, unboxed Unicode text type.

Instances
Hashable Text 
Instance details

Defined in Data.Hashable.Class

Methods

hashWithSalt :: Int -> Text -> Int #

hash :: Text -> Int #

ToJSON Text 
Instance details

Defined in Data.Aeson.Types.ToJSON

KeyValue Pair 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.=) :: ToJSON v => Text -> v -> Pair #

ToJSONKey Text 
Instance details

Defined in Data.Aeson.Types.ToJSON

FromJSON Text 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSONKey Text 
Instance details

Defined in Data.Aeson.Types.FromJSON

Chunk Text 
Instance details

Defined in Data.Attoparsec.Internal.Types

Associated Types

type ChunkElem Text :: Type #

ToValue Text 
Instance details

Defined in Text.Blaze

ToMarkup Text 
Instance details

Defined in Text.Blaze

ToLogStr Text 
Instance details

Defined in System.Log.FastLogger.LogStr

Methods

toLogStr :: Text -> LogStr #

Print Text 
Instance details

Defined in Protolude.Show

Methods

hPutStr :: MonadIO m => Handle -> Text -> m () #

putStr :: MonadIO m => Text -> m () #

hPutStrLn :: MonadIO m => Handle -> Text -> m () #

putStrLn :: MonadIO m => Text -> m () #

putErrLn :: MonadIO m => Text -> m () #

StringConv ByteString Text 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> ByteString -> Text #

StringConv ByteString Text 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> ByteString -> Text #

StringConv String Text 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> String -> Text #

StringConv Text ByteString 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> Text -> ByteString #

StringConv Text ByteString 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> Text -> ByteString #

StringConv Text String 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> Text -> String #

StringConv Text Text 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> Text -> Text #

StringConv Text Text 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> Text0 -> Text #

StringConv Text Text 
Instance details

Defined in Protolude.Conv

Methods

strConv :: Leniency -> Text -> Text0 #

Monad m => Stream Text m Char 
Instance details

Defined in Text.Parsec.Prim

Methods

uncons :: Text -> m (Maybe (Char, Text)) #

FromPairs Value (DList Pair) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

fromPairs :: DList Pair -> Value

ToJSON v => GKeyValue v (DList Pair) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gPair :: String -> v -> DList Pair

type State Text 
Instance details

Defined in Data.Attoparsec.Internal.Types

type State Text = Buffer
type ChunkElem Text 
Instance details

Defined in Data.Attoparsec.Internal.Types

type Item Text 
Instance details

Defined in Data.Text

type Item Text = Char
type Index Text 
Instance details

Defined in Lens.Micro.Platform

type Index Text = Int
type IxValue Text 
Instance details

Defined in Lens.Micro.Platform

newtype SupplyT m a Source #

Constructors

SupplyT 

Fields

Instances
MonadTrans SupplyT Source # 
Instance details

Defined in Control.Monad.Supply

Methods

lift :: Monad m => m a -> SupplyT m a #

MonadError e m => MonadError e (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

throwError :: e -> SupplyT m a #

catchError :: SupplyT m a -> (e -> SupplyT m a) -> SupplyT m a #

MonadReader r m => MonadReader r (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

ask :: SupplyT m r #

local :: (r -> r) -> SupplyT m a -> SupplyT m a #

reader :: (r -> a) -> SupplyT m a #

MonadWriter w m => MonadWriter w (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

writer :: (a, w) -> SupplyT m a #

tell :: w -> SupplyT m () #

listen :: SupplyT m a -> SupplyT m (a, w) #

pass :: SupplyT m (a, w -> w) -> SupplyT m a #

Monad m => Monad (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

(>>=) :: SupplyT m a -> (a -> SupplyT m b) -> SupplyT m b #

(>>) :: SupplyT m a -> SupplyT m b -> SupplyT m b #

return :: a -> SupplyT m a #

fail :: String -> SupplyT m a #

Functor m => Functor (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

fmap :: (a -> b) -> SupplyT m a -> SupplyT m b #

(<$) :: a -> SupplyT m b -> SupplyT m a #

Monad m => Applicative (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

pure :: a -> SupplyT m a #

(<*>) :: SupplyT m (a -> b) -> SupplyT m a -> SupplyT m b #

liftA2 :: (a -> b -> c) -> SupplyT m a -> SupplyT m b -> SupplyT m c #

(*>) :: SupplyT m a -> SupplyT m b -> SupplyT m b #

(<*) :: SupplyT m a -> SupplyT m b -> SupplyT m a #

MonadPlus m => MonadPlus (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

mzero :: SupplyT m a #

mplus :: SupplyT m a -> SupplyT m a -> SupplyT m a #

MonadPlus m => Alternative (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply

Methods

empty :: SupplyT m a #

(<|>) :: SupplyT m a -> SupplyT m a -> SupplyT m a #

some :: SupplyT m a -> SupplyT m [a] #

many :: SupplyT m a -> SupplyT m [a] #

Monad m => MonadSupply (SupplyT m) Source # 
Instance details

Defined in Control.Monad.Supply.Class

evalSupplyT :: Functor m => Integer -> SupplyT m a -> m a Source #

data Comment Source #

Instances
Eq Comment Source # 
Instance details

Defined in Language.PureScript.Comments

Methods

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

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

Ord Comment Source # 
Instance details

Defined in Language.PureScript.Comments

Show Comment Source # 
Instance details

Defined in Language.PureScript.Comments

Generic Comment Source # 
Instance details

Defined in Language.PureScript.Comments

Associated Types

type Rep Comment :: Type -> Type #

Methods

from :: Comment -> Rep Comment x #

to :: Rep Comment x -> Comment #

NFData Comment Source # 
Instance details

Defined in Language.PureScript.Comments

Methods

rnf :: Comment -> () #

ToJSON Comment Source # 
Instance details

Defined in Language.PureScript.Comments

FromJSON Comment Source # 
Instance details

Defined in Language.PureScript.Comments

FromJSON (Kind SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Kinds

FromJSON (Constraint SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Types

FromJSON (Type SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Types

type Rep Comment Source # 
Instance details

Defined in Language.PureScript.Comments

type Rep Comment = D1 (MetaData "Comment" "Language.PureScript.Comments" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "LineComment" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)) :+: C1 (MetaCons "BlockComment" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))

data SourceSpan Source #

Constructors

SourceSpan 

Fields

Instances
Eq SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Ord SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Show SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Generic SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Associated Types

type Rep SourceSpan :: Type -> Type #

NFData SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Methods

rnf :: SourceSpan -> () #

ToJSON SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

FromJSON SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

FromJSON (Kind SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Kinds

FromJSON (Constraint SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Types

FromJSON (Type SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Types

type Rep SourceSpan Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

type Rep SourceSpan = D1 (MetaData "SourceSpan" "Language.PureScript.AST.SourcePos" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "SourceSpan" PrefixI True) (S1 (MetaSel (Just "spanName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: (S1 (MetaSel (Just "spanStart") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SourcePos) :*: S1 (MetaSel (Just "spanEnd") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SourcePos))))

data SourcePos Source #

Source position information

Constructors

SourcePos 

Fields

Instances
Eq SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Ord SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Show SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Generic SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Associated Types

type Rep SourcePos :: Type -> Type #

NFData SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

Methods

rnf :: SourcePos -> () #

ToJSON SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

FromJSON SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

type Rep SourcePos Source # 
Instance details

Defined in Language.PureScript.AST.SourcePos

type Rep SourcePos = D1 (MetaData "SourcePos" "Language.PureScript.AST.SourcePos" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "SourcePos" PrefixI True) (S1 (MetaSel (Just "sourcePosLine") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int) :*: S1 (MetaSel (Just "sourcePosColumn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))

type SourceAnn = (SourceSpan, [Comment]) Source #

Source annotation - position information and comments.

type HasCallStack = HasCallStack Source #

A compatibility wrapper for the GHC.Stack.HasCallStack constraint.

internalError :: HasCallStack => String -> a Source #

Exit with an error message and a crash report link.

data Fixity Source #

Fixity data for infix operators

Instances
Eq Fixity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Methods

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

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

Ord Fixity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Show Fixity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Generic Fixity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Associated Types

type Rep Fixity :: Type -> Type #

Methods

from :: Fixity -> Rep Fixity x #

to :: Rep Fixity x -> Fixity #

NFData Fixity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Methods

rnf :: Fixity -> () #

ToJSON Fixity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

type Rep Fixity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

type Rep Fixity = D1 (MetaData "Fixity" "Language.PureScript.AST.Operators" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "Fixity" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Associativity) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Precedence)))

data Associativity Source #

Associativity for infix operators

Constructors

Infixl 
Infixr 
Infix 
Instances
Eq Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Ord Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Show Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Generic Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Associated Types

type Rep Associativity :: Type -> Type #

NFData Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

Methods

rnf :: Associativity -> () #

ToJSON Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

FromJSON Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

type Rep Associativity Source # 
Instance details

Defined in Language.PureScript.AST.Operators

type Rep Associativity = D1 (MetaData "Associativity" "Language.PureScript.AST.Operators" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "Infixl" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Infixr" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Infix" PrefixI False) (U1 :: Type -> Type)))

type Precedence = Integer Source #

A precedence level for an infix operator

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 # 
Instance details

Defined in Language.PureScript.Names

Methods

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

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

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 #

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

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

Show a => Show (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 #

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

Defined in Language.PureScript.Names

Methods

rnf :: Qualified a -> () #

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

Defined in Language.PureScript.Names

FromJSON a => FromJSON (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.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "Qualified" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe ModuleName)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

newtype ModuleName Source #

Module names

Instances
Eq ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

Ord ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

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

NFData ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: ModuleName -> () #

ToJSON ModuleName Source # 
Instance details

Defined in Language.PureScript.Names

FromJSON 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.13.0-1whdl2565Nb1wvlLK7uK18" True) (C1 (MetaCons "ModuleName" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ProperName Namespace])))

data ProperNameType Source #

The closed set of proper name types.

newtype ProperName (a :: ProperNameType) Source #

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

Constructors

ProperName 

Fields

Instances
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

Show (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 #

NFData (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: ProperName a -> () #

ToJSON (ProperName a) Source # 
Instance details

Defined in Language.PureScript.Names

FromJSON (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.13.0-1whdl2565Nb1wvlLK7uK18" True) (C1 (MetaCons "ProperName" PrefixI True) (S1 (MetaSel (Just "runProperName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))

data OpNameType Source #

The closed set of operator alias types.

newtype OpName (a :: OpNameType) Source #

Operator alias names.

Constructors

OpName 

Fields

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

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 #

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 #

NFData (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: OpName a -> () #

ToJSON (OpName a) Source # 
Instance details

Defined in Language.PureScript.Names

FromJSON (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.13.0-1whdl2565Nb1wvlLK7uK18" True) (C1 (MetaCons "OpName" PrefixI True) (S1 (MetaSel (Just "runOpName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (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

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

Show Ident Source # 
Instance details

Defined in Language.PureScript.Names

Methods

showsPrec :: Int -> Ident -> ShowS #

show :: Ident -> String #

showList :: [Ident] -> ShowS #

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 #

NFData Ident Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: Ident -> () #

ToJSON Ident Source # 
Instance details

Defined in Language.PureScript.Names

FromJSON Ident Source # 
Instance details

Defined in Language.PureScript.Names

type Rep Ident Source # 
Instance details

Defined in Language.PureScript.Names

data Name Source #

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

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

Show Name Source # 
Instance details

Defined in Language.PureScript.Names

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

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 #

NFData Name Source # 
Instance details

Defined in Language.PureScript.Names

Methods

rnf :: Name -> () #

type Rep Name Source # 
Instance details

Defined in Language.PureScript.Names

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.

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

data Kind a Source #

The data type of kinds

Constructors

KUnknown a Int

Unification variable of type Kind

Row a (Kind a)

Kinds for labelled, unordered rows without duplicates

FunKind a (Kind a) (Kind a)

Function kinds

NamedKind a (Qualified (ProperName KindName))

A named kind

Instances
Functor Kind Source # 
Instance details

Defined in Language.PureScript.Kinds

Methods

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

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

Foldable Kind Source # 
Instance details

Defined in Language.PureScript.Kinds

Methods

fold :: Monoid m => Kind m -> m #

foldMap :: Monoid m => (a -> m) -> Kind a -> m #

foldr :: (a -> b -> b) -> b -> Kind a -> b #

foldr' :: (a -> b -> b) -> b -> Kind a -> b #

foldl :: (b -> a -> b) -> b -> Kind a -> b #

foldl' :: (b -> a -> b) -> b -> Kind a -> b #

foldr1 :: (a -> a -> a) -> Kind a -> a #

foldl1 :: (a -> a -> a) -> Kind a -> a #

toList :: Kind a -> [a] #

null :: Kind a -> Bool #

length :: Kind a -> Int #

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

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

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

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

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

Traversable Kind Source # 
Instance details

Defined in Language.PureScript.Kinds

Methods

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

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

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

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

Eq (Kind a) Source # 
Instance details

Defined in Language.PureScript.Kinds

Methods

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

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

Ord (Kind a) Source # 
Instance details

Defined in Language.PureScript.Kinds

Methods

compare :: Kind a -> Kind a -> Ordering #

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

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

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

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

max :: Kind a -> Kind a -> Kind a #

min :: Kind a -> Kind a -> Kind a #

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

Defined in Language.PureScript.Kinds

Methods

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

show :: Kind a -> String #

showList :: [Kind a] -> ShowS #

Generic (Kind a) Source # 
Instance details

Defined in Language.PureScript.Kinds

Associated Types

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

Methods

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

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

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

Defined in Language.PureScript.Kinds

Methods

rnf :: Kind a -> () #

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

Defined in Language.PureScript.Kinds

FromJSON (Kind ()) Source # 
Instance details

Defined in Language.PureScript.Kinds

Methods

parseJSON :: Value -> Parser (Kind ()) #

parseJSONList :: Value -> Parser [Kind ()] #

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

Defined in Language.PureScript.Kinds

FromJSON (Kind SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Kinds

type Rep (Kind a) Source # 
Instance details

Defined in Language.PureScript.Kinds

kindToJSON :: forall a. (a -> Value) -> Kind a -> Value Source #

kindFromJSON :: forall a. Parser a -> (Value -> Parser a) -> Value -> Parser (Kind a) Source #

everywhereOnKinds :: (Kind a -> Kind a) -> Kind a -> Kind a Source #

everywhereOnKindsM :: Monad m => (Kind a -> m (Kind a)) -> Kind a -> m (Kind a) Source #

everythingOnKinds :: (r -> r -> r) -> (Kind a -> r) -> Kind a -> r Source #

setAnnForKind :: a -> Kind a -> Kind a Source #

eqKind :: Kind a -> Kind b -> Bool Source #

data Options Source #

The data type of compiler options

Constructors

Options 

Fields

Instances
Show Options Source # 
Instance details

Defined in Language.PureScript.Options

MonadReader Options Make Source # 
Instance details

Defined in Language.PureScript.Make.Monad

Methods

ask :: Make Options #

local :: (Options -> Options) -> Make a -> Make a #

reader :: (Options -> a) -> Make a #

prettyPrintString :: PSString -> Text Source #

Pretty print a PSString, using Haskell/PureScript escape sequences. This is identical to the Show instance except that we get a Text out instead of a String.

data Literal a Source #

Data type for literal values. Parameterised so it can be used for Exprs and Binders.

Constructors

NumericLiteral (Either Integer Double)

A numeric literal

StringLiteral PSString

A string literal

CharLiteral Char

A character literal

BooleanLiteral Bool

A boolean literal

ArrayLiteral [a]

An array literal

ObjectLiteral [(PSString, a)]

An object literal

Instances
Functor Literal Source # 
Instance details

Defined in Language.PureScript.AST.Literals

Methods

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

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

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

Defined in Language.PureScript.AST.Literals

Methods

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

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

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

Defined in Language.PureScript.AST.Literals

Methods

compare :: Literal a -> Literal a -> Ordering #

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

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

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

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

max :: Literal a -> Literal a -> Literal a #

min :: Literal a -> Literal a -> Literal a #

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

Defined in Language.PureScript.AST.Literals

Methods

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

show :: Literal a -> String #

showList :: [Literal a] -> ShowS #

data RowListItem a Source #

Constructors

RowListItem 
Instances
Functor RowListItem Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

Foldable RowListItem Source # 
Instance details

Defined in Language.PureScript.Types

Methods

fold :: Monoid m => RowListItem m -> m #

foldMap :: Monoid m => (a -> m) -> RowListItem a -> m #

foldr :: (a -> b -> b) -> b -> RowListItem a -> b #

foldr' :: (a -> b -> b) -> b -> RowListItem a -> b #

foldl :: (b -> a -> b) -> b -> RowListItem a -> b #

foldl' :: (b -> a -> b) -> b -> RowListItem a -> b #

foldr1 :: (a -> a -> a) -> RowListItem a -> a #

foldl1 :: (a -> a -> a) -> RowListItem a -> a #

toList :: RowListItem a -> [a] #

null :: RowListItem a -> Bool #

length :: RowListItem a -> Int #

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

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

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

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

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

Traversable RowListItem Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

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

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

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

Defined in Language.PureScript.Types

Generic (RowListItem a) Source # 
Instance details

Defined in Language.PureScript.Types

Associated Types

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

Methods

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

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

type Rep (RowListItem a) Source # 
Instance details

Defined in Language.PureScript.Types

type Rep (RowListItem a) = D1 (MetaData "RowListItem" "Language.PureScript.Types" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "RowListItem" PrefixI True) (S1 (MetaSel (Just "rowListAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Just "rowListLabel") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Label) :*: S1 (MetaSel (Just "rowListType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)))))

data Constraint a Source #

A typeclass constraint

Constructors

Constraint 

Fields

Instances
Functor Constraint Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

Foldable Constraint Source # 
Instance details

Defined in Language.PureScript.Types

Methods

fold :: Monoid m => Constraint m -> m #

foldMap :: Monoid m => (a -> m) -> Constraint a -> m #

foldr :: (a -> b -> b) -> b -> Constraint a -> b #

foldr' :: (a -> b -> b) -> b -> Constraint a -> b #

foldl :: (b -> a -> b) -> b -> Constraint a -> b #

foldl' :: (b -> a -> b) -> b -> Constraint a -> b #

foldr1 :: (a -> a -> a) -> Constraint a -> a #

foldl1 :: (a -> a -> a) -> Constraint a -> a #

toList :: Constraint a -> [a] #

null :: Constraint a -> Bool #

length :: Constraint a -> Int #

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

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

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

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

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

Traversable Constraint Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

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

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

Eq (Constraint a) Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

Ord (Constraint a) Source # 
Instance details

Defined in Language.PureScript.Types

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

Defined in Language.PureScript.Types

Generic (Constraint a) Source # 
Instance details

Defined in Language.PureScript.Types

Associated Types

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

Methods

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

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

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

Defined in Language.PureScript.Types

Methods

rnf :: Constraint a -> () #

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

Defined in Language.PureScript.Types

FromJSON (Constraint ()) Source # 
Instance details

Defined in Language.PureScript.Types

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

Defined in Language.PureScript.Types

FromJSON (Constraint SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Types

type Rep (Constraint a) Source # 
Instance details

Defined in Language.PureScript.Types

type Rep (Constraint a) = D1 (MetaData "Constraint" "Language.PureScript.Types" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "Constraint" PrefixI True) ((S1 (MetaSel (Just "constraintAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Just "constraintClass") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Qualified (ProperName ClassName)))) :*: (S1 (MetaSel (Just "constraintArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Type a]) :*: S1 (MetaSel (Just "constraintData") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe ConstraintData)))))

data ConstraintData Source #

Additional data relevant to type class constraints

Constructors

PartialConstraintData [[Text]] Bool

Data to accompany a Partial constraint generated by the exhaustivity checker. It contains (rendered) binder information for those binders which were not matched, and a flag indicating whether the list was truncated or not. Note: we use Text here because using Binder would introduce a cyclic dependency in the module graph.

Instances
Eq ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

Ord ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

Show ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

Generic ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

Associated Types

type Rep ConstraintData :: Type -> Type #

NFData ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

Methods

rnf :: ConstraintData -> () #

ToJSON ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

FromJSON ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

type Rep ConstraintData Source # 
Instance details

Defined in Language.PureScript.Types

type Rep ConstraintData = D1 (MetaData "ConstraintData" "Language.PureScript.Types" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "PartialConstraintData" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [[Text]]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))

data Type a Source #

The type of types

Constructors

TUnknown a Int

A unification variable of type Type

TypeVar a Text

A named type variable

TypeLevelString a PSString

A type-level string

TypeWildcard a (Maybe Text)

A type wildcard, as would appear in a partial type synonym

TypeConstructor a (Qualified (ProperName TypeName))

A type constructor

TypeOp a (Qualified (OpName TypeOpName))

A type operator. This will be desugared into a type constructor during the "operators" phase of desugaring.

TypeApp a (Type a) (Type a)

A type application

ForAll a Text (Maybe (Kind a)) (Type a) (Maybe SkolemScope)

Forall quantifier

ConstrainedType a (Constraint a) (Type a)

A type with a set of type class constraints

Skolem a Text Int SkolemScope

A skolem constant

REmpty a

An empty row

RCons a Label (Type a) (Type a)

A non-empty row

KindedType a (Type a) (Kind a)

A type with a kind annotation

BinaryNoParensType a (Type a) (Type a) (Type a)

Binary operator application. During the rebracketing phase of desugaring, this data constructor will be removed.

ParensInType a (Type a)

Explicit parentheses. During the rebracketing phase of desugaring, this data constructor will be removed.

Note: although it seems this constructor is not used, it _is_ useful, since it prevents certain traversals from matching.

Instances
Functor Type Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

Foldable Type Source # 
Instance details

Defined in Language.PureScript.Types

Methods

fold :: Monoid m => Type m -> m #

foldMap :: Monoid m => (a -> m) -> Type a -> m #

foldr :: (a -> b -> b) -> b -> Type a -> b #

foldr' :: (a -> b -> b) -> b -> Type a -> b #

foldl :: (b -> a -> b) -> b -> Type a -> b #

foldl' :: (b -> a -> b) -> b -> Type a -> b #

foldr1 :: (a -> a -> a) -> Type a -> a #

foldl1 :: (a -> a -> a) -> Type a -> a #

toList :: Type a -> [a] #

null :: Type a -> Bool #

length :: Type a -> Int #

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

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

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

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

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

Traversable Type Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

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

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

Eq (Type a) Source # 
Instance details

Defined in Language.PureScript.Types

Methods

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

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

Ord (Type a) Source # 
Instance details

Defined in Language.PureScript.Types

Methods

compare :: Type a -> Type a -> Ordering #

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

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

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

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

max :: Type a -> Type a -> Type a #

min :: Type a -> Type a -> Type a #

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

Defined in Language.PureScript.Types

Methods

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

show :: Type a -> String #

showList :: [Type a] -> ShowS #

Generic (Type a) Source # 
Instance details

Defined in Language.PureScript.Types

Associated Types

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

Methods

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

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

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

Defined in Language.PureScript.Types

Methods

rnf :: Type a -> () #

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

Defined in Language.PureScript.Types

FromJSON (Type ()) Source # 
Instance details

Defined in Language.PureScript.Types

Methods

parseJSON :: Value -> Parser (Type ()) #

parseJSONList :: Value -> Parser [Type ()] #

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

Defined in Language.PureScript.Types

FromJSON (Type SourceAnn) Source # 
Instance details

Defined in Language.PureScript.Types

type Rep (Type a) Source # 
Instance details

Defined in Language.PureScript.Types

type Rep (Type a) = D1 (MetaData "Type" "Language.PureScript.Types" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (((C1 (MetaCons "TUnknown" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)) :+: (C1 (MetaCons "TypeVar" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)) :+: C1 (MetaCons "TypeLevelString" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 PSString)))) :+: ((C1 (MetaCons "TypeWildcard" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Text))) :+: C1 (MetaCons "TypeConstructor" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Qualified (ProperName TypeName))))) :+: (C1 (MetaCons "TypeOp" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Qualified (OpName TypeOpName)))) :+: C1 (MetaCons "TypeApp" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a))))))) :+: (((C1 (MetaCons "ForAll" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Kind a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe SkolemScope))))) :+: C1 (MetaCons "ConstrainedType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Constraint a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a))))) :+: (C1 (MetaCons "Skolem" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SkolemScope))) :+: C1 (MetaCons "REmpty" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))) :+: ((C1 (MetaCons "RCons" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Label)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)))) :+: C1 (MetaCons "KindedType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Kind a))))) :+: (C1 (MetaCons "BinaryNoParensType" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)))) :+: C1 (MetaCons "ParensInType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type a)))))))

newtype SkolemScope Source #

An identifier for the scope of a skolem variable

Constructors

SkolemScope 

Fields

Instances
Eq SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

Ord SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

Show SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

Generic SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

Associated Types

type Rep SkolemScope :: Type -> Type #

NFData SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

Methods

rnf :: SkolemScope -> () #

ToJSON SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

FromJSON SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

type Rep SkolemScope Source # 
Instance details

Defined in Language.PureScript.Types

type Rep SkolemScope = D1 (MetaData "SkolemScope" "Language.PureScript.Types" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" True) (C1 (MetaCons "SkolemScope" PrefixI True) (S1 (MetaSel (Just "runSkolemScope") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))

overConstraintArgs :: Functor f => ([Type a] -> f [Type a]) -> Constraint a -> f (Constraint a) Source #

typeToJSON :: forall a. (a -> Value) -> Type a -> Value Source #

constraintFromJSON :: forall a. Parser a -> (Value -> Parser a) -> Value -> Parser (Constraint a) Source #

typeFromJSON :: forall a. Parser a -> (Value -> Parser a) -> Value -> Parser (Type a) Source #

rowToList :: Type a -> ([RowListItem a], Type a) Source #

Convert a row to a list of pairs of labels and types

rowToSortedList :: Type a -> ([RowListItem a], Type a) Source #

Convert a row to a list of pairs of labels and types, sorted by the labels.

rowFromList :: ([RowListItem a], Type a) -> Type a Source #

Convert a list of labels and types to a row

isMonoType :: Type a -> Bool Source #

Check whether a type is a monotype

mkForAll :: [(a, (Text, Maybe (Kind a)))] -> Type a -> Type a Source #

Universally quantify a type

replaceTypeVars :: Text -> Type a -> Type a -> Type a Source #

Replace a type variable, taking into account variable shadowing

replaceAllTypeVars :: [(Text, Type a)] -> Type a -> Type a Source #

Replace named type variables with types

usedTypeVariables :: Type a -> [Text] Source #

Collect all type variables appearing in a type

freeTypeVariables :: Type a -> [Text] Source #

Collect all free type variables appearing in a type

quantify :: Type a -> Type a Source #

Universally quantify over all type variables appearing free in a type

moveQuantifiersToFront :: Type a -> Type a Source #

Move all universal quantifiers to the front of a type

containsWildcards :: Type a -> Bool Source #

Check if a type contains wildcards

containsForAll :: Type a -> Bool Source #

Check if a type contains forall

everywhereOnTypes :: (Type a -> Type a) -> Type a -> Type a Source #

everywhereOnTypesM :: Monad m => (Type a -> m (Type a)) -> Type a -> m (Type a) Source #

everywhereOnTypesTopDownM :: Monad m => (Type a -> m (Type a)) -> Type a -> m (Type a) Source #

everythingOnTypes :: (r -> r -> r) -> (Type a -> r) -> Type a -> r Source #

everythingWithContextOnTypes :: s -> r -> (r -> r -> r) -> (s -> Type a -> (s, r)) -> Type a -> r Source #

setAnnForType :: a -> Type a -> Type a Source #

eqType :: Type a -> Type b -> Bool Source #

data DataDeclType Source #

The type ('data' or 'newtype') of a data type declaration

Constructors

Data

A standard data constructor

Newtype

A newtype constructor

Instances
Eq DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

Ord DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

Show DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

Generic DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

Associated Types

type Rep DataDeclType :: Type -> Type #

NFData DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

Methods

rnf :: DataDeclType -> () #

ToJSON DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

FromJSON DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep DataDeclType Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep DataDeclType = D1 (MetaData "DataDeclType" "Language.PureScript.Environment" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "Data" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Newtype" PrefixI False) (U1 :: Type -> Type))

data TypeKind Source #

The kinds of a type

Constructors

DataType [(Text, Maybe SourceKind)] [(ProperName ConstructorName, [SourceType])]

Data type

TypeSynonym

Type synonym

ExternData

Foreign data

LocalTypeVariable

A local type variable

ScopedTypeVar

A scoped type variable

Instances
Eq TypeKind Source # 
Instance details

Defined in Language.PureScript.Environment

Show TypeKind Source # 
Instance details

Defined in Language.PureScript.Environment

Generic TypeKind Source # 
Instance details

Defined in Language.PureScript.Environment

Associated Types

type Rep TypeKind :: Type -> Type #

Methods

from :: TypeKind -> Rep TypeKind x #

to :: Rep TypeKind x -> TypeKind #

NFData TypeKind Source # 
Instance details

Defined in Language.PureScript.Environment

Methods

rnf :: TypeKind -> () #

ToJSON TypeKind Source # 
Instance details

Defined in Language.PureScript.Environment

FromJSON TypeKind Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep TypeKind Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep TypeKind = D1 (MetaData "TypeKind" "Language.PureScript.Environment" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) ((C1 (MetaCons "DataType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(Text, Maybe SourceKind)]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(ProperName ConstructorName, [SourceType])])) :+: C1 (MetaCons "TypeSynonym" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "ExternData" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "LocalTypeVariable" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "ScopedTypeVar" PrefixI False) (U1 :: Type -> Type))))

data NameKind Source #

A flag for whether a name is for an private or public value - only public values will be included in a generated externs file.

Constructors

Private

A private value introduced as an artifact of code generation (class instances, class member accessors, etc.)

Public

A public value for a module member or foreing import declaration

External

A name for member introduced by foreign import

Instances
Eq NameKind Source # 
Instance details

Defined in Language.PureScript.Environment

Show NameKind Source # 
Instance details

Defined in Language.PureScript.Environment

Generic NameKind Source # 
Instance details

Defined in Language.PureScript.Environment

Associated Types

type Rep NameKind :: Type -> Type #

Methods

from :: NameKind -> Rep NameKind x #

to :: Rep NameKind x -> NameKind #

NFData NameKind Source # 
Instance details

Defined in Language.PureScript.Environment

Methods

rnf :: NameKind -> () #

type Rep NameKind Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep NameKind = D1 (MetaData "NameKind" "Language.PureScript.Environment" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "Private" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Public" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "External" PrefixI False) (U1 :: Type -> Type)))

data NameVisibility Source #

The visibility of a name in scope

Constructors

Undefined

The name is defined in the current binding group, but is not visible

Defined

The name is defined in the another binding group, or has been made visible by a function binder

Instances
Eq NameVisibility Source # 
Instance details

Defined in Language.PureScript.Environment

Show NameVisibility Source # 
Instance details

Defined in Language.PureScript.Environment

Generic NameVisibility Source # 
Instance details

Defined in Language.PureScript.Environment

Associated Types

type Rep NameVisibility :: Type -> Type #

NFData NameVisibility Source # 
Instance details

Defined in Language.PureScript.Environment

Methods

rnf :: NameVisibility -> () #

type Rep NameVisibility Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep NameVisibility = D1 (MetaData "NameVisibility" "Language.PureScript.Environment" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "Undefined" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Defined" PrefixI False) (U1 :: Type -> Type))

data FunctionalDependency Source #

A functional dependency indicates a relationship between two sets of type arguments in a class declaration.

Constructors

FunctionalDependency 

Fields

Instances
Show FunctionalDependency Source # 
Instance details

Defined in Language.PureScript.Environment

Generic FunctionalDependency Source # 
Instance details

Defined in Language.PureScript.Environment

Associated Types

type Rep FunctionalDependency :: Type -> Type #

NFData FunctionalDependency Source # 
Instance details

Defined in Language.PureScript.Environment

Methods

rnf :: FunctionalDependency -> () #

ToJSON FunctionalDependency Source # 
Instance details

Defined in Language.PureScript.Environment

FromJSON FunctionalDependency Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep FunctionalDependency Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep FunctionalDependency = D1 (MetaData "FunctionalDependency" "Language.PureScript.Environment" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "FunctionalDependency" PrefixI True) (S1 (MetaSel (Just "fdDeterminers") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Int]) :*: S1 (MetaSel (Just "fdDetermined") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Int])))

data TypeClassData Source #

Information about a type class

Constructors

TypeClassData 

Fields

Instances
Show TypeClassData Source # 
Instance details

Defined in Language.PureScript.Environment

Generic TypeClassData Source # 
Instance details

Defined in Language.PureScript.Environment

Associated Types

type Rep TypeClassData :: Type -> Type #

NFData TypeClassData Source # 
Instance details

Defined in Language.PureScript.Environment

Methods

rnf :: TypeClassData -> () #

type Rep TypeClassData Source # 
Instance details

Defined in Language.PureScript.Environment

type Rep TypeClassData = D1 (MetaData "TypeClassData" "Language.PureScript.Environment" "purescript-0.13.0-1whdl2565Nb1wvlLK7uK18" False) (C1 (MetaCons "TypeClassData" PrefixI True) ((S1 (MetaSel (Just "typeClassArguments") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(Text, Maybe SourceKind)]) :*: (S1 (MetaSel (Just "typeClassMembers") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(Ident, SourceType)]) :*: S1 (MetaSel (Just "typeClassSuperclasses") NoSourceUnpackedness