private function mergeEvents($events)
{
$merged = array();
foreach ($events as $event) {
if ($event instanceof Event) {
$merged[$event->sequenceNumber()] = $event;
} else {
foreach ($event->allEvents() as $subEvent) {
$merged[$subEvent->sequenceNumber()] = $subEvent;
}
}
}
ksort($merged);
return array_values($merged);
}