axel-0.0.9: The Axel programming language.

Safe HaskellNone
LanguageHaskell2010

Axel.AST

Documentation

class ToHaskell a where Source #

Methods

toHaskell :: a -> String Source #

Instances
ToHaskell Statement Source # 
Instance details

Defined in Axel.AST

ToHaskell Literal Source # 
Instance details

Defined in Axel.AST

ToHaskell Expression Source # 
Instance details

Defined in Axel.AST

ToHaskell TypeSynonym Source # 
Instance details

Defined in Axel.AST

ToHaskell TypeSignature Source # 
Instance details

Defined in Axel.AST

ToHaskell TypeclassInstance Source # 
Instance details

Defined in Axel.AST

ToHaskell TypeclassDefinition Source # 
Instance details

Defined in Axel.AST

ToHaskell RestrictedImport Source # 
Instance details

Defined in Axel.AST

ToHaskell RecordType Source # 
Instance details

Defined in Axel.AST

ToHaskell RecordDefinition Source # 
Instance details

Defined in Axel.AST

ToHaskell QualifiedImport Source # 
Instance details

Defined in Axel.AST

ToHaskell Pragma Source # 
Instance details

Defined in Axel.AST

ToHaskell MacroImport Source # 
Instance details

Defined in Axel.AST

ToHaskell MacroDefinition Source # 
Instance details

Defined in Axel.AST

ToHaskell LetBlock Source # 
Instance details

Defined in Axel.AST

ToHaskell Lambda Source # 
Instance details

Defined in Axel.AST

ToHaskell ImportSpecification Source # 
Instance details

Defined in Axel.AST

ToHaskell Import Source # 
Instance details

Defined in Axel.AST

ToHaskell FunctionDefinition Source # 
Instance details

Defined in Axel.AST

ToHaskell NewtypeDeclaration Source # 
Instance details

Defined in Axel.AST

ToHaskell DataDeclaration Source # 
Instance details

Defined in Axel.AST

ToHaskell TypeDefinition Source # 
Instance details

Defined in Axel.AST

ToHaskell TopLevel Source # 
Instance details

Defined in Axel.AST

ToHaskell IfBlock Source # 
Instance details

Defined in Axel.AST

ToHaskell FunctionApplication Source # 
Instance details

Defined in Axel.AST

ToHaskell CaseBlock Source # 
Instance details

Defined in Axel.AST

data CaseBlock Source #

Constructors

CaseBlock 
Instances
Eq CaseBlock Source # 
Instance details

Defined in Axel.AST

Show CaseBlock Source # 
Instance details

Defined in Axel.AST

ToHaskell CaseBlock Source # 
Instance details

Defined in Axel.AST

HasExpr CaseBlock Expression Source # 
Instance details

Defined in Axel.AST

HasMatches CaseBlock [(Expression, Expression)] Source # 
Instance details

Defined in Axel.AST

data IfBlock Source #

Constructors

IfBlock 
Instances
Eq IfBlock Source # 
Instance details

Defined in Axel.AST

Methods

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

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

Show IfBlock Source # 
Instance details

Defined in Axel.AST

ToHaskell IfBlock Source # 
Instance details

Defined in Axel.AST

HasIfTrue IfBlock Expression Source # 
Instance details

Defined in Axel.AST

HasIfFalse IfBlock Expression Source # 
Instance details

Defined in Axel.AST

HasCond IfBlock Expression Source # 
Instance details

Defined in Axel.AST

newtype TopLevel Source #

Constructors

TopLevel 

Fields

Instances
Eq TopLevel Source # 
Instance details

Defined in Axel.AST

Show TopLevel Source # 
Instance details

Defined in Axel.AST

ToHaskell TopLevel Source # 
Instance details

Defined in Axel.AST

HasStatements TopLevel [Statement] Source # 
Instance details

Defined in Axel.AST

data FunctionDefinition Source #

Instances
Eq FunctionDefinition Source # 
Instance details

Defined in Axel.AST

Show FunctionDefinition Source # 
Instance details

Defined in Axel.AST

ToHaskell FunctionDefinition Source # 
Instance details

Defined in Axel.AST

HasName FunctionDefinition Identifier Source # 
Instance details

Defined in Axel.AST

HasBody FunctionDefinition Expression Source # 
Instance details

