public function __construct(Providers\IQueryProvider $provider, Queries\ISourceInfo $sourceInfo, O\TraversalExpression $queryExpression = null, IIteratorScheme $scheme = null)
{
parent::__construct($provider);
$this->sourceInfo = $sourceInfo;
$this->expression = $queryExpression ?: O\Expression::value($this);
$this->scheme = $scheme ?: Iterators\SchemeProvider::getDefault();
}