language-Modula2-0.1: Parser, pretty-printer, and more for the Modula-2 programming language
Safe HaskellNone
LanguageHaskell2010

Language.Modula2.ConstantFolder

Description

The main export of this module is the function foldConstants that folds the constants in a Modula-2 AST using an attribute grammar. Other exports are helper functions and attribute types that can be reused for other languages or attribute grammars.

Synopsis

Documentation

foldConstants :: forall l. (Modula2 l, Nameable l, Ord (QualIdent l), Show (QualIdent l), Atts (Inherited (Auto ConstantFold)) (Block l l Sem Sem) ~ InhCF l, Atts (Inherited (Auto ConstantFold)) (Definition l l Sem Sem) ~ InhCF l, Atts (Inherited (Auto ConstantFold)) (Expression l l Sem Sem) ~ InhCF l, Atts (Synthesized (Auto ConstantFold)) (Block l l Sem Sem) ~ SynCFMod' l (Block l l), Atts (Synthesized (Auto ConstantFold)) (Block l l Placed Placed) ~ SynCFMod' l (Block l l), Atts (Synthesized (Auto ConstantFold)) (Definition l l Sem Sem) ~ SynCFMod' l (Definition l l), Atts (Synthesized (Auto ConstantFold)) (Definition l l Placed Placed) ~ SynCFMod' l (Definition l l), Atts (Synthesized (Auto ConstantFold)) (Expression l l Sem Sem) ~ SynCFExp l l, Atts (Synthesized (Auto ConstantFold)) (Expression l l Placed Placed) ~ SynCFExp l l, Functor (Auto ConstantFold) (Block l l), Functor (Auto ConstantFold) (Definition l l), Functor (Auto ConstantFold) (Expression l l)) => Environment l -> Module l l Placed Placed -> Module l l Placed Placed Source #

Fold the constants in the given collection of Modula-2 modules (a Map of modules keyed by module name). It uses the constant declarations from the modules as well as the given Environment of predefined constants and functions.

Note that the Modula-2 Language satisfies all constraints in the function's type signature.

data ConstantFold #

Instances

