datafix-0.0.0.2: Fixing data-flow problems

Copyright(c) Sebastian Graf 2018
LicenseISC
Maintainersgraf1337@gmail.com
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Datafix.ProblemBuilder

Description

Builds a DataFlowProblem for a Denotational formulation in terms of MonadDatafix. Effectively reduces descriptions from Datafix.Denotational to ones from Datafix.Explicit, so that solvers such as Datafix.Worklist only have to provide an interpreter for MonadDependency.

Synopsis

Documentation

data ProblemBuilder m a Source #

Constructs a build plan for a DataFlowProblem by tracking allocation of Nodes mapping to ChangeDetectors and transfer functions.

Instances

buildProblem :: forall m. MonadDependency m => Denotation (Domain m) -> (Node, Node, DataFlowProblem m) Source #

(root, max, dfp) = buildProblem builder executes the build plan specified by builder and returns the resulting DataFlowProblem dfp, as well as the root Node denoting the transfer function returned by the ProblemBuilder action and the maximum node of the problem as a proof for its denseness.