xrs-0.1.0.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Lang.Lang

Documentation

type Var = String #

data Expr #

Instances

Instances details
Show Expr # 
Instance details

Defined in Lang.Lang

Methods

showsPrec :: Int -> Expr -> ShowS #

show :: Expr -> String #

showList :: [Expr] -> ShowS #

Eq Expr # 
Instance details

Defined in Lang.Lang

Methods

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

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

Latex Expr # 
Instance details

Defined in Lang.Lang

Methods

latex :: Expr -> String #

data BinOp #

Constructors

Add 
Mul 
Sub 
Div 
Eq 
LEq 
Lt 
Or 
And 
Gt 
GEq 
NEq 
Append 

Instances

Instances details
Show BinOp # 
Instance details

Defined in Lang.Lang

Methods

showsPrec :: Int -> BinOp -> ShowS #

show :: BinOp -> String #

showList :: [BinOp] -> ShowS #

Eq BinOp # 
Instance details

Defined in Lang.Lang

Methods

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

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

Latex BinOp # 
Instance details

Defined in Lang.Lang

Methods

latex :: BinOp -> String #

data Val #

Instances

Instances details
Show Val # 
Instance details

Defined in Lang.Lang

Methods

showsPrec :: Int -> Val -> ShowS #

show :: Val -> String #

showList :: [Val] -> ShowS #

Eq Val # 
Instance details

Defined in Lang.Lang

Methods

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

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

Ord Val # 
Instance details

Defined in Lang.Lang

Methods

compare :: Val -> Val -> Ordering #

(<) :: Val -> Val -> Bool #

(<=) :: Val -> Val -> Bool #

(>) :: Val -> Val -> Bool #

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

max :: Val -> Val -> Val #

min :: Val -> Val -> Val #

Latex Val # 
Instance details

Defined in Lang.Lang

Methods

latex :: Val -> String #

type ValueName = [Expr] #

pattern VClo :: Var -> Expr -> LocalEnv -> Val #

type LocalEnv = [(Var, Val)] #

type GlobalEnv = [(Var, Expr)] #

pattern Val :: Expr #

freeVars :: Expr -> [Var] #

treeMap :: (Expr -> Expr) -> Expr -> Expr #

treeMap' :: (Expr -> Expr -> Expr) -> Expr -> Expr #

(~>) :: Expr -> Expr -> Expr -> Expr #

substVar :: Var -> Expr -> Expr -> Expr #

(/~>) :: Var -> Expr -> Expr -> Expr #

embed :: Val -> Expr #