diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index acac6b4e59fc1b88565b26cb7b60e54ae62a6ecf..ef52f44eb9e0823fbc2423aa3f3ec6614d5f4ec7 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -600,9 +600,9 @@ NumConstNode::computeXrefs([[maybe_unused]] EquationInfo &ei) const
 }
 
 expr_t
-NumConstNode::clone(DataTree &datatree) const
+NumConstNode::clone(DataTree &alt_datatree) const
 {
-  return datatree.AddNonNegativeConstant(datatree.num_constants.get(id));
+  return alt_datatree.AddNonNegativeConstant(datatree.num_constants.get(id));
 }
 
 int
@@ -1581,9 +1581,9 @@ VariableNode::get_type() const
 }
 
 expr_t
-VariableNode::clone(DataTree &datatree) const
+VariableNode::clone(DataTree &alt_datatree) const
 {
-  return datatree.AddVariable(symb_id, lag);
+  return alt_datatree.AddVariable(symb_id, lag);
 }
 
 int
@@ -3451,10 +3451,10 @@ UnaryOpNode::computeXrefs(EquationInfo &ei) const
 }
 
 expr_t
-UnaryOpNode::clone(DataTree &datatree) const
+UnaryOpNode::clone(DataTree &alt_datatree) const
 {
-  expr_t substarg = arg->clone(datatree);
-  return buildSimilarUnaryOpNode(substarg, datatree);
+  expr_t substarg = arg->clone(alt_datatree);
+  return buildSimilarUnaryOpNode(substarg, alt_datatree);
 }
 
 int
@@ -5212,11 +5212,11 @@ BinaryOpNode::computeXrefs(EquationInfo &ei) const
 }
 
 expr_t
-BinaryOpNode::clone(DataTree &datatree) const
+BinaryOpNode::clone(DataTree &alt_datatree) const
 {
-  expr_t substarg1 = arg1->clone(datatree);
-  expr_t substarg2 = arg2->clone(datatree);
-  return buildSimilarBinaryOpNode(substarg1, substarg2, datatree);
+  expr_t substarg1 = arg1->clone(alt_datatree);
+  expr_t substarg2 = arg2->clone(alt_datatree);
+  return buildSimilarBinaryOpNode(substarg1, substarg2, alt_datatree);
 }
 
 int
@@ -6527,12 +6527,12 @@ TrinaryOpNode::computeXrefs(EquationInfo &ei) const
 }
 
 expr_t
-TrinaryOpNode::clone(DataTree &datatree) const
+TrinaryOpNode::clone(DataTree &alt_datatree) const
 {
-  expr_t substarg1 = arg1->clone(datatree);
-  expr_t substarg2 = arg2->clone(datatree);
-  expr_t substarg3 = arg3->clone(datatree);
-  return buildSimilarTrinaryOpNode(substarg1, substarg2, substarg3, datatree);
+  expr_t substarg1 = arg1->clone(alt_datatree);
+  expr_t substarg2 = arg2->clone(alt_datatree);
+  expr_t substarg3 = arg3->clone(alt_datatree);
+  return buildSimilarTrinaryOpNode(substarg1, substarg2, substarg3, alt_datatree);
 }
 
 int
@@ -7479,12 +7479,12 @@ AbstractExternalFunctionNode::toStatic(DataTree &static_datatree) const
 }
 
 expr_t
-AbstractExternalFunctionNode::clone(DataTree &datatree) const
+AbstractExternalFunctionNode::clone(DataTree &alt_datatree) const
 {
   vector<expr_t> dynamic_arguments;
   for (auto argument : arguments)
-    dynamic_arguments.push_back(argument->clone(datatree));
-  return buildSimilarExternalFunctionNode(dynamic_arguments, datatree);
+    dynamic_arguments.push_back(argument->clone(alt_datatree));
+  return buildSimilarExternalFunctionNode(dynamic_arguments, alt_datatree);
 }
 
 expr_t
@@ -8813,9 +8813,9 @@ VarExpectationNode::VarExpectationNode(DataTree &datatree_arg,
 }
 
 expr_t
-VarExpectationNode::clone(DataTree &datatree) const
+VarExpectationNode::clone(DataTree &alt_datatree) const
 {
-  return datatree.AddVarExpectation(model_name);
+  return alt_datatree.AddVarExpectation(model_name);
 }
 
 
