axel-0.0.9: The Axel programming language.

Safe HaskellNone
LanguageHaskell2010

Axel.AST

Documentation

class ToHaskell a where #

Methods

toHaskell :: a -> String #

Instances
ToHaskell Statement # 
Instance details

Defined in Axel.AST

ToHaskell Literal # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Literal -> String #

ToHaskell Expression # 
Instance details

Defined in Axel.AST

ToHaskell TypeSynonym # 
Instance details

Defined in Axel.AST

ToHaskell TypeSignature # 
Instance details

Defined in Axel.AST

ToHaskell TypeclassInstance # 
Instance details

Defined in Axel.AST

ToHaskell TypeclassDefinition # 
Instance details

Defined in Axel.AST

ToHaskell RestrictedImport # 
Instance details

Defined in Axel.AST

ToHaskell RecordType # 
Instance details

Defined in Axel.AST

ToHaskell RecordDefinition # 
Instance details

Defined in Axel.AST

ToHaskell QualifiedImport # 
Instance details

Defined in Axel.AST

ToHaskell Pragma # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Pragma -> String #

ToHaskell MacroImport # 
Instance details

Defined in Axel.AST

ToHaskell MacroDefinition # 
Instance details

Defined in Axel.AST

ToHaskell LetBlock # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: LetBlock -> String #

ToHaskell Lambda # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Lambda -> String #

ToHaskell ImportSpecification # 
Instance details

Defined in Axel.AST

ToHaskell Import # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Import -> String #

ToHaskell FunctionDefinition # 
Instance details

Defined in Axel.AST

ToHaskell NewtypeDeclaration # 
Instance details

Defined in Axel.AST

ToHaskell DataDeclaration # 
Instance details

Defined in Axel.AST

ToHaskell TypeDefinition # 
Instance details

Defined in Axel.AST

ToHaskell TopLevel # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: TopLevel -> String #

ToHaskell IfBlock # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: IfBlock -> String #

ToHaskell FunctionApplication # 
Instance details

Defined in Axel.AST

ToHaskell CaseBlock # 
Instance details

Defined in Axel.AST

data CaseBlock #

Constructors

CaseBlock 
Instances
Eq CaseBlock # 
Instance details

Defined in Axel.AST

Show CaseBlock # 
Instance details

Defined in Axel.AST

ToHaskell CaseBlock # 
Instance details

Defined in Axel.AST

HasExpr CaseBlock Expression # 
Instance details

Defined in Axel.AST

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

Defined in Axel.AST

data IfBlock #

Constructors

IfBlock 
Instances
Eq IfBlock # 
Instance details

Defined in Axel.AST

Methods

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

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

Show IfBlock # 
Instance details

Defined in Axel.AST

ToHaskell IfBlock # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: IfBlock -> String #

HasIfTrue IfBlock Expression # 
Instance details

Defined in Axel.AST

HasIfFalse IfBlock Expression # 
Instance details

Defined in Axel.AST

HasCond IfBlock Expression # 
Instance details

Defined in Axel.AST

newtype TopLevel #

Constructors

TopLevel 

Fields

Instances
Eq TopLevel # 
Instance details

Defined in Axel.AST

Show TopLevel # 
Instance details

Defined in Axel.AST

ToHaskell TopLevel # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: TopLevel -> String #

HasStatements TopLevel [Statement] # 
Instance details

Defined in Axel.AST

data FunctionDefinition #

data Import #

Instances
Eq Import # 
Instance details

Defined in Axel.AST

Methods

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

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

Show Import # 
Instance details

Defined in Axel.AST

ToHaskell Import # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Import -> String #

data Lambda #

Constructors

Lambda 
Instances
Eq Lambda # 
Instance details

Defined in Axel.AST

Methods

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

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

Show Lambda # 
Instance details

Defined in Axel.AST

ToHaskell Lambda # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Lambda -> String #

HasBody Lambda Expression # 
Instance details

Defined in Axel.AST

HasArguments Lambda [Expression] # 
Instance details

Defined in Axel.AST

data LetBlock #

Constructors

LetBlock 
Instances
Eq LetBlock # 
Instance details

Defined in Axel.AST

Show LetBlock # 
Instance details

Defined in Axel.AST

ToHaskell LetBlock # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: LetBlock -> String #

HasBody LetBlock Expression # 
Instance details

Defined in Axel.AST

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

Defined in Axel.AST

data MacroImport #

Constructors

MacroImport 
Instances
Eq MacroImport # 
Instance details

Defined in Axel.AST

Show MacroImport # 
Instance details

Defined in Axel.AST

ToHaskell MacroImport # 
Instance details

Defined in Axel.AST

HasModuleName MacroImport Identifier # 
Instance details

Defined in Axel.AST

HasImports MacroImport [Identifier] # 
Instance details

Defined in Axel.AST

newtype Pragma #

Constructors

Pragma 
Instances
Eq Pragma # 
Instance details

Defined in Axel.AST

Methods

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

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

Show Pragma # 
Instance details

Defined in Axel.AST

ToHaskell Pragma # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Pragma -> String #

HasPragmaSpecification Pragma String # 
Instance details

Defined in Axel.AST

newtype RecordType #

Constructors

RecordType 

Fields

Instances
Eq RecordType # 
Instance details

Defined in Axel.AST

Show RecordType # 
Instance details

Defined in Axel.AST

ToHaskell RecordType # 
Instance details

Defined in Axel.AST

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

Defined in Axel.AST

data TypeSynonym #

Constructors

TypeSynonym 
Instances
Eq TypeSynonym # 
Instance details

