// Returns an slice of events, starting with the root, and ending with the given (e).
// If the event has no "solid" root (points to an unknown event), history slice will
// be nil and ok will be false.
func (e *Event) GetHistory() (history []*Event, ok bool) {
...
}