License | BSD-3-Clause |
---|---|
Maintainer | Jamie Willis |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Definitions for various encapsulating datatypes for machines, and defining free registers.
Since: 1.0.0.0
Synopsis
- data LetBinding o a x = LetBinding {}
- data Metadata
- data Regs (rs :: [Type]) where
- makeLetBinding :: Binding o a x -> Set SomeΣVar -> Metadata -> LetBinding o a x
- newMeta :: Metadata
- successInputCharacteristic :: Metadata -> InputCharacteristic
- failureInputCharacteristic :: Metadata -> InputCharacteristic
- type Binding o a x = Fix4 (Instr o) '[] One x a
Documentation
data LetBinding o a x Source #
Packages a binding along with its free registers that are required
for it, which are left existential. This is possible since the Regs
datatype serves as a singleton-style witness of the original registers
and their types. It also requires Metadata
to be provided, sourced
from analysis.
Since: 1.5.0.0
This is used to store useful static information that can be used to guide code generation.
See successInputCharacteristic
, and failureInputCharacteristic
.
Since: 1.5.0.0
data Regs (rs :: [Type]) where Source #
Represents a collection of free registers, preserving their type information as a heterogeneous list.
Since: 1.0.0.0
makeLetBinding :: Binding o a x -> Set SomeΣVar -> Metadata -> LetBinding o a x Source #
Given a Binding
, a set of existential ΣVar
s, and some Metadata
, produces a
LetBinding
instance.
Since: 1.5.0.0
Produces a new Metadata
object, with fields initialised to sensible conservative
defaults.
Since: 1.5.0.0
successInputCharacteristic :: Metadata -> InputCharacteristic Source #
Characterises the way that a binding consumes input on success.
Since: 1.5.0.0
failureInputCharacteristic :: Metadata -> InputCharacteristic Source #
Characterises the way that a binding consumes input on failure.
Since: 1.5.0.0