Defined in Axel.AST

HasFunctionDefinition MacroDefinition FunctionDefinition Source # 
Instance details

Defined in Axel.AST

HasArguments FunctionDefinition [Expression] Source # 
Instance details

Defined in Axel.AST

HasWhereBindings FunctionDefinition [FunctionDefinition] Source # 
Instance details

Defined in Axel.AST

HasDefinitions TypeclassInstance [FunctionDefinition] Source # 
Instance details

Defined in Axel.AST

data Import Source #

Instances
Eq Import Source # 
Instance details

Defined in Axel.AST

Methods

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

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

Show Import Source # 
Instance details

Defined in Axel.AST

ToHaskell Import Source # 
Instance details

Defined in Axel.AST

data Lambda Source #

Constructors

Lambda 
Instances
Eq Lambda Source # 
Instance details

Defined in Axel.AST

Methods

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

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

Show Lambda Source # 
Instance details

Defined in Axel.AST

ToHaskell Lambda Source # 
Instance details

Defined in Axel.AST

HasBody Lambda Expression Source # 
Instance details

Defined in Axel.AST

HasArguments Lambda [Expression] Source # 
Instance details

Defined in Axel.AST

data LetBlock Source #

Constructors

LetBlock 
Instances
Eq LetBlock Source # 
Instance details

Defined in Axel.AST

Show LetBlock Source # 
Instance details

Defined in Axel.AST

ToHaskell LetBlock Source # 
Instance details

Defined in Axel.AST

HasBody LetBlock Expression Source # 
Instance details

Defined in Axel.AST

HasBindings LetBlock [(Expression, Expression)] Source # 
Instance details

Defined in Axel.AST

data MacroImport Source #

Constructors

MacroImport 
Instances
Eq MacroImport Source # 
Instance details

Defined in Axel.AST

Show MacroImport Source # 
Instance details

Defined in Axel.AST

ToHaskell MacroImport Source # 
Instance details

Defined in Axel.AST

HasModuleName MacroImport Identifier Source # 
Instance details

Defined in Axel.AST

HasImports MacroImport [Identifier] Source # 
Instance details

Defined in Axel.AST

newtype Pragma Source #

Constructors

Pragma 
Instances
Eq Pragma Source # 
Instance details

Defined in Axel.AST

Methods

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

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

Show Pragma Source # 
Instance details

Defined in Axel.AST

ToHaskell Pragma Source # 
Instance details

Defined in Axel.AST

HasPragmaSpecification Pragma String Source # 
Instance details

Defined in Axel.AST

newtype RecordType Source #

Constructors

RecordType 

Fields

Instances
Eq RecordType Source # 
Instance details

Defined in Axel.AST

Show RecordType Source # 
Instance details

Defined in Axel.AST

ToHaskell RecordType Source # 
Instance details

Defined in Axel.AST

HasFields RecordType [(Identifier, Expression)] Source # 
Instance details

Defined in Axel.AST

data TypeSynonym Source #

Constructors

TypeSynonym 
Instances
Eq TypeSynonym Source # 
Instance details

Defined in Axel.AST

Show TypeSynonym Source # 
Instance details

Defined in Axel.AST

ToHaskell TypeSynonym Source # 
Instance details

Defined in Axel.AST

HasAlias TypeSynonym Expression Source # 
Instance details

Defined in Axel.AST

HasDefinition TypeSynonym Expression Source # 
Instance details

Defined in Axel.AST

data Expression Source #

Instances
Eq Expression Source # 
Instance details

Defined in Axel.AST

Show Expression Source # 
Instance details

Defined in Axel.AST

Recursive Expression Source # 
Instance details

Defined in Axel.AST

ToHaskell Expression Source # 
Instance details

Defined in Axel.AST

HasExpr CaseBlock Expression Source # 
Instance details

Defined in Axel.AST

HasTypeDefinition TypeSignature Expression Source # 
Instance details

Defined in Axel.AST

HasFunction FunctionApplication Expression Source # 
Instance details

Defined in Axel.AST

HasName TypeclassDefinition Expression Source # 
Instance details

Defined in Axel.AST

HasBody LetBlock Expression Source # 
Instance details

Defined in Axel.AST

HasBody Lambda Expression Source # 
Instance details

Defined in Axel.AST

