SSTG-0.1.0.5: STG Symbolic Execution

Safe HaskellSafe
LanguageHaskell2010

SSTG.Core.Syntax.Language

Description

SSTG Syntax Definitions

Synopsis

Documentation

newtype GenProgram bnd var Source #

STG Program

Constructors

Program [GenBinding bnd var] 

Instances

(Eq var, Eq bnd) => Eq (GenProgram bnd var) Source # 

Methods

(==) :: GenProgram bnd var -> GenProgram bnd var -> Bool #

(/=) :: GenProgram bnd var -> GenProgram bnd var -> Bool #

(Read var, Read bnd) => Read (GenProgram bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenProgram bnd var) #

readList :: ReadS [GenProgram bnd var] #

readPrec :: ReadPrec (GenProgram bnd var) #

readListPrec :: ReadPrec [GenProgram bnd var] #

(Show var, Show bnd) => Show (GenProgram bnd var) Source # 

Methods

showsPrec :: Int -> GenProgram bnd var -> ShowS #

show :: GenProgram bnd var -> String #

showList :: [GenProgram bnd var] -> ShowS #

data Name Source #

Name

Instances

data Var Source #

Variable

Constructors

Var Name (GenType Name) 

Instances

data GenLit bnd var Source #

Literal

Instances

(Eq var, Eq bnd) => Eq (GenLit bnd var) Source # 

Methods

(==) :: GenLit bnd var -> GenLit bnd var -> Bool #

(/=) :: GenLit bnd var -> GenLit bnd var -> Bool #

(Read var, Read bnd) => Read (GenLit bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenLit bnd var) #

readList :: ReadS [GenLit bnd var] #

readPrec :: ReadPrec (GenLit bnd var) #

readListPrec :: ReadPrec [GenLit bnd var] #

(Show var, Show bnd) => Show (GenLit bnd var) Source # 

Methods

showsPrec :: Int -> GenLit bnd var -> ShowS #

show :: GenLit bnd var -> String #

showList :: [GenLit bnd var] -> ShowS #

data GenAtom bnd var Source #

Atomic

Constructors

VarAtom var 
LitAtom (GenLit bnd var) 

Instances

(Eq bnd, Eq var) => Eq (GenAtom bnd var) Source # 

Methods

(==) :: GenAtom bnd var -> GenAtom bnd var -> Bool #

(/=) :: GenAtom bnd var -> GenAtom bnd var -> Bool #

(Read bnd, Read var) => Read (GenAtom bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenAtom bnd var) #

readList :: ReadS [GenAtom bnd var] #

readPrec :: ReadPrec (GenAtom bnd var) #

readListPrec :: ReadPrec [GenAtom bnd var] #

(Show bnd, Show var) => Show (GenAtom bnd var) Source # 

Methods

showsPrec :: Int -> GenAtom bnd var -> ShowS #

show :: GenAtom bnd var -> String #

showList :: [GenAtom bnd var] -> ShowS #

data GenPrimFun bnd var Source #

Primitive Operation

Constructors

PrimFun bnd (GenType bnd) 

Instances

Eq bnd => Eq (GenPrimFun bnd var) Source # 

Methods

(==) :: GenPrimFun bnd var -> GenPrimFun bnd var -> Bool #

(/=) :: GenPrimFun bnd var -> GenPrimFun bnd var -> Bool #

Read bnd => Read (GenPrimFun bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenPrimFun bnd var) #

readList :: ReadS [GenPrimFun bnd var] #

readPrec :: ReadPrec (GenPrimFun bnd var) #

readListPrec :: ReadPrec [GenPrimFun bnd var] #

Show bnd => Show (GenPrimFun bnd var) Source # 

Methods

showsPrec :: Int -> GenPrimFun bnd var -> ShowS #

show :: GenPrimFun bnd var -> String #

showList :: [GenPrimFun bnd var] -> ShowS #

data GenExpr bnd var Source #

GenExpression

Constructors

Atom (GenAtom bnd var) 
PrimApp (GenPrimFun bnd var) [GenAtom bnd var] 
ConApp (GenDataCon bnd) [GenAtom bnd var] 
FunApp var [GenAtom bnd var] 
Let (GenBinding bnd var) (GenExpr bnd var) 
Case (GenExpr bnd var) var [GenAlt bnd var] 

Instances

(Eq var, Eq bnd) => Eq (GenExpr bnd var) Source # 

Methods

(==) :: GenExpr bnd var -> GenExpr bnd var -> Bool #

(/=) :: GenExpr bnd var -> GenExpr bnd var -> Bool #

(Read var, Read bnd) => Read (GenExpr bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenExpr bnd var) #

readList :: ReadS [GenExpr bnd var] #

readPrec :: ReadPrec (GenExpr bnd var) #

