protected function selfProjection($variableName = 'i')
{
return new Q\Functions\ElementProjection($this->parameter(), self::SCOPE_TYPE, self::SCOPE_NAMESPACE, [$this->parameter() => 'this'], [O\Expression::parameter($variableName)], [O\Expression::returnExpression(O\Expression::variable(O\Expression::value($variableName)))]);
}