language-ats-0.1.1.12: Parser and pretty-printer for ATS.

Safe HaskellNone
LanguageHaskell2010

Language.ATS

Contents

Description

Main module for the library

Synopsis

Functions for working with syntax

lexATS :: String -> [Token] Source #

This function turns a string into a stream of tokens for the parser.

printATS :: ATS -> String Source #

Pretty-print with sensible defaults.

printATSCustom Source #

Arguments

:: Float

Ribbon fraction

-> Int

Ribbon width

-> ATS 
-> String 

printATSFast :: ATS -> String Source #

Fast pretty-printer without indendation. Useful for generating code.

Library functions

Syntax Tree

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 #

Semigroup ATS Source # 

Methods

(<>) :: ATS -> ATS -> ATS #

sconcat :: NonEmpty ATS -> ATS #

stimes :: Integral b => b -> ATS -> ATS #

Monoid ATS Source # 

Methods

mempty :: ATS #

mappend :: ATS -> ATS -> ATS #

mconcat :: [ATS] -> ATS #

NFData ATS Source # 

Methods

rnf :: ATS -> () #

type Rep ATS Source # 
type Rep ATS = D1 * (MetaData "ATS" "Language.ATS.Types" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" 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" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" 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 * [Arg])) (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 "StaVal" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Universal])) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))))) (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 * (Maybe Expression))) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe 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 * Bool)) ((:*:) * (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)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Type])))))) ((:+:) * (C1 * (MetaCons "CBlock" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) ((:+:) * (C1 * (MetaCons "TypeDef" 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 "ViewTypeDef" 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 "SumType" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "typeName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) ((:*:) * (S1 * (MetaSel (Just Symbol "typeArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Arg])) (S1 * (MetaSel (Just Symbol "_leaves") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Leaf]))))) (C1 * (MetaCons "SumViewType" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "typeName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) ((:*:) * (S1 * (MetaSel (Just Symbol "typeArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Arg])) (S1 * (MetaSel (Just Symbol "_leaves") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Leaf])))))) ((:+:) * (C1 * (MetaCons "AbsType" 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 * (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 * (Maybe Type)))))) (C1 * (MetaCons "AbsView" 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 * (Maybe Type))))))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "AbsVT0p" 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 * (Maybe Type)))))) (C1 * (MetaCons "AbsT0p" 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 * Type)))))) ((:+:) * (C1 * (MetaCons "ViewDef" 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 "OverloadIdent" 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 * Name)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Int)))))) (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))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "SortDef" 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 * Type))))) (C1 * (MetaCons "AndD" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Declaration)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Declaration))))) ((:+:) * (C1 * (MetaCons "Local" 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 * ATS))))) ((:+:) * (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]))))) (C1 * (MetaCons "Assume" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Arg])) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))))))) ((:+:) * ((:+:) * (C1 * (MetaCons "TKind" 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 * String))))) (C1 * (MetaCons "SymIntr" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name))))) ((:+:) * (C1 * (MetaCons "Stacst" 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 * Type)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Expression)))))) ((:+:) * (C1 * (MetaCons "PropDef" 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 "FixityDecl" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Fixity)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Either String Int))) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [String])))))))))))

data Expression Source #

A (possibly effectful) expression.

Constructors

Let AlexPosn ATS (Maybe Expression) 
VoidLiteral AlexPosn 
Call Name [[Type]] [Type] (Maybe Expression) [Expression] 
NamedVal Name 
ListLiteral AlexPosn String Type [Expression] 
If 

Fields

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

Fields

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

Fields

FieldMutate 

Fields

Mutate Expression Expression 
Deref AlexPosn Expression 
ProofExpr AlexPosn Expression Expression 
TypeSignature Expression Type 
WhereExp Expression [Declaration] 
TupleEx AlexPosn [Expression] 
While AlexPosn Expression Expression 
Actions ATS 
Begin AlexPosn Expression 
BinList 

Fields

PrecedeList 

Fields

FixAt String StackFunction 
LambdaAt StackFunction 
ParenExpr AlexPosn Expression 

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 Base Expression Source # 

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" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" 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 "Addr" PrefixI False) (U1 *)) (C1 * (MetaCons "DependentInt" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DependentBool" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression))) (C1 * (MetaCons "DepString" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)))) ((:+:) * (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 * Name)))) ((:+:) * (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 True) ((:*:) * (S1 * (MetaSel (Just Symbol "_typeCall") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)) (S1 * (MetaSel (Just Symbol "_typeCallArgs") 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 * (Maybe 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 * StaticExpression))) (C1 * (MetaCons "RefType" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))) ((:+:) * (C1 * (MetaCons "ViewType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)))) (C1 * (MetaCons "FunctionType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))))))) ((:+:) * ((:+:) * (C1 * (MetaCons "NoneType" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))) (C1 * (MetaCons "ImplicitType" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)))) ((:+:) * (C1 * (MetaCons "ViewLiteral" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) ((:+:) * (C1 * (MetaCons "AnonymousRecord" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, Type)])))) (C1 * (MetaCons "ParenType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Type))))))))))
type Base Type Source # 
type Base Type

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 Implementation Source #

