public function visit(ISegmentVisitor $visitor) { foreach ($this->segments as $segment) { $segment->traverse($visitor); } }