Safe Haskell | None |
---|---|
Language | Haskell98 |
Documentation
type Build alg = State (BuildState alg) Source
The DAG builder monad, abstracted over the algebra stored in the DAG. Internally, the monad detects sharing of subgraphs via hash consing.
runBuild :: Build alg r -> (AlgebraDag alg, r, NodeMap [Tag]) Source
Evaluate the monadic graph into an algebraic plan, given a loop relation.
tagM :: String -> Build alg AlgNode -> Build alg AlgNode Source
Tag a subtree with a comment (monadic version)
insert :: Operator alg => alg -> Build alg AlgNode Source
Insert a node into the graph construction environment, first check if the node already exists | if so return its id, otherwise insert it and return its id.
insertNoShare :: Operator alg => alg -> Build alg AlgNode Source