@@ -8914,9 +8914,9 @@ PacExpectationNode::PacExpectationNode(DataTree &datatree_arg,
 }
 
 expr_t
-PacExpectationNode::clone(DataTree &datatree) const
+PacExpectationNode::clone(DataTree &alt_datatree) const
 {
-  return datatree.AddPacExpectation(model_name);
+  return alt_datatree.AddPacExpectation(model_name);
 }
 
 void
@@ -9005,9 +9005,9 @@ PacTargetNonstationaryNode::PacTargetNonstationaryNode(DataTree &datatree_arg,
 }
 
 expr_t
-PacTargetNonstationaryNode::clone(DataTree &datatree) const
+PacTargetNonstationaryNode::clone(DataTree &alt_datatree) const
 {
-  return datatree.AddPacTargetNonstationary(model_name);
+  return alt_datatree.AddPacTargetNonstationary(model_name);
 }
 
 void
diff --git a/src/ExprNode.hh b/src/ExprNode.hh
index b35fa742a2b20a3384e11b22ac4454ea33d70d51..b811d3e55b5f2f62755f3849335fd49f4ec0f3d4 100644
--- a/src/ExprNode.hh
+++ b/src/ExprNode.hh
@@ -704,7 +704,7 @@ public:
   virtual optional<int> findTargetVariable(int lhs_symb_id) const = 0;
 
   //! Add ExprNodes to the provided datatree
-  virtual expr_t clone(DataTree &datatree) const = 0;
+  virtual expr_t clone(DataTree &alt_datatree) const = 0;
 
   //! Move a trend variable with lag/lead to time t by dividing/multiplying by its growth factor
   virtual expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const = 0;
@@ -908,7 +908,7 @@ public:
   bool isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const override;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -982,7 +982,7 @@ public:
   bool isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const override;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1089,7 +1089,7 @@ public:
   bool isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const override;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1199,7 +1199,7 @@ public:
   bool isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const override;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   //! Function to write out the oPowerNode in expr_t terms as opposed to writing out the function itself
   expr_t unpackPowerDeriv() const;
@@ -1337,7 +1337,7 @@ public:
   bool isVariableNodeEqualTo(SymbolType type_arg, int variable_id, int lag_arg) const override;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1453,7 +1453,7 @@ public:
   void writePrhs(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, const temporary_terms_idxs_t &temporary_terms_idxs, const deriv_node_temp_terms_t &tef_terms) const;
   expr_t replaceTrendVar() const override;
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   expr_t removeTrendLeadLag(const map<int, expr_t> &trend_symbols_map) const override;
   bool isInStaticForm() const override;
   expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
@@ -1647,7 +1647,7 @@ class VarExpectationNode : public SubModelNode
 public:
   VarExpectationNode(DataTree &datatree_arg, int idx_arg, string model_name_arg);
   void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, const temporary_terms_idxs_t &temporary_terms_idxs, const deriv_node_temp_terms_t &tef_terms) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   int maxLagWithDiffsExpanded() const override;
   expr_t substituteVarExpectation(const map<string, expr_t> &subst_table) const override;
   expr_t substitutePacExpectation(const string &name, expr_t subexpr) override;
@@ -1663,7 +1663,7 @@ class PacExpectationNode : public SubModelNode
 public:
   PacExpectationNode(DataTree &datatree_arg, int idx_arg, string model_name);
   void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, const temporary_terms_idxs_t &temporary_terms_idxs, const deriv_node_temp_terms_t &tef_terms) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   int maxLagWithDiffsExpanded() const override;
   expr_t substituteVarExpectation(const map<string, expr_t> &subst_table) const override;
   expr_t substitutePacExpectation(const string &name, expr_t subexpr) override;
@@ -1679,7 +1679,7 @@ class PacTargetNonstationaryNode : public SubModelNode
 public:
   PacTargetNonstationaryNode(DataTree &datatree_arg, int idx_arg, string model_name);
   void writeOutput(ostream &output, ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms, const temporary_terms_idxs_t &temporary_terms_idxs, const deriv_node_temp_terms_t &tef_terms) const override;
-  expr_t clone(DataTree &datatree) const override;
+  expr_t clone(DataTree &alt_datatree) const override;
   int maxLagWithDiffsExpanded() const override;
   expr_t substituteVarExpectation(const map<string, expr_t> &subst_table) const override;
   expr_t substitutePacExpectation(const string &name, expr_t subexpr) override;