syntactic-1.17: Generic abstract syntax, and utilities for embedded languages

Safe HaskellNone
LanguageHaskell2010

Language.Syntactic.Constructs.Construct

Description

Provides a simple way to make syntactic constructs for prototyping. Note that Construct is quite unsafe as it only uses String to distinguish between different constructs. Also, Construct has a very free type that allows any number of arguments.

Documentation

data Construct sig where Source #

Constructors

Construct :: String -> Denotation sig -> Construct sig 
Instances
Semantic Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Construct

StringTree Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Construct

Render Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Construct

Eval Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Construct

Equality Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Construct

Constrained Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Construct

Associated Types

type Sat Construct :: * -> Constraint Source #

EvalBind Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Binding

Methods

evalBindSym :: (EvalBind dom, ConstrainedBy dom Typeable, Typeable (DenResult sig)) => Construct sig -> Args (AST dom) sig -> Reader [(VarId, Dynamic)] (DenResult sig) Source #

Optimize Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Binding.Optimize

Methods

optimizeSym :: Optimize' dom => ConstFolder dom -> (Construct sig -> AST dom sig) -> Construct sig -> Args (AST dom) sig -> Writer (Set VarId) (ASTF dom (DenResult sig)) Source #

AlphaEq dom dom dom env => AlphaEq Construct Construct dom env Source # 
Instance details

Defined in Language.Syntactic.Constructs.Binding

Methods

alphaEqSym :: Construct a -> Args (AST dom) a -> Construct b -> Args (AST dom) b -> Reader env Bool Source #

type Sat Construct Source # 
Instance details

Defined in Language.Syntactic.Constructs.Construct