This module contains support for structural traces. Structural traces reflect the parallel composition of your program. Effectively, each process records its own local trace. Parallel traces are then merged as parallel compositions, and you end up with a big tree of sequentially and parallel-composed traces. Note that in this tracing style, unlike CSP and VCR, events are recorded by every process involved in them, not just once per occurrence.
- newtype StructuralTrace = StructuralTrace (ChannelLabels, Maybe (EventHierarchy RecordedIndivEvent))
- data EventHierarchy a
- runCHP_StructuralTrace :: CHP a -> IO (Maybe a, StructuralTrace)
- runCHP_StructuralTraceAndPrint :: CHP a -> IO ()
- getAllEventsInHierarchy :: EventHierarchy a -> [a]
A nested (or hierarchical) trace. The trace is an event hierarchy, wrapped in a Maybe type to allow for representation of the empty trace (Nothing).
A data type representing a hierarchy of events. The count on the StructuralSequence count is a replicator count for that list of sequential items.