Safe Haskell | None |
---|---|
Language | Haskell2010 |
Builing blocks for the translation stage of the compiler.
Synopsis
- newtype Promise = Promise Value
- data Value
- data Function
- = Unresolved Identifier
- | Subroutine Procedure Step
- | Primitive Procedure (Step -> IO Value)
- functionName :: Function -> Identifier
- newtype Name = Name Rope
- data Step
Documentation
The resolved value of eiter a literal or function applicaiton, either as that literal, the expression, or as the result of waiting on the variable it was assigned to.
Need names? Science names newly discovered creatures in Latin. I don't speak Latin, but neither does anyone else so we can just make words up. Yeay! (The lengths some people will go to in order to avoid qualified imports is really impressive, isn't it?)
The internal representation of a Procedure, with ambiguities resolved.
We landed on Subroutine as the name of translated user-defined Procedure.
Procedures which are actually fundamental [in the context of the domain specific language] represented by builtin IO actions which we call Primatives.
The first constructor, Unresolved, is for the first stage pass through the translate phase when we are still accumulating definitions, thereby allowing for the forward use of not-yet-defiend procedures that will be encountered in the same scope.
functionName :: Function -> Identifier Source #
Names. Always needing names. These ones are from original work when we envisioned technique as a shallow embedding of a domain specific language implemented in Haskell. Comments describing constructors are taken from a suggestion by Oleg Kiselyov on page 23 of his course "Typed Tagless Final Interpreters" that the constructors of a simply typed lambda calculus in this style could be considered a "minimal intuitionistic logic" which is absolutely fabulous.
Known Offset Value | |
Bench Offset [(Label, Step)] | |
Depends Offset Name | |
NoOp | |
Tuple Offset [Step] | |
Asynchronous Offset [Name] Step | |
Invocation Offset Attribute Function Step | |
Nested Offset (DList Step) |