readListPrec :: ReadPrec [GenExpr bnd var] #

(Show var, Show bnd) => Show (GenExpr bnd var) Source # 

Methods

showsPrec :: Int -> GenExpr bnd var -> ShowS #

show :: GenExpr bnd var -> String #

showList :: [GenExpr bnd var] -> ShowS #

data GenAlt bnd var Source #

Case Alt

Constructors

Alt (GenAltCon bnd var) [var] (GenExpr bnd var) 

Instances

(Eq bnd, Eq var) => Eq (GenAlt bnd var) Source # 

Methods

(==) :: GenAlt bnd var -> GenAlt bnd var -> Bool #

(/=) :: GenAlt bnd var -> GenAlt bnd var -> Bool #

(Read bnd, Read var) => Read (GenAlt bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenAlt bnd var) #

readList :: ReadS [GenAlt bnd var] #

readPrec :: ReadPrec (GenAlt bnd var) #

readListPrec :: ReadPrec [GenAlt bnd var] #

(Show bnd, Show var) => Show (GenAlt bnd var) Source # 

Methods

showsPrec :: Int -> GenAlt bnd var -> ShowS #

show :: GenAlt bnd var -> String #

showList :: [GenAlt bnd var] -> ShowS #

data GenAltCon bnd var Source #

Alt Constructor

Constructors

DataAlt (GenDataCon bnd) 
LitAlt (GenLit bnd var) 
Default 

Instances

(Eq var, Eq bnd) => Eq (GenAltCon bnd var) Source # 

Methods

(==) :: GenAltCon bnd var -> GenAltCon bnd var -> Bool #

(/=) :: GenAltCon bnd var -> GenAltCon bnd var -> Bool #

(Read var, Read bnd) => Read (GenAltCon bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenAltCon bnd var) #

readList :: ReadS [GenAltCon bnd var] #

readPrec :: ReadPrec (GenAltCon bnd var) #

readListPrec :: ReadPrec [GenAltCon bnd var] #

(Show var, Show bnd) => Show (GenAltCon bnd var) Source # 

Methods

showsPrec :: Int -> GenAltCon bnd var -> ShowS #

show :: GenAltCon bnd var -> String #

showList :: [GenAltCon bnd var] -> ShowS #

data GenBinding bnd var Source #

Binding

Constructors

Binding RecForm [(var, GenBindRhs bnd var)] 

Instances

(Eq bnd, Eq var) => Eq (GenBinding bnd var) Source # 

Methods

(==) :: GenBinding bnd var -> GenBinding bnd var -> Bool #

(/=) :: GenBinding bnd var -> GenBinding bnd var -> Bool #

(Read bnd, Read var) => Read (GenBinding bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenBinding bnd var) #

readList :: ReadS [GenBinding bnd var] #

readPrec :: ReadPrec (GenBinding bnd var) #

readListPrec :: ReadPrec [GenBinding bnd var] #

(Show bnd, Show var) => Show (GenBinding bnd var) Source # 

Methods

showsPrec :: Int -> GenBinding bnd var -> ShowS #

show :: GenBinding bnd var -> String #

showList :: [GenBinding bnd var] -> ShowS #

data GenBindRhs bnd var Source #

Form of Bind Rhs

Constructors

ConForm (GenDataCon bnd) [GenAtom bnd var] 
FunForm [var] (GenExpr bnd var) 

Instances

(Eq var, Eq bnd) => Eq (GenBindRhs bnd var) Source # 

Methods

(==) :: GenBindRhs bnd var -> GenBindRhs bnd var -> Bool #

(/=) :: GenBindRhs bnd var -> GenBindRhs bnd var -> Bool #

(Read var, Read bnd) => Read (GenBindRhs bnd var) Source # 

Methods

readsPrec :: Int -> ReadS (GenBindRhs bnd var) #

readList :: ReadS [GenBindRhs bnd var] #

readPrec :: ReadPrec (GenBindRhs bnd var) #

readListPrec :: ReadPrec [GenBindRhs bnd var] #

(Show var, Show bnd) => Show (GenBindRhs bnd var) Source # 

Methods

showsPrec :: Int -> GenBindRhs bnd var -> ShowS #

show :: GenBindRhs bnd var -> String #

showList :: [GenBindRhs bnd var] -> ShowS #

data GenConTag bnd Source #

Data Constructor ID

Constructors

ConTag bnd Int 

Instances

Eq bnd => Eq (GenConTag bnd) Source # 

Methods

(==) :: GenConTag bnd -> GenConTag bnd -> Bool #

(/=) :: GenConTag bnd -> GenConTag bnd -> Bool #

Read bnd => Read (GenConTag bnd) Source # 
Show bnd => Show (GenConTag bnd) Source # 

Methods

showsPrec :: Int -> GenConTag bnd -> ShowS #