Defined in Axel.AST

Show TypeSynonym # 
Instance details

Defined in Axel.AST

ToHaskell TypeSynonym # 
Instance details

Defined in Axel.AST

HasAlias TypeSynonym Expression # 
Instance details

Defined in Axel.AST

HasDefinition TypeSynonym Expression # 
Instance details

Defined in Axel.AST

data Expression #

Instances
Eq Expression # 
Instance details

Defined in Axel.AST

Show Expression # 
Instance details

Defined in Axel.AST

Recursive Expression # 
Instance details

Defined in Axel.AST

ToHaskell Expression # 
Instance details

Defined in Axel.AST

HasExpr CaseBlock Expression # 
Instance details

Defined in Axel.AST

HasTypeDefinition TypeSignature Expression # 
Instance details

Defined in Axel.AST

HasFunction FunctionApplication Expression # 
Instance details

Defined in Axel.AST

HasName TypeclassDefinition Expression # 
Instance details

Defined in Axel.AST

HasBody LetBlock Expression # 
Instance details

Defined in Axel.AST

HasBody Lambda Expression # 
Instance details

Defined in Axel.AST

HasBody FunctionDefinition Expression # 
Instance details

Defined in Axel.AST

HasIfTrue IfBlock Expression # 
Instance details

Defined in Axel.AST

HasIfFalse IfBlock Expression # 
Instance details

Defined in Axel.AST

HasCond IfBlock Expression # 
Instance details

Defined in Axel.AST

HasAlias TypeSynonym Expression # 
Instance details

Defined in Axel.AST

HasInstanceName TypeclassInstance Expression # 
Instance details

Defined in Axel.AST

HasDefinition TypeSynonym Expression # 
Instance details

Defined in Axel.AST

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

Defined in Axel.AST

HasArguments Lambda [Expression] # 
Instance details

Defined in Axel.AST

HasArguments FunctionDefinition [Expression] # 
Instance details

Defined in Axel.AST

HasArguments FunctionApplication [Expression] # 
Instance details

Defined in Axel.AST

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

Defined in Axel.AST

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

Defined in Axel.AST

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

Defined in Axel.AST

HasConstraints TypeclassDefinition [Expression] # 
Instance details

Defined in Axel.AST

data Literal #

Constructors

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

Defined in Axel.AST

Methods

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

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

Show Literal # 
Instance details

Defined in Axel.AST

ToHaskell Literal # 
Instance details

Defined in Axel.AST

Methods

toHaskell :: Literal -> String #

class HasExpr s a | s -> a where #

Methods

expr :: Lens' s a #

Instances
HasExpr CaseBlock Expression # 
Instance details

Defined in Axel.AST

class HasMatches s a | s -> a where #

Methods

matches :: Lens' s a #

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

Defined in Axel.AST

class HasConstructors s a | s -> a where #

Methods

constructors :: Lens' s a #

class HasArguments s a | s -> a where #

Methods

arguments :: Lens' s a #

class HasFunction s a | s -> a where #

Methods

function :: Lens' s a #

class HasBody s a | s -> a where #

Methods

body :: Lens' s a #

Instances
HasBody LetBlock Expression # 
Instance details

Defined in Axel.AST

HasBody Lambda Expression # 
Instance details

Defined in Axel.AST

HasBody FunctionDefinition Expression # 
Instance details

Defined in Axel.AST

class HasName s a | s -> a where #

Methods

name :: Lens' s a #

class HasWhereBindings s a | s -> a where #

Methods

whereBindings :: Lens' s a #

class HasBindings s a | s -> a where #

Methods

bindings :: Lens' s a #

class HasCond s a | s -> a where #

Methods

cond :: Lens' s a #

Instances
HasCond IfBlock Expression # 
Instance details

Defined in Axel.AST

class HasIfFalse s a | s -> a where #

Methods

ifFalse :: Lens' s a #

Instances
HasIfFalse IfBlock Expression # 
Instance details

Defined in Axel.AST

class HasIfTrue s a | s -> a where #

Methods

ifTrue :: Lens' s a #

Instances
HasIfTrue IfBlock Expression # 
Instance details

Defined in Axel.AST

class HasModuleName s a | s -> a where #

Methods

moduleName :: Lens' s a #

class HasConstructor s a | s -> a where #

Methods

constructor :: Lens' s a #

class HasPragmaSpecification s a | s -> a where #

Instances
HasPragmaSpecification Pragma String # 
Instance details

Defined in Axel.AST

class HasAlias s a | s -> a where #

Methods

alias :: Lens' s a #

Instances
HasAlias TypeSynonym Expression # 
Instance details

Defined in Axel.AST

HasAlias QualifiedImport Identifier # 
Instance details

Defined in Axel.AST

class HasFields s a | s -> a where #

Methods

fields :: Lens' s a #

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

Defined in Axel.AST

class HasStatements s a | s -> a where #

Methods

statements :: Lens' s a #

Instances
HasStatements TopLevel [Statement] # 
Instance details

Defined in Axel.AST

class HasConstraints s a | s -> a where #

Methods

constraints :: Lens' s a #

class HasSignatures s a | s -> a where #

Methods

signatures :: Lens' s a #

class HasDefinitions s a | s -> a where #

Methods

definitions :: Lens' s a #

class HasInstanceName s a | s -> a where #

Methods

instanceName :: Lens' s a #

class HasDefinition s a | s -> a where #

Methods

definition :: Lens' s a #

Instances
HasDefinition TypeSynonym Expression # 
Instance details

Defined in Axel.AST