ats-format-0.1.0.0: A source-code formatter for ATS

Safe HaskellNone
LanguageHaskell2010

Language.ATS.Types

Description

This is a module containing types to model the ATS syntax tree. As it is collapsed by the pretty printer, you may see that in some places it is focused on the lexical side of things.

Synopsis

Documentation

newtype ATS Source #

Newtype wrapper containing a list of declarations

Constructors

ATS 

Fields

Instances

Eq ATS Source # 

Methods

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

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

Show ATS Source # 

Methods

showsPrec :: Int -> ATS -> ShowS #

show :: ATS -> String #

showList :: [ATS] -> ShowS #

Generic ATS Source # 

Associated Types

type Rep ATS :: * -> * #

Methods

from :: ATS -> Rep ATS x #

to :: Rep ATS x -> ATS #

NFData ATS Source # 

Methods

rnf :: ATS -> () #

type Rep ATS Source # 
type Rep ATS = D1 * (MetaData "ATS" "Language.ATS.Types" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" True) (C1 * (MetaCons "ATS" PrefixI True) (S1 * (MetaSel (Just Symbol "unATS") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Declaration])))

data Declaration Source #

Declare something in a scope (a function, value, action, etc.)

Instances

Eq Declaration Source # 
Show Declaration Source # 
Generic Declaration Source # 

Associated Types

type Rep Declaration :: * -> * #

NFData Declaration Source # 

Methods

rnf :: Declaration -> () #

type Rep Declaration Source # 
type Rep Declaration = D1 * (MetaData "Declaration" "Language.ATS.Types" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Func" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Function)))) (C1 * (MetaCons "Impl" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Implementation)))) ((:+:) * (C1 * (MetaCons "ProofImpl" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Implementation))) ((:+:) * (C1 * (MetaCons "Val" PrefixI False) ((:*:) * ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Type)))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "PrVal" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))))) ((:+:) * ((:+:) * (C1 * (MetaCons "Var" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Type))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "AndDecl" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Type))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))))) ((:+:) * (C1 * (MetaCons "Include" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) ((:+:) * (C1 * (MetaCons "Staload" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe String))) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) (C1 * (MetaCons "Stadef" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "CBlock" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) (C1 * (MetaCons "RecordType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, Type)]))))) ((:+:) * (C1 * (MetaCons "RecordViewType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))) ((:+:) * (C1 * (MetaCons "SumType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, Maybe Type)])))) (C1 * (MetaCons "SumViewType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, Maybe Type)]))))))) ((:+:) * ((:+:) * (C1 * (MetaCons "AbsViewType" PrefixI False) ((:*:) * ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Arg])) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))))) ((:+:) * (C1 * (MetaCons "OverloadOp" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * BinOp)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name))))) (C1 * (MetaCons "Comment" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))))) ((:+:) * (C1 * (MetaCons "DataProp" PrefixI False) ((:*:) * ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Arg])) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [DataPropLeaf]))))) ((:+:) * (C1 * (MetaCons "Extern" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Declaration)))) (C1 * (MetaCons "Define" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))))))))

data Type Source #

A type for parsed ATS types

Instances

Eq Type Source # 

Methods

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

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

Show Type Source # 

Methods

showsPrec :: Int -> Type -> ShowS #

show :: Type -> String #

showList :: [Type] -> ShowS #

Generic Type Source # 

Associated Types

type Rep Type :: * -> * #

Methods

from :: Type -> Rep Type x #

to :: Rep Type x -> Type #

NFData Type Source # 

Methods

rnf :: Type -> () #

Recursive Type Source # 

Methods

project :: Type -> Base Type Type #

cata :: (Base Type a -> a) -> Type -> a #

para :: (Base Type (Type, a) -> a) -> Type -> a #

gpara :: (Corecursive Type, Comonad w) => (forall b. Base Type (w b) -> w (Base Type b)) -> (Base Type (EnvT Type w a) -> a) -> Type -> a #

prepro :: Corecursive Type => (forall b. Base Type b -> Base Type b) -> (Base Type a -> a) -> Type -> a #

gprepro :: (Corecursive Type, Comonad w) => (forall b. Base Type (w b) -> w (Base Type b)) -> (forall c. Base Type c -> Base Type c) -> (Base Type (w a) -> a) -> Type -> a #

Corecursive Type Source # 

Methods

embed :: Base Type Type -> Type #

ana :: (a -> Base Type a) -> a -> Type #

apo :: (a -> Base Type (Either Type a)) -> a -> Type #

postpro :: Recursive Type => (forall b. Base Type b -> Base Type b) -> (a -> Base Type a) -> a -> Type #

gpostpro :: (Recursive Type, Monad m) => (forall b. m (Base Type b) -> Base Type (m b)) -> (forall c. Base Type c -> Base Type c) -> (a -> Base Type (m a)) -> a -> Type #

type Rep Type Source # 
type Rep Type = D1 * (MetaData "Type" "Language.ATS.Types" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Bool" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "Void" PrefixI False) (U1 *)) (C1 * (MetaCons "String" PrefixI False) (U1 *)))) ((:+:) * (C1 * (MetaCons "Char" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "Int" PrefixI False) (U1 *)) (C1 * (MetaCons "Nat" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DependentInt" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))) ((:+:) * (C1 * (MetaCons "DependentBool" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))) (C1 * (MetaCons "DepString" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) ((:+:) * ((:+:) * (C1 * (MetaCons "Double" PrefixI False) (U1 *)) (C1 * (MetaCons "Float" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "Tuple" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Type])))) (C1 * (MetaCons "Named" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Ex" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Existential)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))) ((:+:) * (C1 * (MetaCons "ForA" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Universal)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))) (C1 * (MetaCons "Dependent" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Type])))))) ((:+:) * ((:+:) * (C1 * (MetaCons "Unconsumed" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))) (C1 * (MetaCons "AsProof" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Type)))))) ((:+:) * (C1 * (MetaCons "FromVT" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))) (C1 * (MetaCons "MaybeVal" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "T0p" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) ((:+:) * (C1 * (MetaCons "Vt0p" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) (C1 * (MetaCons "At" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))))))) ((:+:) * ((:+:) * (C1 * (MetaCons "ProofType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))))) (C1 * (MetaCons "ConcreteType" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))) ((:+:) * (C1 * (MetaCons "RefType" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))) (C1 * (MetaCons "AbsProp" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Arg]))))))))))
type Base Type Source # 
type Base Type = TypeF