show :: GenConTag bnd -> String #

showList :: [GenConTag bnd] -> ShowS #

data GenDataCon bnd Source #

Data Constructor

Constructors

DataCon (GenConTag bnd) (GenType bnd) [GenType bnd] 

Instances

Eq bnd => Eq (GenDataCon bnd) Source # 

Methods

(==) :: GenDataCon bnd -> GenDataCon bnd -> Bool #

(/=) :: GenDataCon bnd -> GenDataCon bnd -> Bool #

Read bnd => Read (GenDataCon bnd) Source # 
Show bnd => Show (GenDataCon bnd) Source # 

Methods

showsPrec :: Int -> GenDataCon bnd -> ShowS #

show :: GenDataCon bnd -> String #

showList :: [GenDataCon bnd] -> ShowS #

data GenType bnd Source #

Type

Constructors

TyVarTy bnd (GenType bnd) 
AppTy (GenType bnd) (GenType bnd) 
ForAllTy (GenTyBinder bnd) (GenType bnd) 
CastTy (GenType bnd) (GenCoercion bnd) 
TyConApp (GenTyCon bnd) [GenType bnd] 
CoercionTy (GenCoercion bnd) 
LitTy TyLit 
FunTy (GenType bnd) (GenType bnd) 
Bottom 

Instances

Eq bnd => Eq (GenType bnd) Source # 

Methods

(==) :: GenType bnd -> GenType bnd -> Bool #

(/=) :: GenType bnd -> GenType bnd -> Bool #

Read bnd => Read (GenType bnd) Source # 
Show bnd => Show (GenType bnd) Source # 

Methods

showsPrec :: Int -> GenType bnd -> ShowS #

show :: GenType bnd -> String #

showList :: [GenType bnd] -> ShowS #

data GenTyBinder bnd Source #

TyBinder

Constructors

NamedTyBndr bnd (GenType bnd) 
AnonTyBndr (GenType bnd) 

Instances

Eq bnd => Eq (GenTyBinder bnd) Source # 

Methods

(==) :: GenTyBinder bnd -> GenTyBinder bnd -> Bool #

(/=) :: GenTyBinder bnd -> GenTyBinder bnd -> Bool #

Read bnd => Read (GenTyBinder bnd) Source # 
Show bnd => Show (GenTyBinder bnd) Source # 

Methods

showsPrec :: Int -> GenTyBinder bnd -> ShowS #

show :: GenTyBinder bnd -> String #

showList :: [GenTyBinder bnd] -> ShowS #

data GenCoercion bnd Source #

Coercion

Constructors

Coercion (GenType bnd) (GenType bnd) 

Instances

Eq bnd => Eq (GenCoercion bnd) Source # 

Methods

(==) :: GenCoercion bnd -> GenCoercion bnd -> Bool #

(/=) :: GenCoercion bnd -> GenCoercion bnd -> Bool #

Read bnd => Read (GenCoercion bnd) Source # 
Show bnd => Show (GenCoercion bnd) Source # 

Methods

showsPrec :: Int -> GenCoercion bnd -> ShowS #

show :: GenCoercion bnd -> String #

showList :: [GenCoercion bnd] -> ShowS #

data GenTyCon bnd Source #

TyCon

Constructors

FunTyCon bnd 
AlgTyCon bnd (GenAlgTyRhs bnd) 
SynonymTyCon bnd 
FamilyTyCon bnd 
PrimTyCon bnd 
Promoted bnd (GenDataCon bnd) 
TcTyCon bnd 

Instances

Eq bnd => Eq (GenTyCon bnd) Source # 

Methods

(==) :: GenTyCon bnd -> GenTyCon bnd -> Bool #

(/=) :: GenTyCon bnd -> GenTyCon bnd -> Bool #

Read bnd => Read (GenTyCon bnd) Source # 
Show bnd => Show (GenTyCon bnd) Source # 

Methods

showsPrec :: Int -> GenTyCon bnd -> ShowS #

show :: GenTyCon bnd -> String #

showList :: [GenTyCon bnd] -> ShowS #

data GenAlgTyRhs bnd Source #

Algebraic Type Constructor RHS

Instances

Eq bnd => Eq (GenAlgTyRhs bnd) Source # 

Methods

(==) :: GenAlgTyRhs bnd -> GenAlgTyRhs bnd -> Bool #

(/=) :: GenAlgTyRhs bnd -> GenAlgTyRhs bnd -> Bool #

Read bnd => Read (GenAlgTyRhs bnd) Source # 
Show bnd => Show (GenAlgTyRhs bnd) Source # 

Methods

showsPrec :: Int -> GenAlgTyRhs bnd -> ShowS #

show :: GenAlgTyRhs bnd -> String #

showList :: [GenAlgTyRhs bnd] -> ShowS #