There are a number of special Tie extensions implemented within Haystack, the most important of which is tie.Causal. The class tie.Causal does not implement any additonal functionality, but we are interested in its use for the sake of the implicit information it provides in its type.
The use of tie.Causal is fairly simple. If a Straw
A was created because of a Straw B, then we connect the two
(starting at A) with a tie.Causal. For example, if we have a
needle.Location that points at some file somewhere, and we
retrieve the file and create a needle.Body to hold the bits,
we draw a tie.Causal connection between needle.Body
and needle.Location. This shows that the text exists because
of the needle.Location. More examples of this are
illustrated in Figure .