An implement declaration

Constructors

Implement 

Fields

Instances

Eq Implementation Source # 
Show Implementation Source # 
Generic Implementation Source # 

Associated Types

type Rep Implementation :: * -> * #

NFData Implementation Source # 

Methods

rnf :: Implementation -> () #

type Rep Implementation Source # 

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" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" 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 * Name)) (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 "TuplePattern" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Pattern]))))) ((:+:) * (C1 * (MetaCons "AtPattern" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern)))) ((:+:) * (C1 * (MetaCons "UniversalPattern" 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 * [Universal])) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern))))) (C1 * (MetaCons "ExistentialPattern" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Existential)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Pattern))))))))
type Base Pattern Source # 

data Name Source #

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

Instances

Eq Name Source # 

Methods

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

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

Show Name Source # 

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

Generic Name Source # 

Associated Types

type Rep Name :: * -> * #

Methods

from :: Name -> Rep Name x #

to :: Rep Name x -> Name #

NFData Name Source # 

Methods

rnf :: Name -> () #

type Rep Name Source # 
type Rep Name = D1 * (MetaData "Name" "Language.ATS.Types" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" False) ((:+:) * ((:+:) * (C1 * (MetaCons "Unqualified" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) ((:+:) * (C1 * (MetaCons "Qualified" 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 * String))))) (C1 * (MetaCons "SpecialName" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))))) ((:+:) * (C1 * (MetaCons "Functorial" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) ((:+:) * (C1 * (MetaCons "Unnamed" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))) (C1 * (MetaCons "FieldName" 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 * String))))))))

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" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" False) (C1 * (MetaCons "Negate" PrefixI False) (U1 *))

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" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" 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 *)) (C1 * (MetaCons "StaticEq" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "Mod" PrefixI False) (U1 *)) (C1 * (MetaCons "NotEq" PrefixI False) (U1 *))))))

data Leaf Source #

Instances

Eq Leaf Source # 

Methods

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

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

Show Leaf Source # 

Methods

showsPrec :: Int -> Leaf -> ShowS #

show :: Leaf -> String #

showList :: [Leaf] -> ShowS #

Generic Leaf Source # 

Associated Types

type Rep Leaf :: * -> * #

Methods

from :: Leaf -> Rep Leaf x #

to :: Rep Leaf x -> Leaf #

NFData Leaf Source # 

Methods

rnf :: Leaf -> () #