data Name Source #

A name can be qualified (`$UN.unsafefn`) or not

data Pattern Source #

A data type for patterns.

Instances

Eq Pattern Source # 

Methods

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

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

Show Pattern Source # 
Generic Pattern Source # 

Associated Types

type Rep Pattern :: * -> * #

Methods

from :: Pattern -> Rep Pattern x #

to :: Rep Pattern x -> Pattern #

NFData Pattern Source # 

Methods

rnf :: Pattern -> () #

Recursive Pattern Source # 

Methods

project :: Pattern -> Base Pattern Pattern #

cata :: (Base Pattern a -> a) -> Pattern -> a #

para :: (Base Pattern (Pattern, a) -> a) -> Pattern -> a #

gpara :: (Corecursive Pattern, Comonad w) => (forall b. Base Pattern (w b) -> w (Base Pattern b)) -> (Base Pattern (EnvT Pattern w a) -> a) -> Pattern -> a #

prepro :: Corecursive Pattern => (forall b. Base Pattern b -> Base Pattern b) -> (Base Pattern a -> a) -> Pattern -> a #

gprepro :: (Corecursive Pattern, Comonad w) => (forall b. Base Pattern (w b) -> w (Base Pattern b)) -> (forall c. Base Pattern c -> Base Pattern c) -> (Base Pattern (w a) -> a) -> Pattern -> a #

Corecursive Pattern Source # 

Methods

embed :: Base Pattern Pattern -> Pattern #

ana :: (a -> Base Pattern a) -> a -> Pattern #

apo :: (a -> Base Pattern (Either Pattern a)) -> a -> Pattern #