Instances details
(Ord (QualIdent l), v ~ Value l l Placed Placed) => SynthesizedField "designatorValue" (Maybe (Placed v)) (Auto ConstantFold) (Designator l l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Methods

synthesizedField :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Proxy "designatorValue" -> Auto ConstantFold -> Placed (Designator l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Designator l l sem sem) -> Designator l l sem (Synthesized (Auto ConstantFold)) -> Maybe (Placed v) #

(Nameable l, k ~ QualIdent l, v ~ Value l l Placed Placed, Ord k, Atts (Synthesized (Auto ConstantFold)) (Declaration l l Sem Sem) ~ SynCFMod' l (Declaration l l)) => SynthesizedField "moduleEnv" (Map k (Maybe v)) (Auto ConstantFold) (Block l l) Sem Placed Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Methods

synthesizedField :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Proxy "moduleEnv" -> Auto ConstantFold -> Placed (Block l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Block l l sem sem) -> Block l l sem (Synthesized (Auto ConstantFold)) -> Map k (Maybe v) #

(Nameable l, k ~ QualIdent l, v ~ Value l l Placed Placed, Ord k, Atts (Synthesized (Auto ConstantFold)) (Declaration l l Sem Sem) ~ SynCFMod' l (Declaration l l)) => SynthesizedField "moduleEnv" (Map k (Maybe v)) (Auto ConstantFold) (Block l l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Methods

synthesizedField :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Proxy "moduleEnv" -> Auto ConstantFold -> Placed (Block l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Block l l sem sem) -> Block l l sem (Synthesized (Auto ConstantFold)) -> Map k (Maybe v) #

(Nameable l, k ~ QualIdent l, v ~ Value l l Placed Placed, Ord k, Atts (Synthesized (Auto ConstantFold)) (ConstExpression l l Sem Sem) ~ SynCFExp l l) => SynthesizedField "moduleEnv" (Map k (Maybe v)) (Auto ConstantFold) (Declaration l l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Methods

synthesizedField :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Proxy "moduleEnv" -> Auto ConstantFold -> Placed (Declaration l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Declaration l l sem sem) -> Declaration l l sem (Synthesized (Auto ConstantFold)) -> Map k (Maybe v) #

(Modula2 l, Nameable l, k ~ QualIdent l, Ord k, v ~ Value l l Placed Placed, Export l ~ Export l, Value l ~ Value l, Atts (Synthesized (Auto ConstantFold)) (Declaration l l Sem Sem) ~ SynCFMod' l (Declaration l l), Atts (Synthesized (Auto ConstantFold)) (Type l l Sem Sem) ~ SynCF' (Type l l), Atts (Synthesized (Auto ConstantFold)) (ProcedureHeading l l Sem Sem) ~ SynCF' (ProcedureHeading l l), Atts (Synthesized (Auto ConstantFold)) (FormalParameters l l Sem Sem) ~ SynCF' (FormalParameters l l), Atts (Synthesized (Auto ConstantFold)) (Block l l Sem Sem) ~ SynCFMod' l (Block l l), Atts (Synthesized (Auto ConstantFold)) (ConstExpression l l Sem Sem) ~ SynCFExp l l) => SynthesizedField "moduleEnv" (Map k (Maybe v)) (Auto ConstantFold) (Declaration full l l) Sem Placed Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Methods

synthesizedField :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Proxy "moduleEnv" -> Auto ConstantFold -> Placed (Declaration full l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Declaration full l l sem sem) -> Declaration full l l sem (Synthesized (Auto ConstantFold)) -> Map k (Maybe v) #

Transformation (Auto ConstantFold) 
Instance details

Defined in Language.Oberon.ConstantFolder

Associated Types

type Domain (Auto ConstantFold) :: Type -> Type #

type Codomain (Auto ConstantFold) :: Type -> Type #

Ord (QualIdent l) => Bequether (Auto ConstantFold) (Modules l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Ord (QualIdent l) => Synthesizer (Auto ConstantFold) (Modules l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Methods

synthesis :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Auto ConstantFold -> Placed (Modules l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Modules l sem sem) -> Modules l sem (Synthesized (Auto ConstantFold)) -> Atts (Synthesized (Auto ConstantFold)) (Modules l sem sem) #

(Functor (Auto ConstantFold) (Declaration l l), At (Auto ConstantFold) (Declaration l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Declaration l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Expression l l), At (Auto ConstantFold) (Expression l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Expression l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Element l l), At (Auto ConstantFold) (Element l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Element l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

Functor (Auto ConstantFold) (Value l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Designator l l), At (Auto ConstantFold) (Designator l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Designator l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Type l l), At (Auto ConstantFold) (Type l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Type l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (FieldList l l), At (Auto ConstantFold) (FieldList l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (FieldList l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (ProcedureHeading l l), At (Auto ConstantFold) (ProcedureHeading l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (ProcedureHeading l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (FormalParameters l l), At (Auto ConstantFold) (FormalParameters l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (FormalParameters l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (FPSection l l), At (Auto ConstantFold) (FPSection l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (FPSection l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Block l l), At (Auto ConstantFold) (Block l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Block l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (StatementSequence l l), At (Auto ConstantFold) (StatementSequence l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (StatementSequence l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Statement l l), At (Auto ConstantFold) (Statement l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Statement l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (WithAlternative l l), At (Auto ConstantFold) (WithAlternative l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (WithAlternative l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Case l l), At (Auto ConstantFold) (Case l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Case l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (CaseLabels l l), At (Auto ConstantFold) (CaseLabels l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (CaseLabels l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (ConditionalBranch l l), At (Auto ConstantFold) (ConditionalBranch l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (ConditionalBranch l l) 
Instance details

Defined in Language.Oberon.ConstantFolder

(Functor (Auto ConstantFold) (Statement l l), At (Auto ConstantFold) (Statement l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Statement l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (ProcedureHeading l l), At (Auto ConstantFold) (ProcedureHeading l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (ProcedureHeading l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (Variant l l), At (Auto ConstantFold) (Variant l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Variant l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (FieldList l l), At (Auto ConstantFold) (FieldList l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (FieldList l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (Type l l), At (Auto ConstantFold) (Type l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Type l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (Designator l l), At (Auto ConstantFold) (Designator l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Designator l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (Expression l l), At (Auto ConstantFold) (Expression l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Expression l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (Statement l l), At (Auto ConstantFold) (Statement l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Statement l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

(Functor (Auto ConstantFold) (Block l l), At (Auto ConstantFold) (Block l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Block l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

(Functor (Auto ConstantFold) (Variant l l), At (Auto ConstantFold) (Variant l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Variant l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

(Functor (Auto ConstantFold) (Item l l), At (Auto ConstantFold) (Item l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Item l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

(Functor (Auto ConstantFold) (Expression l l), At (Auto ConstantFold) (Expression l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Expression l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

(Functor (Auto ConstantFold) (Type l l), At (Auto ConstantFold) (Type l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Type l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

(Functor (Auto ConstantFold) (AddressedIdent l l), At (Auto ConstantFold) (AddressedIdent l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (AddressedIdent l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

(Nameable l, Ord (QualIdent l), Atts (Synthesized (Auto ConstantFold)) (Declaration l l Sem Sem) ~ SynCFMod' l (Declaration l l), Atts (Inherited (Auto ConstantFold)) (StatementSequence l l Sem Sem) ~ InhCF l, Atts (Inherited (Auto ConstantFold)) (Declaration l l Sem Sem) ~ InhCF l) => Bequether (Auto ConstantFold) (Block l l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Methods

bequest :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Auto ConstantFold -> Placed (Block l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Block l l sem sem) -> Block l l sem (Synthesized (Auto ConstantFold)) -> Block l l sem (Inherited (Auto ConstantFold)) #

(Nameable l, Ord (QualIdent l), Atts (Synthesized (Auto ConstantFold)) (Declaration l l Sem Sem) ~ SynCFMod' l (Declaration l l), Atts (Inherited (Auto ConstantFold)) (StatementSequence l l Sem Sem) ~ InhCF l, Atts (Inherited (Auto ConstantFold)) (Declaration l l Sem Sem) ~ InhCF l) => Bequether (Auto ConstantFold) (Block l l) Sem Placed Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Methods

bequest :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Auto ConstantFold -> Placed (Block l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Block l l sem sem) -> Block l l sem (Synthesized (Auto ConstantFold)) -> Block l l sem (Inherited (Auto ConstantFold)) #

(Oberon l, Nameable l, Ord (QualIdent l), Show (QualIdent l), Atts (Synthesized (Auto ConstantFold)) (Block l l Sem Sem) ~ SynCFMod' l (Block l l)) => Synthesizer (Auto ConstantFold) (Module l l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Methods

synthesis :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Auto ConstantFold -> Placed (Module l l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Module l l sem sem) -> Module l l sem (Synthesized (Auto ConstantFold)) -> Atts (Synthesized (Auto ConstantFold)) (Module l l sem sem) #

(Oberon l, Nameable l, Ord (QualIdent l), Value l ~ Value l, InhCF l ~ InhCF λ, Pretty (Value λ λ Identity Identity), Atts (Synthesized (Auto ConstantFold)) (Expression l l Sem Sem) ~ SynCFExp l l, Atts (Synthesized (Auto ConstantFold)) (Element l l Sem Sem) ~ SynCF' (Element l l), Atts (Synthesized (Auto ConstantFold)) (Designator l l Sem Sem) ~ SynCFDesignator l) => Synthesizer (Auto ConstantFold) (Expression λ l) Sem Placed 
Instance details

Defined in Language.Oberon.ConstantFolder

Methods

synthesis :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Auto ConstantFold -> Placed (Expression λ l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Expression λ l sem sem) -> Expression λ l sem (Synthesized (Auto ConstantFold)) -> Atts (Synthesized (Auto ConstantFold)) (Expression λ l sem sem) #

(Nameable l, Ord (QualIdent l), QualIdent l ~ QualIdent l, Value l ~ Value l, λ ~ Language, Coercible (QualIdent Language) (QualIdent l), Coercible (Value Language Language) (Value l l), InhCF l ~ InhCF λ, Pretty (Value l l Identity Identity), Atts (Synthesized (Auto ConstantFold)) (Expression l l Sem Sem) ~ SynCFExp l l, Atts (Synthesized (Auto ConstantFold)) (Element l l Sem Sem) ~ SynCF' (Element l l), Atts (Synthesized (Auto ConstantFold)) (Item l l Sem Sem) ~ SynCF' (Item l l), Atts (Synthesized (Auto ConstantFold)) (Designator l l Sem Sem) ~ SynCFDesignator l) => Synthesizer (Auto ConstantFold) (Expression λ l) Sem Placed Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Methods

synthesis :: forall (sem :: Type -> Type). sem ~ Semantics (Auto ConstantFold) => Auto ConstantFold -> Placed (Expression λ l Sem Sem) -> Atts (Inherited (Auto ConstantFold)) (Expression λ l sem sem) -> Expression λ l sem (Synthesized (Auto ConstantFold)) -> Atts (Synthesized (Auto ConstantFold)) (Expression λ l sem sem) #

(Functor (Auto ConstantFold) (Declaration full l l), At (Auto ConstantFold) (Declaration full l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Declaration full l l) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

(Functor (Auto ConstantFold) (Declaration full l l), At (Auto ConstantFold) (Declaration full l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Declaration full l l) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Ord (QualIdent l) => At (Auto ConstantFold) (Modules l Sem Sem) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Module l l) Sem Placed => At (Auto ConstantFold) (Module l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Declaration l l) Sem Placed => At (Auto ConstantFold) (Declaration l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Expression l l) Sem Placed => At (Auto ConstantFold) (Expression l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Element l l) Sem Placed => At (Auto ConstantFold) (Element l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Designator l l) Sem Placed => At (Auto ConstantFold) (Designator l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Type l l) Sem Placed => At (Auto ConstantFold) (Type l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (FieldList l l) Sem Placed => At (Auto ConstantFold) (FieldList l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (ProcedureHeading l l) Sem Placed => At (Auto ConstantFold) (ProcedureHeading l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (FormalParameters l l) Sem Placed => At (Auto ConstantFold) (FormalParameters l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (FPSection l l) Sem Placed => At (Auto ConstantFold) (FPSection l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Block l l) Sem Placed => At (Auto ConstantFold) (Block l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (StatementSequence l l) Sem Placed => At (Auto ConstantFold) (StatementSequence l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Statement l l) Sem Placed => At (Auto ConstantFold) (Statement l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (WithAlternative l l) Sem Placed => At (Auto ConstantFold) (WithAlternative l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Case l l) Sem Placed => At (Auto ConstantFold) (Case l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (CaseLabels l l) Sem Placed => At (Auto ConstantFold) (CaseLabels l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (ConditionalBranch l l) Sem Placed => At (Auto ConstantFold) (ConditionalBranch l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) 
Instance details

Defined in Language.Oberon.ConstantFolder

Attribution (Auto ConstantFold) (Statement l l) Sem Placed => At (Auto ConstantFold) (Statement l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (ProcedureHeading l l) Sem Placed => At (Auto ConstantFold) (ProcedureHeading l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (Variant l l) Sem Placed => At (Auto ConstantFold) (Variant l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (FieldList l l) Sem Placed => At (Auto ConstantFold) (FieldList l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (Type l l) Sem Placed => At (Auto ConstantFold) (Type l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (Designator l l) Sem Placed => At (Auto ConstantFold) (Designator l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (Expression l l) Sem Placed => At (Auto ConstantFold) (Expression l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (Module l l) Sem Placed => At (Auto ConstantFold) (Module l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (Statement l l) Sem Placed => At (Auto ConstantFold) (Statement l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Attribution (Auto ConstantFold) (Block l l) Sem Placed => At (Auto ConstantFold) (Block l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Attribution (Auto ConstantFold) (Variant l l) Sem Placed => At (Auto ConstantFold) (Variant l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Attribution (Auto ConstantFold) (Item l l) Sem Placed => At (Auto ConstantFold) (Item l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Attribution (Auto ConstantFold) (Expression l l) Sem Placed => At (Auto ConstantFold) (Expression l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Attribution (Auto ConstantFold) (Type l l) Sem Placed => At (Auto ConstantFold) (Type l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Attribution (Auto ConstantFold) (AddressedIdent l l) Sem Placed => At (Auto ConstantFold) (AddressedIdent l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

Attribution (Auto ConstantFold) (Declaration full l l) Sem Placed => At (Auto ConstantFold) (Declaration full l l Sem Sem) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

Attribution (Auto ConstantFold) (Declaration full l l) Sem Placed => At (Auto ConstantFold) (Declaration full l l Sem Sem) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Codomain (Auto ConstantFold) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Domain (Auto ConstantFold) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Modules l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Modules l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Module l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Module l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (Declaration l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Declaration l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (Expression l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Expression l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (Element l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Element l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (Value l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Value l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (Designator l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Designator l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (Type l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Type l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (FieldList l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (FieldList l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (ProcedureHeading l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (FormalParameters l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (FPSection l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (FPSection l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (Block l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Block l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (StatementSequence l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Statement l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Statement l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (WithAlternative l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Case l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Case l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (CaseLabels l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (CaseLabels l l _1 _2) = InhCF l
type Atts (Inherited (Auto ConstantFold)) (ConditionalBranch l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Statement λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Statement λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (ProcedureHeading λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Variant λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Variant λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (FieldList λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (FieldList λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Type λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Type λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Designator λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Designator λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Expression λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Expression λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Module λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Module λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Statement λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Statement λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Block λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Block λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Variant λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Variant λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Item λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Item λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Expression λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Expression λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Type λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Type λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (AddressedIdent λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (AddressedIdent λ l _1 _2) = InhCF λ
type Atts (Synthesized (Auto ConstantFold)) (Module l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Module l l _1 _2) = SynCFMod' l (Module l l)
type Atts (Synthesized (Auto ConstantFold)) (Declaration l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Expression λ l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Expression λ l _1 _2) = SynCFExp λ l
type Atts (Synthesized (Auto ConstantFold)) (Element l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Element l l _1 _2) = SynCF' (Element l l)
type Atts (Synthesized (Auto ConstantFold)) (Value l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Value l l _1 _2) = SynCF' (Value l l)
type Atts (Synthesized (Auto ConstantFold)) (Designator l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Type l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Type l l _1 _2) = SynCF' (Type l l)
type Atts (Synthesized (Auto ConstantFold)) (FieldList l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (ProcedureHeading l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (FormalParameters l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (FPSection l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Block l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Block l l _1 _2) = SynCFMod' l (Block l l)
type Atts (Synthesized (Auto ConstantFold)) (StatementSequence l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Statement l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (WithAlternative l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Case l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Case l l _1 _2) = SynCF' (Case l l)
type Atts (Synthesized (Auto ConstantFold)) (CaseLabels l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (ConditionalBranch l l _1 _2) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Statement λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Statement λ l _1 _2) = SynCF' (Statement λ l)
type Atts (Synthesized (Auto ConstantFold)) (ProcedureHeading λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Variant λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Variant λ l _1 _2) = SynCF' (Variant λ l)
type Atts (Synthesized (Auto ConstantFold)) (FieldList λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (FieldList λ l _1 _2) = SynCF' (FieldList λ l)
type Atts (Synthesized (Auto ConstantFold)) (Type λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Type λ l _1 _2) = SynCF' (Type λ l)
type Atts (Synthesized (Auto ConstantFold)) (Designator λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Expression λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Expression λ l _1 _2) = SynCFExp λ l
type Atts (Synthesized (Auto ConstantFold)) (Module λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Module λ l _1 _2) = SynCFMod' l (Module λ l)
type Atts (Synthesized (Auto ConstantFold)) (Statement λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Block λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Block λ l _1 _2) = SynCFMod' l (Block l l)
type Atts (Synthesized (Auto ConstantFold)) (Variant λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Variant λ l _1 _2) = SynCF' (Variant l l)
type Atts (Synthesized (Auto ConstantFold)) (Item λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Item λ l _1 _2) = SynCF' (Item l l)
type Atts (Synthesized (Auto ConstantFold)) (Expression λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Expression λ l _1 _2) = SynCFExp λ l
type Atts (Synthesized (Auto ConstantFold)) (Type λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Type λ l _1 _2) = SynCF' (Type l l)
type Atts (Synthesized (Auto ConstantFold)) (AddressedIdent λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Declaration full λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Declaration full λ l _1 _2) = InhCF λ
type Atts (Inherited (Auto ConstantFold)) (Declaration full λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Inherited (Auto ConstantFold)) (Declaration full λ l _1 _2) = InhCF λ
type Atts (Synthesized (Auto ConstantFold)) (Declaration full λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Declaration full λ l _1 _2) = SynCFMod' l (Declaration full λ l)
type Atts (Synthesized (Auto ConstantFold)) (Declaration full λ l _1 _2) Source # 
Instance details

Defined in Language.Modula2.ISO.ConstantFolder

type Atts (Synthesized (Auto ConstantFold)) (Declaration full λ l _1 _2) = SynCFMod' l (Declaration full l l)

data InhCF l #

Instances

Instances details
Generic (InhCF l) 
Instance details

Defined in Language.Oberon.ConstantFolder

Associated Types

type Rep (InhCF l) :: Type -> Type #

Methods

from :: InhCF l -> Rep (InhCF l) x #

to :: Rep (InhCF l) x -> InhCF l #

type Rep (InhCF l) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Rep (InhCF l) = D1 ('MetaData "InhCF" "Language.Oberon.ConstantFolder" "language-oberon-0.3-9UwQStBT68GEv7WM30Tf5c" 'False) (C1 ('MetaCons "InhCF" 'PrefixI 'True) (S1 ('MetaSel ('Just "env") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Environment l)) :*: S1 ('MetaSel ('Just "currentModule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident)))

data SynCF a #

Constructors

SynCF 

Fields

Instances

Instances details
Generic (SynCF a) 
Instance details

Defined in Language.Oberon.ConstantFolder

Associated Types

type Rep (SynCF a) :: Type -> Type #

Methods

from :: SynCF a -> Rep (SynCF a) x #

to :: Rep (SynCF a) x -> SynCF a #

type Rep (SynCF a) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Rep (SynCF a) = D1 ('MetaData "SynCF" "Language.Oberon.ConstantFolder" "language-oberon-0.3-9UwQStBT68GEv7WM30Tf5c" 'False) (C1 ('MetaCons "SynCF" 'PrefixI 'True) (S1 ('MetaSel ('Just "folded") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Mapped Placed a))))

data SynCFDesignator l #

Instances

Instances details
Generic (SynCFDesignator l) 
Instance details

Defined in Language.Oberon.ConstantFolder

Associated Types

type Rep (SynCFDesignator l) :: Type -> Type #

type Rep (SynCFDesignator l) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Rep (SynCFDesignator l) = D1 ('MetaData "SynCFDesignator" "Language.Oberon.ConstantFolder" "language-oberon-0.3-9UwQStBT68GEv7WM30Tf5c" 'False) (C1 ('MetaCons "SynCFDesignator" 'PrefixI 'True) (S1 ('MetaSel ('Just "folded") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Mapped Placed (Designator l l Placed Placed))) :*: S1 ('MetaSel ('Just "designatorValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Placed (Value l l Placed Placed))))))

data SynCFExp λ l #

data SynCFMod l a #

Constructors

SynCFMod 

Instances

Instances details
Generic (SynCFMod l a) 
Instance details

Defined in Language.Oberon.ConstantFolder

Associated Types

type Rep (SynCFMod l a) :: Type -> Type #

Methods

from :: SynCFMod l a -> Rep (SynCFMod l a) x #

to :: Rep (SynCFMod l a) x -> SynCFMod l a #

type Rep (SynCFMod l a) 
Instance details

Defined in Language.Oberon.ConstantFolder

type Rep (SynCFMod l a) = D1 ('MetaData "SynCFMod" "Language.Oberon.ConstantFolder" "language-oberon-0.3-9UwQStBT68GEv7WM30Tf5c" 'False) (C1 ('MetaCons "SynCFMod" 'PrefixI 'True) (S1 ('MetaSel ('Just "moduleEnv") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Environment l)) :*: S1 ('MetaSel ('Just "folded") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Mapped Placed a))))

type SynCFMod' l (node :: (Type -> Type) -> (Type -> Type) -> Type) = SynCFMod l (node Placed Placed) #

foldBinaryArithmetic :: forall λ l f. (f ~ Placed, Value l ~ Value l, Wirthy λ, Pretty (Value l l Identity Identity)) => (Int, ParsedLexemes, Int) -> (f (Expression l l f f) -> f (Expression l l f f) -> Expression λ l f f) -> (forall n. Num n => n -> n -> n) -> SynCFExp l l -> SynCFExp l l -> SynCFExp λ l Source #

foldBinaryBoolean :: forall λ l f. (f ~ Placed, Value l ~ Value l, Wirthy λ, Pretty (Value l l Identity Identity)) => (Int, ParsedLexemes, Int) -> (f (Expression l l f f) -> f (Expression l l f f) -> Expression λ l f f) -> (Bool -> Bool -> Bool) -> SynCFExp l l -> SynCFExp l l -> SynCFExp λ l Source #

foldBinaryFractional :: forall λ l f. (f ~ Placed, Value l ~ Value l, Wirthy λ, Pretty (Value l l Identity Identity)) => (Int, ParsedLexemes, Int) -> (f (Expression l l f f) -> f (Expression l l f f) -> Expression λ l f f) -> (forall n. Fractional n => n -> n -> n) -> SynCFExp l l -> SynCFExp l l -> SynCFExp λ l Source #

foldBinaryInteger :: forall λ l f. (f ~ Placed, Value l ~ Value l, Wirthy λ, Pretty (Value l l Identity Identity)) => (Int, ParsedLexemes, Int) -> (f (Expression l l f f) -> f (Expression l l f f) -> Expression λ l f f) -> (forall n. Integral n => n -> n -> n) -> SynCFExp l l -> SynCFExp l l -> SynCFExp λ l Source #

Orphan instances

(Functor (Auto ConstantFold) (Statement l l), At (Auto ConstantFold) (Statement l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Statement l l) Source # 
Instance details

(Functor (Auto ConstantFold) (ProcedureHeading l l), At (Auto ConstantFold) (ProcedureHeading l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (ProcedureHeading l l) Source # 
Instance details

(Functor (Auto ConstantFold) (Variant l l), At (Auto ConstantFold) (Variant l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Variant l l) Source # 
Instance details

(Functor (Auto ConstantFold) (FieldList l l), At (Auto ConstantFold) (FieldList l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (FieldList l l) Source # 
Instance details

(Functor (Auto ConstantFold) (Type l l), At (Auto ConstantFold) (Type l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Type l l) Source # 
Instance details

(Functor (Auto ConstantFold) (Designator l l), At (Auto ConstantFold) (Designator l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Designator l l) Source # 
Instance details

(Functor (Auto ConstantFold) (Expression l l), At (Auto ConstantFold) (Expression l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Expression l l) Source # 
Instance details

(Functor (Auto ConstantFold) (Declaration full l l), At (Auto ConstantFold) (Declaration full l l (Codomain (Auto ConstantFold)) (Codomain (Auto ConstantFold)))) => Functor (Auto ConstantFold) (Declaration full l l) Source # 
Instance details

Attribution (Auto ConstantFold) (Statement l l) Sem Placed => At (Auto ConstantFold) (Statement l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (ProcedureHeading l l) Sem Placed => At (Auto ConstantFold) (ProcedureHeading l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (Variant l l) Sem Placed => At (Auto ConstantFold) (Variant l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (FieldList l l) Sem Placed => At (Auto ConstantFold) (FieldList l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (Type l l) Sem Placed => At (Auto ConstantFold) (Type l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (Designator l l) Sem Placed => At (Auto ConstantFold) (Designator l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (Expression l l) Sem Placed => At (Auto ConstantFold) (Expression l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (Module l l) Sem Placed => At (Auto ConstantFold) (Module l l (Semantics (Auto ConstantFold)) (Semantics (Auto ConstantFold))) Source # 
Instance details

Attribution (Auto ConstantFold) (Declaration full l l) Sem Placed => At (Auto ConstantFold) (Declaration full l l Sem Sem) Source # 
Instance details