type Rep Leaf Source # 
type Rep Leaf = D1 * (MetaData "Leaf" "Language.ATS.Types" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" False) (C1 * (MetaCons "Leaf" PrefixI True) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "_constructorUniversals") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Universal])) (S1 * (MetaSel (Just Symbol "name") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))) ((:*:) * (S1 * (MetaSel (Just Symbol "constructorArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [String])) (S1 * (MetaSel (Just Symbol "maybeType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe Type))))))

data Arg Source #

An argument to a function.

Constructors

Arg (Paired String Type) 
PrfArg Arg Arg 
NoArgs 

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 Addendum Source #

Determines the default behavior for incomplete pattern matches

Constructors

None 
Plus 
Minus 

Instances

Eq Addendum Source # 
Data Addendum Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Addendum -> c Addendum #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Addendum #

toConstr :: Addendum -> Constr #

dataTypeOf :: Addendum -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Addendum) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Addendum) #

gmapT :: (forall b. Data b => b -> b) -> Addendum -> Addendum #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Addendum -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Addendum -> r #

gmapQ :: (forall d. Data d => d -> u) -> Addendum -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Addendum -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Addendum -> m Addendum #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Addendum -> m Addendum #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Addendum -> m Addendum #

Show Addendum Source # 
Generic Addendum Source # 

Associated Types

type Rep Addendum :: * -> * #

Methods

from :: Addendum -> Rep Addendum x #

to :: Rep Addendum x -> Addendum #

Pretty Addendum Source # 

Methods

pretty :: Addendum -> Doc #

prettyList :: [Addendum] -> Doc #

NFData Addendum Source # 

Methods

rnf :: Addendum -> () #

type Rep Addendum # 
type Rep Addendum = D1 * (MetaData "Addendum" "Language.ATS.Lexer" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" False) ((:+:) * (C1 * (MetaCons "None" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "Plus" PrefixI False) (U1 *)) (C1 * (MetaCons "Minus" PrefixI False) (U1 *))))

data Universal Source #

Wrapper for universal quantifiers (refinement types)

Constructors

Universal 

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 # 

data StaticExpression Source #

Instances

Eq StaticExpression Source # 
Show StaticExpression Source # 
Generic StaticExpression Source # 
NFData StaticExpression Source # 

Methods

rnf :: StaticExpression -> () #

Recursive StaticExpression Source # 
Corecursive StaticExpression Source # 
type Rep StaticExpression Source # 
type Rep StaticExpression = D1 * (MetaData "StaticExpression" "Language.ATS.Types" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" False) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "StaticVal" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name))) (C1 * (MetaCons "StaticBinary" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * BinOp)) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)))))) ((:+:) * (C1 * (MetaCons "StaticInt" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int))) (C1 * (MetaCons "SPrecede" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "StaticBool" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Bool))) (C1 * (MetaCons "StaticVoid" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)))) ((:+:) * (C1 * (MetaCons "Sif" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "scond") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)) ((:*:) * (S1 * (MetaSel (Just Symbol "wwhenTrue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression)) (S1 * (MetaSel (Just Symbol "selseExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticExpression))))) (C1 * (MetaCons "SCall" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Name)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [StaticExpression])))))))
type Base StaticExpression Source # 

data Paired a b Source #

Constructors

Both a b 
First a 
Second b 

Instances

(Eq b, Eq a) => Eq (Paired a b) Source # 

Methods

(==) :: Paired a b -> Paired a b -> Bool #

(/=) :: Paired a b -> Paired a b -> Bool #

(Show b, Show a) => Show (Paired a b) Source # 

Methods

showsPrec :: Int -> Paired a b -> ShowS #

show :: Paired a b -> String #

showList :: [Paired a b] -> ShowS #

Generic (Paired a b) Source # 

Associated Types

type Rep (Paired a b) :: * -> * #

Methods

from :: Paired a b -> Rep (Paired a b) x #

to :: Rep (Paired a b) x -> Paired a b #

(NFData b, NFData a) => NFData (Paired a b) Source # 

Methods

rnf :: Paired a b -> () #

type Rep (Paired a b) Source # 

Lexical types

data Token Source #

Instances

Eq Token Source # 

Methods

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

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

Show Token Source # 

Methods

showsPrec :: Int -> Token -> ShowS #

show :: Token -> String #

showList :: [Token] -> ShowS #

Generic Token Source # 

Associated Types

type Rep Token :: * -> * #

Methods

from :: Token -> Rep Token x #

to :: Rep Token x -> Token #

Pretty Token Source # 

Methods

pretty :: Token -> Doc #

prettyList :: [Token] -> Doc #

NFData Token Source # 

Methods

rnf :: Token -> () #

type Rep Token # 
type Rep Token = D1 * (MetaData "Token" "Language.ATS.Lexer" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Identifier" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) (C1 * (MetaCons "Keyword" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Keyword))))) ((:+:) * (C1 * (MetaCons "BoolTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Bool)))) ((:+:) * (C1 * (MetaCons "IntTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int)))) (C1 * (MetaCons "FloatTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Float))))))) ((:+:) * ((:+:) * (C1 * (MetaCons "CharTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Char)))) ((:+:) * (C1 * (MetaCons "StringTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) (C1 * (MetaCons "Special" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))))) ((:+:) * (C1 * (MetaCons "CBlockLex" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) ((:+:) * (C1 * (MetaCons "IdentifierSpace" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) (C1 * (MetaCons "Operator" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "Arrow" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) (C1 * (MetaCons "FuncType" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))))) ((:+:) * (C1 * (MetaCons "CommentLex" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) ((:+:) * (C1 * (MetaCons "MacroBlock" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) (C1 * (MetaCons "TimeTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))))))) ((:+:) * ((:+:) * (C1 * (MetaCons "SignatureTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))) ((:+:) * (C1 * (MetaCons "DoubleParenTok" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))) (C1 * (MetaCons "DoubleBracesTok" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))))) ((:+:) * (C1 * (MetaCons "DoubleBracketTok" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))) ((:+:) * (C1 * (MetaCons "SpecialBracket" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn))) (C1 * (MetaCons "FixityTok" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * AlexPosn)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String)))))))))