postpro :: Recursive Pattern => (forall b. Base Pattern b -> Base Pattern b) -> (a -> Base Pattern a) -> a -> Pattern #

gpostpro :: (Recursive Pattern, Monad m) => (forall b. m (Base Pattern b) -> Base Pattern (m b)) -> (forall c. Base Pattern c -> Base Pattern c) -> (a -> Base Pattern (m a)) -> a -> Pattern #

type Rep Pattern Source # 
type Rep Pattern = D1 * (MetaData "Pattern" "Language.ATS.Types" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" False) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Wildcard" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))) (C1 * (MetaCons "PName" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Pattern]))))) ((:+:) * (C1 * (MetaCons "PSum" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)))) (C1 * (MetaCons "PLiteral" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) ((:+:) * ((:+:) * (C1 * (MetaCons "Guarded" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern))))) (C1 * (MetaCons "Free" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)))) ((:+:) * (C1 * (MetaCons "Proof" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern))))) ((:+:) * (C1 * (MetaCons "NullPattern" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))) (C1 * (MetaCons "TuplePattern" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Pattern])))))))
type Base Pattern Source # 

data PatternF r Source #

Instances

Functor PatternF Source # 

Methods

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

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

Foldable PatternF Source # 

Methods

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

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

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

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

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

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

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

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

toList :: PatternF a -> [a] #

null :: PatternF a -> Bool #

length :: PatternF a -> Int #

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

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

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

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

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

Traversable PatternF Source # 

Methods

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

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

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

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

data Arg Source #

An argument to a function.

Constructors

Arg String (Maybe Type) 

Instances

Eq Arg Source # 

Methods

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

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

Show Arg Source # 

Methods

showsPrec :: Int -> Arg -> ShowS #

show :: Arg -> String #

showList :: [Arg] -> ShowS #

Generic Arg Source # 

Associated Types

type Rep Arg :: * -> * #

Methods

from :: Arg -> Rep Arg x #

to :: Rep Arg x -> Arg #

NFData Arg Source # 

Methods

rnf :: Arg -> () #

type Rep Arg Source # 

data Universal Source #

Wrapper for universal quantifiers (refinement types)

Constructors

Universal 

Fields

data Function Source #

A function declaration accounting for all three keywords (???) ATS uses to define them.

Instances

Eq Function Source # 
Show Function Source # 
Generic Function Source # 

Associated Types

type Rep Function :: * -> * #

Methods

from :: Function -> Rep Function x #

to :: Rep Function x -> Function #

NFData Function Source # 

Methods

rnf :: Function -> () #

type Rep Function Source # 

data Expression Source #

A (possibly effectful) expression.

Constructors

Let AlexPosn ATS Expression 
Begin ATS 
Local ATS 
VoidLiteral AlexPosn 
Call Name [Expression] [Type] [Expression] 
NamedVal Name 
If 

Fields

Sif 

Fields

BoolLit Bool 
TimeLit String 
FloatLit Float 
IntLit Int 
Lambda AlexPosn LambdaType Pattern Expression 
LinearLambda AlexPosn LambdaType Pattern Expression 
Index AlexPosn Name Expression 
Access AlexPosn Expression Name 
StringLit String 
CharLit Char 
Binary BinOp Expression Expression 
Unary UnOp Expression 
Case 

Fields

RecordValue AlexPosn [(String, Expression)] (Maybe Type) 
Precede Expression Expression 
FieldMutate 

Fields

Deref AlexPosn Expression 
Ref AlexPosn Type Expression 
ProofExpr AlexPosn Expression Expression 
TypeSignature Expression Type 
WhereExp Expression Declaration 
TupleEx AlexPosn [Expression] 
While AlexPosn Expression Expression 
Actions ATS 

Instances

Eq Expression Source # 
Show Expression Source # 
Generic Expression Source # 

Associated Types

type Rep Expression :: * -> * #

NFData Expression Source # 

Methods

rnf :: Expression -> () #

Recursive Expression Source # 

Methods

project :: Expression -> Base Expression Expression #

cata :: (Base Expression a -> a) -> Expression -> a #

