code: @Override
      public IQTree liftIncompatibleDefinitions(Variable variable, ImmutableList<IQTree> children) {
          ImmutableList<IQTree> liftedChildren = children.stream()
                  .map(c -> c.liftIncompatibleDefinitions(variable))
                  .collect(ImmutableCollectors.toList());
          
          return iqFactory.createNaryIQTree(this, liftedChildren);
      }
docs: TODO: make it compatible definitions together (requires a VariableGenerator so as to lift bindings)