axel-0.0.6: The Axel programming language.

Safe HaskellNone
LanguageHaskell2010

Axel.AST

Documentation

class ToHaskell a where Source #

Minimal complete definition

toHaskell

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 QualifiedImport Source # 
Instance details

Defined in Axel.AST

ToHaskell Pragma 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 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 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

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 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

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

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

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 LetBlock [(Expression, 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 #

Minimal complete definition

expr

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 #

Minimal complete definition

matches

Methods

matches :: Lens' s a Source #

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

Defined in Axel.AST

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

Minimal complete definition

constructors

Methods

constructors :: Lens' s a Source #

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

Minimal complete definition

arguments

Methods

arguments :: Lens' s a Source #

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

Minimal complete definition

function

Methods

function :: Lens' s a Source #

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

Minimal complete definition

body

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 #

Minimal complete definition

name

Methods

name :: Lens' s a Source #

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

Minimal complete definition

bindings

Methods

bindings :: Lens' s a Source #

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

Defined in Axel.AST

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

Minimal complete definition

pragmaSpecification

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

Minimal complete definition

alias

Methods

alias :: Lens' s a Source #

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

Minimal complete definition

imports

Methods

imports :: Lens' s a Source #

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

Minimal complete definition

moduleName

Methods

moduleName :: Lens' s a Source #

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

Minimal complete definition

statements

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 #

Minimal complete definition

constraints

Methods

constraints :: Lens' s a Source #

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

Minimal complete definition

signatures

Methods

signatures :: Lens' s a Source #

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

Minimal complete definition

definitions

Methods

definitions :: Lens' s a Source #

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

Minimal complete definition

instanceName

Methods

instanceName :: Lens' s a Source #

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

Minimal complete definition

definition

Methods

definition :: Lens' s a Source #