# Functions
Execute returns a sequence of subjects that can be reached by applying events from the history to the subjects, where the history is updated by adding events to the history, and the subjects are updated by applying events to the subjects.
NewHistory creates a new history.
NewPair creates a new pair from the given history and subject.
# Variables
HistoryEnded is returned when the history has ended.
SubjectHasError is returned when the subject has an error.
SubjectIsDone is returned when the subject is done.
# Interfaces
Subjecter is an interface for a subject.