| License | BSD-3-Clause | 
|---|---|
| Maintainer | Jamie Willis | 
| Stability | experimental | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
Parsley.Internal.Backend.Machine.LetBindings
Description
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 ΣVars, 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