code: @Override
      public IQTree liftBinding(IQTree child, VariableGenerator variableGenerator, IQProperties currentIQProperties) {
          IQTree newChild = child.liftBinding(variableGenerator);
          QueryNode newChildRoot = newChild.getRootNode();
  
          if (newChildRoot instanceof SliceNode)
              return liftSliceChild((SliceNode) newChildRoot, newChild, currentIQProperties);
          else if (newChildRoot instanceof EmptyNode)
              return newChild;
          else
              return iqFactory.createUnaryIQTree(this, newChild, currentIQProperties.declareLifted());
      }
docs: Blocks substitutions