para :: (Base Expression (Expression, a) -> a) -> Expression -> a #

gpara :: (Corecursive Expression, Comonad w) => (forall b. Base Expression (w b) -> w (Base Expression b)) -> (Base Expression (EnvT Expression w a) -> a) -> Expression -> a #

prepro :: Corecursive Expression => (forall b. Base Expression b -> Base Expression b) -> (Base Expression a -> a) -> Expression -> a #

gprepro :: (Corecursive Expression, Comonad w) => (forall b. Base Expression (w b) -> w (Base Expression b)) -> (forall c. Base Expression c -> Base Expression c) -> (Base Expression (w a) -> a) -> Expression -> a #

Corecursive Expression Source # 

Methods

embed :: Base Expression Expression -> Expression #

ana :: (a -> Base Expression a) -> a -> Expression #

apo :: (a -> Base Expression (Either Expression a)) -> a -> Expression #

postpro :: Recursive Expression => (forall b. Base Expression b -> Base Expression b) -> (a -> Base Expression a) -> a -> Expression #

gpostpro :: (Recursive Expression, Monad m) => (forall b. m (Base Expression b) -> Base Expression (m b)) -> (forall c. Base Expression c -> Base Expression c) -> (a -> Base Expression (m a)) -> a -> Expression #

type Rep Expression Source # 
type Rep Expression = D1 * (MetaData "Expression" "Language.ATS.Types" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Let" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ATS)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "Begin" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ATS)))) ((:+:) * (C1 * (MetaCons "Local" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ATS))) (C1 * (MetaCons "VoidLiteral" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))))) ((:+:) * ((:+:) * (C1 * (MetaCons "Call" PrefixI False) ((:*:) * ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Expression]))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Type])) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Expression]))))) (C1 * (MetaCons "NamedVal" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)))) ((:+:) * (C1 * (MetaCons "If" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "cond") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) ((:*:) * (S1 * (MetaSel (Just Symbol "whenTrue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Just Symbol "elseExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "Sif" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "cond") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) ((:*:) * (S1 * (MetaSel (Just Symbol "whenTrue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Just Symbol "elseExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "BoolLit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Bool))) (C1 * (MetaCons "TimeLit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) ((:+:) * (C1 * (MetaCons "FloatLit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Float))) (C1 * (MetaCons "IntLit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int))))) ((:+:) * ((:+:) * (C1 * (MetaCons "Lambda" PrefixI False) ((:*:) * ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * LambdaType))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "LinearLambda" PrefixI False) ((:*:) * ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * LambdaType))) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))))) ((:+:) * (C1 * (MetaCons "Index" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "Access" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name))))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "StringLit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) (C1 * (MetaCons "CharLit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Char)))) ((:+:) * (C1 * (MetaCons "Binary" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * BinOp)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "Unary" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * UnOp)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "Case" PrefixI True) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "posE") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Just Symbol "kind") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) ((:*:) * (S1 * (MetaSel (Just Symbol "val") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Just Symbol "arms") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(Pattern, Expression)]))))) (C1 * (MetaCons "RecordValue" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, Expression)])) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Type))))))) ((:+:) * (C1 * (MetaCons "Precede" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))) (C1 * (MetaCons "FieldMutate" PrefixI True) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "posE") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Just Symbol "old") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))) ((:*:) * (S1 * (MetaSel (Just Symbol "field") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Just Symbol "new") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Deref" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))) (C1 * (MetaCons "Ref" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)))))) ((:+:) * (C1 * (MetaCons "ProofExpr" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "TypeSignature" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "WhereExp" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Declaration)))) (C1 * (MetaCons "TupleEx" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Expression]))))) ((:+:) * (C1 * (MetaCons "While" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Expression))))) (C1 * (MetaCons "Actions" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ATS))))))))
type Base Expression Source # 

data ExpressionF r Source #

Instances

Functor ExpressionF Source # 

Methods

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

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

Foldable ExpressionF Source # 

Methods

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

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

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

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

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

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

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

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

toList :: ExpressionF a -> [a] #

null :: ExpressionF a -> Bool #