HasBody FunctionDefinition Expression Source # 
Instance details

Defined in Axel.AST

HasIfTrue IfBlock Expression Source # 
Instance details

Defined in Axel.AST

HasIfFalse IfBlock Expression Source # 
Instance details

Defined in Axel.AST

HasCond IfBlock Expression Source # 
Instance details

Defined in Axel.AST

HasAlias TypeSynonym Expression Source # 
Instance details

Defined in Axel.AST

HasInstanceName TypeclassInstance Expression Source # 
Instance details

Defined in Axel.AST

HasDefinition TypeSynonym Expression Source # 
Instance details

Defined in Axel.AST

HasMatches CaseBlock [(Expression, Expression)] Source # 
Instance details

Defined in Axel.AST

HasArguments Lambda [Expression] Source # 
Instance details

Defined in Axel.AST

HasArguments FunctionDefinition [Expression] Source # 
Instance details

Defined in Axel.AST

HasArguments FunctionApplication [Expression] Source # 
Instance details

Defined in Axel.AST

HasBindings RecordDefinition [(Identifier, Expression)] Source # 
Instance details

Defined in Axel.AST

HasBindings LetBlock [(Expression, Expression)] Source # 
Instance details

Defined in Axel.AST

HasFields RecordType [(Identifier, Expression)] Source # 
Instance details

Defined in Axel.AST

HasConstraints TypeclassDefinition [Expression] Source # 
Instance details

Defined in Axel.AST

data Literal Source #

Constructors

LChar Char 
LInt Int 
LString String 
Instances
Eq Literal Source # 
Instance details

Defined in Axel.AST

Methods

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

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

Show Literal Source # 
Instance details

Defined in Axel.AST

ToHaskell Literal Source # 
Instance details

Defined in Axel.AST

class HasExpr s a | s -> a where Source #

Methods

expr :: Lens' s a Source #

Instances
HasExpr CaseBlock Expression Source # 
Instance details

Defined in Axel.AST

class HasMatches s a | s -> a where Source #

Methods

matches :: Lens' s a Source #

Instances
HasMatches CaseBlock [(Expression, Expression)] Source # 
Instance details

Defined in Axel.AST

class HasFunction s a | s -> a where Source #

Methods

function :: Lens' s a Source #

class HasBody s a | s -> a where Source #

Methods

body :: Lens' s a Source #

Instances
HasBody LetBlock Expression Source # 
Instance details

Defined in Axel.AST

HasBody Lambda Expression Source # 
Instance details

Defined in Axel.AST

HasBody FunctionDefinition Expression Source # 
Instance details

Defined in Axel.AST

class HasName s a | s -> a where Source #

Methods

name :: Lens' s a Source #

class HasBindings s a | s -> a where Source #

Methods

bindings :: Lens' s a Source #

class HasCond s a | s -> a where Source #

Methods

cond :: Lens' s a Source #

Instances
HasCond IfBlock Expression Source # 
Instance details

Defined in Axel.AST

class HasIfFalse s a | s -> a where Source #

Methods

ifFalse :: Lens' s a Source #

Instances
HasIfFalse IfBlock Expression Source # 
Instance details

Defined in Axel.AST

class HasIfTrue s a | s -> a where Source #

Methods

ifTrue :: Lens' s a Source #

Instances
HasIfTrue IfBlock Expression Source # 
Instance details

Defined in Axel.AST

class HasPragmaSpecification s a | s -> a where Source #

class HasAlias s a | s -> a where Source #

Methods

alias :: Lens' s a Source #

class HasFields s a | s -> a where Source #

Methods

fields :: Lens' s a Source #

Instances
HasFields RecordType [(Identifier, Expression)] Source # 
Instance details

Defined in Axel.AST

class HasStatements s a | s -> a where Source #

Methods

statements :: Lens' s a Source #

Instances
HasStatements TopLevel [Statement] Source # 
Instance details

Defined in Axel.AST

class HasConstraints s a | s -> a where Source #

Methods

constraints :: Lens' s a Source #

class HasSignatures s a | s -> a where Source #

Methods

signatures :: Lens' s a Source #

class HasInstanceName s a | s -> a where Source #

Methods

instanceName :: Lens' s a Source #

class HasDefinition s a | s -> a where Source #

Methods

definition :: Lens' s a Source #