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

Safe HaskellNone
LanguageHaskell2010

Language.Syntactic.Interpretation.Semantics

Description

Default implementations of some interpretation functions

Synopsis

Documentation

data Semantics a where Source

A representation of a syntactic construct as a String and an evaluation function. It is not meant to be used as a syntactic symbol in an AST. Its only purpose is to provide the default implementations of functions like equal via the Semantic class.

Constructors

Sem :: String -> Denotation a -> Semantics a 

class Semantic expr where Source

Class of expressions that can be treated as constructs

Methods

semantics :: expr a -> Semantics a Source

equalDefault :: Semantic expr => expr a -> expr b -> Bool Source

Default implementation of equal

exprHashDefault :: Semantic expr => expr a -> Hash Source

Default implementation of exprHash

renderSymDefault :: Semantic expr => expr a -> String Source

Default implementation of renderSym

renderArgsDefault :: Semantic expr => [String] -> expr a -> String Source

Default implementation of renderArgs

evaluateDefault :: Semantic expr => expr a -> Denotation a Source

Default implementation of evaluate

semanticInstances :: Name -> DecsQ Source

Derive instances for Semantic related classes (Equality, Render, StringTree, Eval)