# Functions
Emulate returns a sequence of shadow subjects created by applying the events in the history of the given pair to the shadow of its subject.
Evaluate returns a sequence of all possible subjects that can be obtained by executing the given initialisation function and then applying events to the subject.
NewPair creates a new pair.
# Interfaces
Subject is an interface representing an entity that can walk through a history.