public AbstractCellNode(AbstractFormula formula, Tuple <int, int> index, bool leftRelative, bool rightRelative) : base(formula)
 {
     CellIndex       = index;
     IsLeftRelative  = leftRelative;
     IsRightRelative = rightRelative;
 }
 public AbstractOrFuncNode(AbstractFormula formula, List <AbstractFormulaNode> children) : base(formula)
 {
     Children = children;
 }
 public AbstractPosNode(AbstractFormula formula, AbstractFormulaNode child) : base(formula)
 {
     Child = child;
 }
 public AbstractFunctionNode(AbstractFormula formula) : base(formula)
 {
 }
 public AbstractOrNode(AbstractFormula formula, AbstractFormulaNode child1, AbstractFormulaNode child2) : base(formula)
 {
     Children = new Tuple <AbstractFormulaNode, AbstractFormulaNode>(child1, child2);
 }
 public AbstractTypeNode(AbstractFormula formula, Types type) : base(formula)
 {
     Type = type;
 }
 public AbstractErrorNode(AbstractFormula formula, string text) : base(formula)
 {
     ErrorText = text;
     Logger.Debug("Created ErrorNode: " + text);
 }
 public AbstractOperatorNode(AbstractFormula formula) : base(formula)
 {
 }
 public AbstractIsnaFuncNode(AbstractFormula formula, AbstractFormulaNode child) : base(formula)
 {
     Child = child;
 }
 public AbstractIfFuncNode(AbstractFormula formula, AbstractFormulaNode child1, AbstractFormulaNode child2, AbstractFormulaNode child3) : base(formula)
 {
     Children = new Tuple <AbstractFormulaNode, AbstractFormulaNode, AbstractFormulaNode>(child1, child2, child3);
 }
 public AbstractFormulaNode(AbstractFormula formula)
 {
     ParentFormula = formula;
 }