length :: ExpressionF a -> Int #

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

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

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

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

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

Traversable ExpressionF Source # 

Methods

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

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

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

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

data Implementation Source #

An implement declaration

Constructors

Implement 

Fields

data BinOp Source #

Binary operators on expressions

Instances

Eq BinOp Source # 

Methods

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

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

Show BinOp Source # 

Methods

showsPrec :: Int -> BinOp -> ShowS #

show :: BinOp -> String #

showList :: [BinOp] -> ShowS #

Generic BinOp Source # 

Associated Types

type Rep BinOp :: * -> * #

Methods

from :: BinOp -> Rep BinOp x #

to :: Rep BinOp x -> BinOp #

NFData BinOp Source # 

Methods

rnf :: BinOp -> () #

type Rep BinOp Source # 
type Rep BinOp = D1 * (MetaData "BinOp" "Language.ATS.Types" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" False) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Add" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "Mult" PrefixI False) (U1 *)) (C1 * (MetaCons "Div" PrefixI False) (U1 *)))) ((:+:) * (C1 * (MetaCons "Sub" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "GreaterThan" PrefixI False) (U1 *)) (C1 * (MetaCons "GreaterThanEq" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "LessThan" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "LessThanEq" PrefixI False) (U1 *)) (C1 * (MetaCons "Equal" PrefixI False) (U1 *)))) ((:+:) * (C1 * (MetaCons "NotEqual" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "LogicalAnd" PrefixI False) (U1 *)) (C1 * (MetaCons "LogicalOr" PrefixI False) (U1 *))))))

data UnOp Source #

`~` is used to negate numbers in ATS

Constructors

Negate 

Instances

Eq UnOp Source # 

Methods

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

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

Show UnOp Source # 

Methods

showsPrec :: Int -> UnOp -> ShowS #

show :: UnOp -> String #

showList :: [UnOp] -> ShowS #

Generic UnOp Source # 

Associated Types

type Rep UnOp :: * -> * #

Methods

from :: UnOp -> Rep UnOp x #

to :: Rep UnOp x -> UnOp #

NFData UnOp Source # 

Methods

rnf :: UnOp -> () #

type Rep UnOp Source # 
type Rep UnOp = D1 * (MetaData "UnOp" "Language.ATS.Types" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" False) (C1 * (MetaCons "Negate" PrefixI False) (U1 *))

data TypeF r Source #

Instances

Functor TypeF Source # 

Methods

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

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

Foldable TypeF Source # 

Methods

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

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

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

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

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

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

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

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

toList :: TypeF a -> [a] #

null :: TypeF a -> Bool #

length :: TypeF a -> Int #

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

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

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

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

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

Traversable TypeF Source # 

Methods

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

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

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

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

data Existential Source #

Wrapper for existential quantifiers/types

Constructors

Existential 

data LambdaType Source #

A type for the various lambda arrows (`=>`, `=<cloref1>`, etc.)

data Addendum Source #

Constructors

None 
Plus 
Minus 

Instances

Eq Addendum Source # 
Show Addendum Source # 
Generic Addendum Source # 

Associated Types

type Rep Addendum :: * -> * #

Methods

from :: Addendum -> Rep Addendum x #

to :: Rep Addendum x -> Addendum #

NFData Addendum Source # 

Methods

rnf :: Addendum -> () #

type Rep Addendum # 
type Rep Addendum = D1 * (MetaData "Addendum" "Language.ATS.Lexer" "ats-format-0.1.0.0-Ej7E1ENCTD5AIN8TaNeAxn" False) ((:+:) * (C1 * (MetaCons "None" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "Plus" PrefixI False) (U1 *)) (C1 * (MetaCons "Minus" PrefixI False) (U1 *))))

data PreFunction Source #

Constructors

PreF 

Fields

Instances

Eq PreFunction Source # 
Show PreFunction Source # 
Generic PreFunction Source # 

Associated Types

type Rep PreFunction :: * -> * #

NFData PreFunction Source # 

Methods

rnf :: PreFunction -> () #

type Rep PreFunction Source #