Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- pathsMatching :: (Node -> Bool) -> Node -> [Path]
- mapNodes :: (Node -> Node) -> Node -> Node
- crush :: forall m. Monoid m => (Node -> m) -> Node -> m
- onNormalNodes :: Monoid m => (Node -> m) -> Node -> m
- unfoldOuterRec :: Node -> Node
- refold :: Node -> Node
- nodeEdges :: Node -> [Edge]
- unfoldBounded :: Int -> Node -> Node
- nodeCount :: Node -> Int
- edgeCount :: Node -> Int
- maxIndegree :: Node -> Int
- union :: [Node] -> Node
- nodeRepresents :: Node -> Term -> Bool
- edgeRepresents :: Edge -> Term -> Bool
- intersect :: Node -> Node -> Node
- dropRedundantEdges :: [Edge] -> [Edge]
- intersectEdge :: Edge -> Edge -> Maybe Edge
- requirePath :: Path -> Node -> Node
- requirePathList :: Path -> [Node] -> [Node]
- withoutRedundantEdges :: Node -> Node
- reducePartially :: Node -> Node
- reduceEdgeIntersection :: EqConstraints -> Edge -> Edge
- reduceEqConstraints :: EqConstraints -> EqConstraints -> [Node] -> [Node]
- getSubnodeById :: Node -> Id -> Maybe Node
Traversal
pathsMatching :: (Node -> Bool) -> Node -> [Path] Source #
Warning: Linear in number of paths, exponential in size of graph. Only use for very small graphs.
mapNodes :: (Node -> Node) -> Node -> Node Source #
Precondition: For all i, f (Rec i) is either a Rec node meant to represent the enclosing Mu, or contains no Rec node not beneath another Mu.
Unfolding
unfoldOuterRec :: Node -> Node Source #
Size operations
maxIndegree :: Node -> Int Source #
Union
Membership
Intersection
dropRedundantEdges :: [Edge] -> [Edge] Source #
Path operations
Reduction
withoutRedundantEdges :: Node -> Node Source #
reducePartially :: Node -> Node Source #
reduceEdgeIntersection :: EqConstraints -> Edge -> Edge Source #
reduceEqConstraints :: EqConstraints -> EqConstraints -> [Node] -> [Node] Source #