data AlexPosn Source #

Constructors

AlexPn !Int !Int !Int 

Instances

Eq AlexPosn Source # 
Data AlexPosn # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AlexPosn -> c AlexPosn #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AlexPosn #

toConstr :: AlexPosn -> Constr #

dataTypeOf :: AlexPosn -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c AlexPosn) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AlexPosn) #

gmapT :: (forall b. Data b => b -> b) -> AlexPosn -> AlexPosn #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AlexPosn -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AlexPosn -> r #

gmapQ :: (forall d. Data d => d -> u) -> AlexPosn -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AlexPosn -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AlexPosn -> m AlexPosn #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AlexPosn -> m AlexPosn #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AlexPosn -> m AlexPosn #

Show AlexPosn Source # 
Generic AlexPosn # 

Associated Types

type Rep AlexPosn :: * -> * #

Methods

from :: AlexPosn -> Rep AlexPosn x #

to :: Rep AlexPosn x -> AlexPosn #

NFData AlexPosn # 

Methods

rnf :: AlexPosn -> () #

type Rep AlexPosn # 

data Keyword Source #

Instances

Eq Keyword Source # 

Methods

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

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

Show Keyword Source # 
Generic Keyword Source # 

Associated Types

type Rep Keyword :: * -> * #

Methods

from :: Keyword -> Rep Keyword x #

to :: Rep Keyword x -> Keyword #

Pretty Keyword Source # 

Methods

pretty :: Keyword -> Doc #

prettyList :: [Keyword] -> Doc #

NFData Keyword Source # 

Methods

rnf :: Keyword -> () #

