ecta-1.0.0.3
Safe HaskellNone
LanguageHaskell2010

Data.ECTA.Internal.ECTA.Operations

Synopsis

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.

crush :: forall m. Monoid m => (Node -> m) -> Node -> m Source #

onNormalNodes :: Monoid m => (Node -> m) -> Node -> m Source #

Unfolding

Size operations

Union

Membership

Intersection

Path operations

Reduction

Debugging

Orphan instances

Pathable Node Node Source # 
Instance details

Associated Types

type Emptyable Node Source #

Pathable [Node] Node Source # 
Instance details

Associated Types

type Emptyable Node Source #

Methods

getPath :: Path -> [Node] -> Emptyable Node Source #

getAllAtPath :: Path -> [Node] -> [Node] Source #

modifyAtPath :: (Node -> Node) -> Path -> [Node] -> [Node] Source #