type Rep Keyword # 
type Rep Keyword = D1 * (MetaData "Keyword" "Language.ATS.Lexer" "language-ats-0.1.1.12-9V5dHh3F1TU2pD9wDJ5YIk" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwFun" PrefixI False) (U1 *)) (C1 * (MetaCons "KwFnx" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwAnd" PrefixI False) (U1 *)) (C1 * (MetaCons "KwDatatype" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwDatavtype" PrefixI False) (U1 *)) (C1 * (MetaCons "KwAssume" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwTypedef" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwVtypedef" PrefixI False) (U1 *)) (C1 * (MetaCons "KwStaload" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Bool))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwLet" PrefixI False) (U1 *)) (C1 * (MetaCons "KwIn" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwLocal" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwEnd" PrefixI False) (U1 *)) (C1 * (MetaCons "KwImplement" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwCase" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) (C1 * (MetaCons "KwIf" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwSif" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwThen" PrefixI False) (U1 *)) (C1 * (MetaCons "KwElse" PrefixI False) (U1 *))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwString" PrefixI False) (U1 *)) (C1 * (MetaCons "KwBool" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwInt" PrefixI False) (U1 *)) (C1 * (MetaCons "KwVoid" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwNat" PrefixI False) (U1 *)) (C1 * (MetaCons "KwVal" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum)))) ((:+:) * (C1 * (MetaCons "KwVar" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwLambda" PrefixI False) (U1 *)) (C1 * (MetaCons "KwLinearLambda" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwInclude" PrefixI False) (U1 *)) (C1 * (MetaCons "KwWhen" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwOf" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwAbsprop" PrefixI False) (U1 *)) (C1 * (MetaCons "KwPrval" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwStadef" PrefixI False) (U1 *)) (C1 * (MetaCons "KwPraxi" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwWhile" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwWhere" PrefixI False) (U1 *)) (C1 * (MetaCons "KwBegin" PrefixI False) (U1 *)))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwOverload" PrefixI False) (U1 *)) (C1 * (MetaCons "KwWith" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwIfCase" PrefixI False) (U1 *)) (C1 * (MetaCons "KwChar" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwDataview" PrefixI False) (U1 *)) (C1 * (MetaCons "KwDataprop" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwView" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) ((:+:) * (C1 * (MetaCons "KwAbstype" PrefixI False) (U1 *)) (C1 * (MetaCons "KwType" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwAbst0p" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) (C1 * (MetaCons "KwAbsvt0p" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum)))) ((:+:) * (C1 * (MetaCons "KwT0p" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) ((:+:) * (C1 * (MetaCons "KwVt0p" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Addendum))) (C1 * (MetaCons "KwPrfun" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwPrfn" PrefixI False) (U1 *)) (C1 * (MetaCons "KwCastfn" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwExtern" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwAbsvtype" PrefixI False) (U1 *)) (C1 * (MetaCons "KwProofImplement" PrefixI False) (U1 *))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwSortdef" PrefixI False) (U1 *)) (C1 * (MetaCons "KwPropdef" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwRaise" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwTKind" PrefixI False) (U1 *)) (C1 * (MetaCons "KwMod" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwFixAt" PrefixI False) (U1 *)) (C1 * (MetaCons "KwLambdaAt" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwAddrAt" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwAddr" PrefixI False) (U1 *)) (C1 * (MetaCons "KwSta" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "KwViewAt" PrefixI False) (U1 *)) (C1 * (MetaCons "KwViewdef" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwSymintr" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwAbsview" PrefixI False) (U1 *)) (C1 * (MetaCons "KwFn" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "KwInfix" PrefixI False) (U1 *)) (C1 * (MetaCons "KwInfixr" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "KwInfixl" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "KwStacst" PrefixI False) (U1 *)) (C1 * (MetaCons "KwListLit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * String))))))))))

Error types

data ATSError a Source #

Instances

Eq a => Eq (ATSError a) Source # 

Methods

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

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

Show a => Show (ATSError a) Source # 

Methods

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

show :: ATSError a -> String #

showList :: [ATSError a] -> ShowS #

Generic (ATSError a) Source # 

Associated Types

type Rep (ATSError a) :: * -> * #

Methods

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

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

Pretty (ATSError String) Source # 
NFData a => NFData (ATSError a) Source # 

Methods

rnf :: ATSError a -> () #

type Rep (ATSError a) # 

Lenses