diff --git a/src/CodeInterpreter.hh b/src/CodeInterpreter.hh
index 7fdaace4afeb2aabb98ca70fd8d23e19b74873fe..68c1ed5d8abe6994bcdbd83852bcb3e673e3b7d6 100644
--- a/src/CodeInterpreter.hh
+++ b/src/CodeInterpreter.hh
@@ -1677,7 +1677,7 @@ public:
 };
 
 #ifdef BYTE_CODE
-typedef vector<pair<Tags, void * > > tags_liste_t;
+typedef vector<pair<Tags, void * >> tags_liste_t;
 class CodeLoad
 {
 private:
diff --git a/src/ComputingTasks.cc b/src/ComputingTasks.cc
index 5980658be5a39055008bb2961ca992e896397abc..73a3f158729300ee62ab0fc0546a0dd31af1b442 100644
--- a/src/ComputingTasks.cc
+++ b/src/ComputingTasks.cc
@@ -374,7 +374,7 @@ PacModelStatement::writeJsonOutput(ostream &output) const
 }
 
 void
-PacModelStatement::getPacModelInfoForPacExpectation(pair<string, pair<string, pair<string, pair<int, map<string, int> > > > > &pac_model_info) const
+PacModelStatement::getPacModelInfoForPacExpectation(pair<string, pair<string, pair<string, pair<int, map<string, int>>>>> &pac_model_info) const
 {
   int growth_symb_id = -1;
   if (!growth.empty())
@@ -395,8 +395,8 @@ VarModelStatement::VarModelStatement(SymbolList symbol_list_arg,
 
 void
 VarModelStatement::getVarModelInfo(string &var_model_name,
-                                   map<string, pair<SymbolList, int> > &var_model_info,
-                                   map<string, vector<string> > &var_model_eqtags) const
+                                   map<string, pair<SymbolList, int>> &var_model_info,
+                                   map<string, vector<string>> &var_model_eqtags) const
 {
   var_model_name = name;
   if (symbol_list.empty())
@@ -413,7 +413,7 @@ VarModelStatement::getVarModelInfo(string &var_model_name,
 
 void
 VarModelStatement::fillVarModelInfoFromEquations(vector<int> &eqnumber_arg, vector<int> &lhs_arg,
-                                                 vector<set<pair<int, int> > > &rhs_arg,
+                                                 vector<set<pair<int, int>>> &rhs_arg,
                                                  vector<bool> &nonstationary_arg,
                                                  vector<bool> &diff_arg,
                                                  vector<int> &orig_diff_var_arg,
@@ -524,7 +524,7 @@ VarModelStatement::writeOutput(ostream &output, const string &basename, bool min
 }
 
 void
-VarModelStatement::createVarModelMFunction(ostream &output, const map<string, set<int> > &var_expectation_functions_to_write) const
+VarModelStatement::createVarModelMFunction(ostream &output, const map<string, set<int>> &var_expectation_functions_to_write) const
 {
   if (var_expectation_functions_to_write.find(name) == var_expectation_functions_to_write.end())
     return;
@@ -571,12 +571,12 @@ VarEstimationStatement::writeOutput(ostream &output, const string &basename, boo
 }
 
 VarRestrictionsStatement::VarRestrictionsStatement(const string &var_model_name_arg,
-                                                   const map<string, vector<string> > &var_map_arg,
-                                                   map<int, map<int, SymbolList> > exclusion_restrictions_arg,
+                                                   const map<string, vector<string>> &var_map_arg,
+                                                   map<int, map<int, SymbolList>> exclusion_restrictions_arg,
                                                    equation_restrictions_t equation_restrictions_arg,
                                                    crossequation_restrictions_t crossequation_restrictions_arg,
                                                    map<pair<int, int>, double> covariance_number_restriction_arg,
-                                                   map<pair<int, int>, pair<int, int> > covariance_pair_restriction_arg,
+                                                   map<pair<int, int>, pair<int, int>> covariance_pair_restriction_arg,
                                                    const SymbolTable &symbol_table_arg) :
   var_model_name(var_model_name_arg),
   var_map(var_map_arg),
@@ -1472,7 +1472,7 @@ EstimatedParamsStatement::checkPass(ModFileStructure &mod_file_struct, WarningCo
 
   // Check that no parameter/endogenous is declared twice in the block
   set<string> already_declared;
-  set<pair<string, string> > already_declared_corr;
+  set<pair<string, string>> already_declared_corr;
   for (const auto & it : estim_params_list)
     {
       if (it.type == 3) // Correlation
@@ -4950,7 +4950,7 @@ SMMEstimationStatement::writeJsonOutput(ostream &output) const
 
 GenerateIRFsStatement::GenerateIRFsStatement(OptionsList options_list_arg,
                                              vector<string> generate_irf_names_arg,
-                                             vector<map<string, double> > generate_irf_elements_arg) :
+                                             vector<map<string, double>> generate_irf_elements_arg) :
   options_list(move(options_list_arg)),
   generate_irf_names(move(generate_irf_names_arg)),
   generate_irf_elements(move(generate_irf_elements_arg))
diff --git a/src/ComputingTasks.hh b/src/ComputingTasks.hh
index 554e0b5be6d4bacde2211b11dfde032a634ac2b2..d03f5a2ce00390580b4240abf483e028a87658a0 100644
--- a/src/ComputingTasks.hh
+++ b/src/ComputingTasks.hh
@@ -140,7 +140,7 @@ public:
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
   void writeJsonOutput(ostream &output) const override;
   void fillUndiffedLHS(vector<int> &lhs);
-  void getPacModelInfoForPacExpectation(pair<string, pair<string, pair<string, pair<int, map<string, int> > > > > &pac_model_info) const;
+  void getPacModelInfoForPacExpectation(pair<string, pair<string, pair<string, pair<int, map<string, int>>>>> &pac_model_info) const;
 };
 
 class VarModelStatement : public Statement
@@ -151,7 +151,7 @@ private:
   const string &name;
   const SymbolTable &symbol_table;
   vector<int> eqnumber, lhs, orig_diff_var;
-  vector<set<pair<int, int> > > rhs_by_eq; // rhs by equation
+  vector<set<pair<int, int>>> rhs_by_eq; // rhs by equation
   vector<bool> nonstationary, diff;
   int max_lag;
 public:
@@ -160,41 +160,41 @@ public:
                     const string &name_arg,
                     const SymbolTable &symbol_table_arg);
   void getVarModelInfo(string &var_model_name,
-                       map<string, pair<SymbolList, int> > &var_model_info,
-                       map<string, vector<string> > &var_model_eqtags) const;
+                       map<string, pair<SymbolList, int>> &var_model_info,
+                       map<string, vector<string>> &var_model_eqtags) const;
   void fillVarModelInfoFromEquations(vector<int> &eqnumber_arg, vector<int> &lhs_arg,
-                                     vector<set<pair<int, int> > > &rhs_arg,
+                                     vector<set<pair<int, int>>> &rhs_arg,
                                      vector<bool> &nonstationary_arg,
                                      vector<bool> &diff_arg, vector<int> &orig_diff_var_arg,
                                      int max_lag_arg);
   void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings) override;
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void createVarModelMFunction(ostream &output, const map<string, set<int> > &var_expectation_functions_to_write) const;
+  void createVarModelMFunction(ostream &output, const map<string, set<int>> &var_expectation_functions_to_write) const;
 };
 
 class VarRestrictionsStatement : public Statement
 {
 private:
-  typedef pair<pair<int, pair<int, int> >, expr_t> var_restriction_eq_crosseq_t;
+  typedef pair<pair<int, pair<int, int>>, expr_t> var_restriction_eq_crosseq_t;
   const string &var_model_name;
-  const map<string, vector<string> > &var_map;
-  const map<int, map<int, SymbolList> > exclusion_restrictions;
-  typedef map<int, pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double> > equation_restrictions_t;
+  const map<string, vector<string>> &var_map;
+  const map<int, map<int, SymbolList>> exclusion_restrictions;
+  typedef map<int, pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double>> equation_restrictions_t;
   const equation_restrictions_t equation_restrictions;
-  typedef vector<pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double> > crossequation_restrictions_t;
+  typedef vector<pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double>> crossequation_restrictions_t;
   const crossequation_restrictions_t crossequation_restrictions;
   const map<pair<int, int>, double> covariance_number_restriction;
-  const map<pair<int, int>, pair<int, int> > covariance_pair_restriction;
+  const map<pair<int, int>, pair<int, int>> covariance_pair_restriction;
   const SymbolTable &symbol_table;
   int findIdxInVector(const vector<string> &vecvars, const string &var) const;
 public:
   VarRestrictionsStatement(const string &var_model_name_arg,
-                           const map<string, vector<string> > &var_map_arg,
-                           map<int, map<int, SymbolList> > exclusion_restrictions_arg,
+                           const map<string, vector<string>> &var_map_arg,
+                           map<int, map<int, SymbolList>> exclusion_restrictions_arg,
                            equation_restrictions_t equation_restrictions_arg,
                            crossequation_restrictions_t crossequation_restrictions_arg,
                            map<pair<int, int>, double> covariance_number_restriction_arg,
-                           map<pair<int, int>, pair<int, int> > covariance_pair_restriction_arg,
+                           map<pair<int, int>, pair<int, int>> covariance_pair_restriction_arg,
                            const SymbolTable &symbol_table_arg);
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
 };
@@ -437,7 +437,7 @@ public:
 class ModelComparisonStatement : public Statement
 {
 public:
-  typedef vector<pair<string, string> > filename_list_t;
+  typedef vector<pair<string, string>> filename_list_t;
 private:
   filename_list_t filename_list;
   OptionsList options_list;
@@ -820,7 +820,7 @@ public:
 class SvarIdentificationStatement : public Statement
 {
 public:
-  //  typedef map<pair<int, int>, vector<int> > svar_identification_exclusion_t;
+  //  typedef map<pair<int, int>, vector<int>> svar_identification_exclusion_t;
   struct svar_identification_restriction
   {
     int equation;
@@ -906,7 +906,7 @@ class SubsamplesStatement : public Statement
 {
 public:
   //! Storage for declaring subsamples: map<subsample_name, <date1, date2 >
-  typedef map<string, pair<string, string> > subsample_declaration_map_t;
+  typedef map<string, pair<string, string>> subsample_declaration_map_t;
 private:
   const string name1;
   const string name2;
@@ -1203,11 +1203,11 @@ public:
 private:
   const OptionsList options_list;
   const vector<string> generate_irf_names;
-  const vector<map<string, double> > generate_irf_elements;
+  const vector<map<string, double>> generate_irf_elements;
 public:
   GenerateIRFsStatement(OptionsList options_list_arg,
                         vector<string> generate_irf_names_arg,
-                        vector<map<string, double> > generate_irf_elements_arg);
+                        vector<map<string, double>> generate_irf_elements_arg);
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
   void writeJsonOutput(ostream &output) const override;
 };
diff --git a/src/ConfigFile.cc b/src/ConfigFile.cc
index a70e8945855810babc8dec552a1d2009a37ee395..67262f8b41c2d7bb343fecb813945ceb3232e23b 100644
--- a/src/ConfigFile.cc
+++ b/src/ConfigFile.cc
@@ -367,10 +367,10 @@ ConfigFile::getConfigFileInfo(const string &config_file)
             else if (!tokenizedLine.front().compare("Members"))
               {
                 char_separator<char> sep(" ,;", "()", drop_empty_tokens);
-                tokenizer<char_separator<char> > tokens(tokenizedLine.back(), sep);
+                tokenizer<char_separator<char>> tokens(tokenizedLine.back(), sep);
                 bool begin_weight = false;
                 string node_name;
-                for (tokenizer<char_separator<char> >::iterator it = tokens.begin();
+                for (tokenizer<char_separator<char>>::iterator it = tokens.begin();
                      it != tokens.end(); it++)
                   {
                     string token(*it);
@@ -683,8 +683,8 @@ ConfigFile::getIncludePaths() const
   vector<string> include_paths;
   for (auto path : paths)
     {
-      map <string, vector<string> > pathmap = path->get_paths();
-      for (map <string, vector<string> >::const_iterator mapit = pathmap.begin(); mapit != pathmap.end(); mapit++)
+      map <string, vector<string>> pathmap = path->get_paths();
+      for (map <string, vector<string>>::const_iterator mapit = pathmap.begin(); mapit != pathmap.end(); mapit++)
         for (const auto & vecit : mapit->second)
           include_paths.push_back(vecit);
     }
diff --git a/src/ConfigFile.hh b/src/ConfigFile.hh
index 6a5852180399d3afc49ff582ff1379b330a3acd1..4fc2fa7c7e6db34641d564a81bed67e7257262ca 100644
--- a/src/ConfigFile.hh
+++ b/src/ConfigFile.hh
@@ -50,9 +50,9 @@ public:
   Path(vector<string> &includepath_arg);
   ~Path();
 private:
-  map<string, vector<string> > paths;
+  map<string, vector<string>> paths;
 public:
-  inline map<string, vector<string> >
+  inline map<string, vector<string>>
   get_paths()
   {
     return paths;
diff --git a/src/DataTree.hh b/src/DataTree.hh
index c1ab2bb99bdb629b3accbfbf9ec02b0d3c7006d1..26e3777d113606db59c1ba5022762045c2ce9639 100644
--- a/src/DataTree.hh
+++ b/src/DataTree.hh
@@ -66,7 +66,7 @@ protected:
   variable_node_map_t variable_node_map;
   //! Pair( Pair(arg1, UnaryOpCode), Pair( Expectation Info Set, Pair(param1_symb_id, param2_symb_id)) ))
 
-  typedef map<pair<pair<expr_t, UnaryOpcode>, pair<pair<int, pair<int, int> >, pair<string, vector<int> > > >, UnaryOpNode *> unary_op_node_map_t;
+  typedef map<pair<pair<expr_t, UnaryOpcode>, pair<pair<int, pair<int, int>>, pair<string, vector<int>>>>, UnaryOpNode *> unary_op_node_map_t;
   unary_op_node_map_t unary_op_node_map;
   //! Pair( Pair( Pair(arg1, arg2), order of Power Derivative), opCode)
   typedef map<pair<pair<pair<expr_t, expr_t>, int>, BinaryOpcode>, BinaryOpNode *> binary_op_node_map_t;
@@ -79,7 +79,7 @@ protected:
   external_function_node_map_t external_function_node_map;
 
   // (model_name, (symb_id, forecast_horizon)) -> VarExpectationNode
-  typedef map<pair<string, pair<int, int> >, VarExpectationNode *> var_expectation_node_map_t;
+  typedef map<pair<string, pair<int, int>>, VarExpectationNode *> var_expectation_node_map_t;
   var_expectation_node_map_t var_expectation_node_map;
 
   // model_name -> PacExpectationNode
@@ -91,7 +91,7 @@ protected:
   first_deriv_external_function_node_map_t first_deriv_external_function_node_map;
 
   // ((arguments, (deriv_idx1, deriv_idx2)), symb_id) -> SecondDerivExternalFunctionNode
-  typedef map<pair<pair<vector<expr_t>, pair<int, int> >, int>, SecondDerivExternalFunctionNode *> second_deriv_external_function_node_map_t;
+  typedef map<pair<pair<vector<expr_t>, pair<int, int>>, int>, SecondDerivExternalFunctionNode *> second_deriv_external_function_node_map_t;
   second_deriv_external_function_node_map_t second_deriv_external_function_node_map;
 
   //! Stores local variables value (maps symbol ID to corresponding node)
diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index b4ea1895282bf66093c732e2d5be1deedcc7d0c7..38427985f24d97c3df565260d4808d13d705fb9a 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -88,7 +88,7 @@ DynamicModel::compileChainRuleDerivative(ofstream &code_file, unsigned int &inst
 void
 DynamicModel::computeTemporaryTermsOrdered()
 {
-  map<expr_t, pair<int, int> > first_occurence;
+  map<expr_t, pair<int, int>> first_occurence;
   map<expr_t, int> reference_count;
   BinaryOpNode *eq_node;
   first_derivatives_t::const_iterator it;
@@ -98,7 +98,7 @@ DynamicModel::computeTemporaryTermsOrdered()
   map_idx.clear();
 
   unsigned int nb_blocks = getNbBlocks();
-  v_temporary_terms = vector<vector<temporary_terms_t> >(nb_blocks);
+  v_temporary_terms = vector<vector<temporary_terms_t>>(nb_blocks);
   v_temporary_terms_inuse = vector<temporary_terms_inuse_t>(nb_blocks);
   temporary_terms.clear();
 
@@ -254,13 +254,13 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
 
       int prev_lag;
       unsigned int prev_var, count_col, count_col_endo, count_col_exo, count_col_exo_det, count_col_other_endo;
-      map<pair<int, pair<int, int> >, expr_t> tmp_block_endo_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_block_endo_derivative;
       for (auto it = blocks_derivatives[block].begin(); it != (blocks_derivatives[block]).end(); it++)
         tmp_block_endo_derivative[make_pair(it->second.first, make_pair(it->first.second, it->first.first))] = it->second.second;
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col_endo = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -271,13 +271,13 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
               count_col_endo++;
             }
         }
-      map<pair<int, pair<int, int> >, expr_t> tmp_block_exo_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_block_exo_derivative;
       for (auto it = derivative_exo[block].begin(); it != (derivative_exo[block]).end(); it++)
         tmp_block_exo_derivative[make_pair(it->first.first, make_pair(it->first.second.second, it->first.second.first))] = it->second;
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col_exo = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_exo_derivative.begin(); it != tmp_block_exo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_exo_derivative.begin(); it != tmp_block_exo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -288,13 +288,13 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
               count_col_exo++;
             }
         }
-      map<pair<int, pair<int, int> >, expr_t> tmp_block_exo_det_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_block_exo_det_derivative;
       for (auto it = derivative_exo_det[block].begin(); it != (derivative_exo_det[block]).end(); it++)
         tmp_block_exo_det_derivative[make_pair(it->first.first, make_pair(it->first.second.second, it->first.second.first))] = it->second;
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col_exo_det = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_exo_derivative.begin(); it != tmp_block_exo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_exo_derivative.begin(); it != tmp_block_exo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -305,13 +305,13 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
               count_col_exo_det++;
             }
         }
-      map<pair<int, pair<int, int> >, expr_t> tmp_block_other_endo_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_block_other_endo_derivative;
       for (auto it = derivative_other_endo[block].begin(); it != (derivative_other_endo[block]).end(); it++)
         tmp_block_other_endo_derivative[make_pair(it->first.first, make_pair(it->first.second.second, it->first.second.first))] = it->second;
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col_other_endo = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_other_endo_derivative.begin(); it != tmp_block_other_endo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_other_endo_derivative.begin(); it != tmp_block_other_endo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -564,7 +564,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -590,7 +590,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_exo_derivative.begin(); it != tmp_block_exo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_exo_derivative.begin(); it != tmp_block_exo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -613,7 +613,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_exo_det_derivative.begin(); it != tmp_block_exo_det_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_exo_det_derivative.begin(); it != tmp_block_exo_det_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -636,7 +636,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const
       prev_var = 999999999;
       prev_lag = -9999999;
       count_col = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_other_endo_derivative.begin(); it != tmp_block_other_endo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_other_endo_derivative.begin(); it != tmp_block_other_endo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int var = it->first.second.first;
@@ -830,8 +830,8 @@ DynamicModel::writeModelEquationsCode(string &file_name, const string &bin_basen
   for (int i = 0; i < symbol_table.exo_nbr(); i++)
     exo.push_back(i);
 
-  map<pair< int, pair<int, int> >, expr_t> first_derivatives_reordered_endo;
-  map<pair< pair<int, int>, pair<int, int> >, expr_t>  first_derivatives_reordered_exo;
+  map<pair< int, pair<int, int>>, expr_t> first_derivatives_reordered_endo;
+  map<pair< pair<int, int>, pair<int, int>>, expr_t>  first_derivatives_reordered_exo;
   for (const auto & first_derivative : first_derivatives)
     {
       int deriv_id = first_derivative.first.second;
@@ -847,7 +847,7 @@ DynamicModel::writeModelEquationsCode(string &file_name, const string &bin_basen
   int prev_var = -1;
   int prev_lag = -999999999;
   int count_col_endo = 0;
-  for (map<pair< int, pair<int, int> >, expr_t>::const_iterator it = first_derivatives_reordered_endo.begin();
+  for (map<pair< int, pair<int, int>>, expr_t>::const_iterator it = first_derivatives_reordered_endo.begin();
        it != first_derivatives_reordered_endo.end(); it++)
     {
       int var = it->first.second.first;
@@ -865,7 +865,7 @@ DynamicModel::writeModelEquationsCode(string &file_name, const string &bin_basen
   int count_col_exo = 0;
   int count_col_det_exo = 0;
 
-  for (map<pair< pair<int, int>, pair<int, int> >, expr_t>::const_iterator it = first_derivatives_reordered_exo.begin();
+  for (map<pair< pair<int, int>, pair<int, int>>, expr_t>::const_iterator it = first_derivatives_reordered_exo.begin();
        it != first_derivatives_reordered_exo.end(); it++)
     {
       int var = it->first.second.first;
@@ -920,7 +920,7 @@ DynamicModel::writeModelEquationsCode(string &file_name, const string &bin_basen
   fjmp_if_eval.write(code_file, instruction_number);
   int prev_instruction_number = instruction_number;
 
-  vector<vector<pair<pair<int, int>, int > > > derivatives;
+  vector<vector<pair<pair<int, int>, int >>> derivatives;
   derivatives.resize(symbol_table.endo_nbr());
   count_u = symbol_table.endo_nbr();
   for (const auto & first_derivative : first_derivatives)
@@ -951,7 +951,7 @@ DynamicModel::writeModelEquationsCode(string &file_name, const string &bin_basen
       fldr.write(code_file, instruction_number);
       if (derivatives[i].size())
         {
-          for (vector<pair<pair<int, int>, int> >::const_iterator it = derivatives[i].begin();
+          for (vector<pair<pair<int, int>, int>>::const_iterator it = derivatives[i].begin();
                it != derivatives[i].end(); it++)
             {
               FLDU_ fldu(it->second);
@@ -989,7 +989,7 @@ DynamicModel::writeModelEquationsCode(string &file_name, const string &bin_basen
   prev_var = -1;
   prev_lag = -999999999;
   count_col_endo = 0;
-  for (map<pair< int, pair<int, int> >, expr_t>::const_iterator it = first_derivatives_reordered_endo.begin();
+  for (map<pair< int, pair<int, int>>, expr_t>::const_iterator it = first_derivatives_reordered_endo.begin();
        it != first_derivatives_reordered_endo.end(); it++)
     {
       unsigned int eq = it->first.second.second;
@@ -1011,7 +1011,7 @@ DynamicModel::writeModelEquationsCode(string &file_name, const string &bin_basen
   prev_var = -1;
   prev_lag = -999999999;
   count_col_exo = 0;
-  for (map<pair< pair<int, int>, pair<int, int> >, expr_t>::const_iterator it = first_derivatives_reordered_exo.begin();
+  for (map<pair< pair<int, int>, pair<int, int>>, expr_t>::const_iterator it = first_derivatives_reordered_exo.begin();
        it != first_derivatives_reordered_exo.end(); it++)
     {
       unsigned int eq = it->first.second.second;
@@ -1108,22 +1108,22 @@ DynamicModel::writeModelEquationsCode_Block(string &file_name, const string &bin
                                       simulation_type == SOLVE_TWO_BOUNDARIES_COMPLETE || simulation_type == SOLVE_TWO_BOUNDARIES_SIMPLE);
           file_open = true;
         }
-      map<pair<int, pair<int, int> >, expr_t> tmp_block_endo_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_block_endo_derivative;
       for (auto it = blocks_derivatives[block].begin(); it != (blocks_derivatives[block]).end(); it++)
         tmp_block_endo_derivative[make_pair(it->second.first, make_pair(it->first.second, it->first.first))] = it->second.second;
-      map<pair<int, pair<int, int> >, expr_t> tmp_exo_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_exo_derivative;
       for (auto it = derivative_exo[block].begin(); it != (derivative_exo[block]).end(); it++)
         tmp_exo_derivative[make_pair(it->first.first, make_pair(it->first.second.second, it->first.second.first))] = it->second;
-      map<pair<int, pair<int, int> >, expr_t> tmp_exo_det_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_exo_det_derivative;
       for (auto it = derivative_exo_det[block].begin(); it != (derivative_exo_det[block]).end(); it++)
         tmp_exo_det_derivative[make_pair(it->first.first, make_pair(it->first.second.second, it->first.second.first))] = it->second;
-      map<pair<int, pair<int, int> >, expr_t> tmp_other_endo_derivative;
+      map<pair<int, pair<int, int>>, expr_t> tmp_other_endo_derivative;
       for (auto it = derivative_other_endo[block].begin(); it != (derivative_other_endo[block]).end(); it++)
         tmp_other_endo_derivative[make_pair(it->first.first, make_pair(it->first.second.second, it->first.second.first))] = it->second;
       int prev_var = -1;
       int prev_lag = -999999999;
       int count_col_endo = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
         {
           int lag = it->first.first;
           int var = it->first.second.first;
@@ -1408,7 +1408,7 @@ DynamicModel::writeModelEquationsCode_Block(string &file_name, const string &bin
       prev_var = -1;
       prev_lag = -999999999;
       count_col_endo = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_block_endo_derivative.begin(); it != tmp_block_endo_derivative.end(); it++)
         {
           int lag = it->first.first;
           unsigned int eq = it->first.second.second;
@@ -1430,7 +1430,7 @@ DynamicModel::writeModelEquationsCode_Block(string &file_name, const string &bin
       prev_var = -1;
       prev_lag = -999999999;
       count_col_exo = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_exo_derivative.begin(); it != tmp_exo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_exo_derivative.begin(); it != tmp_exo_derivative.end(); it++)
         {
           int lag = it->first.first;
           int eq = it->first.second.second;
@@ -1454,7 +1454,7 @@ DynamicModel::writeModelEquationsCode_Block(string &file_name, const string &bin
       prev_var = -1;
       prev_lag = -999999999;
       int count_col_exo_det = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_exo_det_derivative.begin(); it != tmp_exo_det_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_exo_det_derivative.begin(); it != tmp_exo_det_derivative.end(); it++)
         {
           int lag = it->first.first;
           int eq = it->first.second.second;
@@ -1478,7 +1478,7 @@ DynamicModel::writeModelEquationsCode_Block(string &file_name, const string &bin
       prev_var = -1;
       prev_lag = -999999999;
       count_col_other_endo = 0;
-      for (map<pair<int, pair<int, int> >, expr_t>::const_iterator it = tmp_other_endo_derivative.begin(); it != tmp_other_endo_derivative.end(); it++)
+      for (map<pair<int, pair<int, int>>, expr_t>::const_iterator it = tmp_other_endo_derivative.begin(); it != tmp_other_endo_derivative.end(); it++)
         {
           int lag = it->first.first;
           int eq = it->first.second.second;
@@ -1528,7 +1528,7 @@ DynamicModel::fillVarExpectationFunctionsToWrite()
     var_expectation_functions_to_write[it->first.first].insert(it->first.second.second);
 }
 
-map<string, set<int> >
+map<string, set<int>>
 DynamicModel::getVarExpectationFunctionsToWrite() const
 {
   return var_expectation_functions_to_write;
@@ -3233,7 +3233,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
       for (vector<int>::const_iterator it = state_var.begin(); it != state_var.end(); it++)
         state_equ.push_back(equation_reordered[variable_inv_reordered[*it - 1]]+1);
 
-      map<pair< int, pair<int, int> >,  int>  lag_row_incidence;
+      map<pair< int, pair<int, int>>,  int>  lag_row_incidence;
       for (const auto & first_derivative : first_derivatives)
         {
           int deriv_id = first_derivative.first.second;
@@ -3247,7 +3247,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
             }
         }
       int prev_lag = -1000000;
-      for (map<pair< int, pair<int, int> >,  int>::const_iterator it = lag_row_incidence.begin(); it != lag_row_incidence.end(); it++)
+      for (map<pair< int, pair<int, int>>,  int>::const_iterator it = lag_row_incidence.begin(); it != lag_row_incidence.end(); it++)
         {
           if (prev_lag != it->first.first)
             {
@@ -3296,7 +3296,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
                 }
               if (block == 0)
                 {
-                  set<pair<int, int> > row_state_var_incidence;
+                  set<pair<int, int>> row_state_var_incidence;
                   for (auto it = blocks_derivatives[block].begin(); it != (blocks_derivatives[block]).end(); it++)
                     {
                       vector<int>::const_iterator it_state_var = find(state_var.begin(), state_var.end(), getBlockVariableID(block, it->first.second)+1);
@@ -3334,7 +3334,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
                         }
 
                     }
-                  set<pair<int, int> >  col_state_var_incidence;
+                  set<pair<int, int>>  col_state_var_incidence;
                   for (const auto & row_state_var_incidence_it : row_state_var_incidence)
                     col_state_var_incidence.insert(make_pair(row_state_var_incidence_it.second, row_state_var_incidence_it.first));
                   auto  col_state_var_incidence_it = col_state_var_incidence.begin();
@@ -3366,7 +3366,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
           output << modstruct << "n_diag = " << nb_diag << ";" << endl;
           KF_index_file.write(reinterpret_cast<char *>(&nb_diag), sizeof(nb_diag));
 
-          typedef pair<int, pair<int, int > > index_KF;
+          typedef pair<int, pair<int, int >> index_KF;
           vector<index_KF> v_index_KF;
           for (int i = 0; i < n; i++)
             //int i = 0;
@@ -3463,10 +3463,10 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
     it->ExprNode::writeOutput(output, oMatlabDynamicModel);
 }
 
-map<pair<int, pair<int, int > >, expr_t>
+map<pair<int, pair<int, int >>, expr_t>
 DynamicModel::collect_first_order_derivatives_endogenous()
 {
-  map<pair<int, pair<int, int > >, expr_t> endo_derivatives;
+  map<pair<int, pair<int, int >>, expr_t> endo_derivatives;
   for (auto & first_derivative : first_derivatives)
     {
       if (getTypeByDerivID(first_derivative.first.second) == eEndogenous)
@@ -3492,14 +3492,14 @@ DynamicModel::getVarModelVariablesFromEqTags(vector<string> &var_model_eqtags,
                                              vector<int> &eqnumber,
                                              vector<int> &lhs,
                                              vector<expr_t> &lhs_expr_t,
-                                             vector<set<pair<int, int> > > &rhs,
+                                             vector<set<pair<int, int>>> &rhs,
                                              vector<bool> &nonstationary) const
 {
   for (vector<string>::const_iterator itvareqs = var_model_eqtags.begin();
        itvareqs != var_model_eqtags.end(); itvareqs++)
     {
       int eqn = -1;
-      set<pair<int, int> > lhs_set, lhs_tmp_set, rhs_set;
+      set<pair<int, int>> lhs_set, lhs_tmp_set, rhs_set;
       string eqtag (*itvareqs);
       for (const auto & equation_tag : equation_tags)
         if (equation_tag.second.first == "name"
@@ -3619,7 +3619,7 @@ DynamicModel::getVarLhsDiffAndInfo(vector<int> &eqnumber, vector<bool> &diff,
       equations[*it]->get_arg1()->countDiffs() > 0 ? diff.push_back(true) : diff.push_back(false);
       if (diff.back())
         {
-          set<pair<int, int> > diff_set;
+          set<pair<int, int>> diff_set;
           equations[*it]->get_arg1()->collectDynamicVariables(eEndogenous, diff_set);
 
           if (diff_set.size() != 1)
@@ -3635,18 +3635,18 @@ DynamicModel::getVarLhsDiffAndInfo(vector<int> &eqnumber, vector<bool> &diff,
 }
 
 void
-DynamicModel::setVarExpectationIndices(map<string, pair<SymbolList, int> > &var_model_info)
+DynamicModel::setVarExpectationIndices(map<string, pair<SymbolList, int>> &var_model_info)
 {
   for (auto & equation : equations)
     equation->setVarExpectationIndex(var_model_info);
 }
 
 void
-DynamicModel::addEquationsForVar(map<string, pair<SymbolList, int> > &var_model_info)
+DynamicModel::addEquationsForVar(map<string, pair<SymbolList, int>> &var_model_info)
 {
   // List of endogenous variables and the minimum lag value that must exist in the model equations
   map<string, int> var_endos_and_lags, model_endos_and_lags;
-  for (map<string, pair<SymbolList, int> >::const_iterator it = var_model_info.begin();
+  for (map<string, pair<SymbolList, int>>::const_iterator it = var_model_info.begin();
        it != var_model_info.end(); it++)
     for (auto & equation : equations)
       if (equation->isVarModelReferenced(it->first))
@@ -3705,7 +3705,7 @@ DynamicModel::getUndiffLHSForPac(vector<int> &lhs, vector<expr_t> &lhs_expr_t, v
     {
       int eqn = -1;
       string eqtag (it->first);
-      for (vector<pair<int, pair<string, string> > >::const_iterator iteqtag =
+      for (vector<pair<int, pair<string, string>>>::const_iterator iteqtag =
              equation_tags.begin(); iteqtag != equation_tags.end(); iteqtag++)
         if (iteqtag->second.first == "name"
             && iteqtag->second.second == eqtag)
@@ -3808,8 +3808,8 @@ DynamicModel::walkPacParameters()
     {
       bool pac_encountered = false;
       pair<int, int> lhs (-1, -1);
-      set<pair<int, pair<int, int> > > params_and_vars;
-      set<pair<int, pair<int, int> > > ecm_params_and_vars;
+      set<pair<int, pair<int, int>>> params_and_vars;
+      set<pair<int, pair<int, int>>> ecm_params_and_vars;
       equation->walkPacParameters(pac_encountered, lhs, ecm_params_and_vars, params_and_vars);
       if (pac_encountered)
         equation->addParamInfoToPac(lhs, ecm_params_and_vars, params_and_vars);
@@ -3907,7 +3907,7 @@ DynamicModel::computingPass(bool jacobianExo, bool hessian, bool thirdDerivative
       jacob_map_t contemporaneous_jacobian, static_jacobian;
 
       // for each block contains pair<Size, Feddback_variable>
-      vector<pair<int, int> > blocks;
+      vector<pair<int, int>> blocks;
 
       evaluateAndReduceJacobian(eval_context, contemporaneous_jacobian, static_jacobian, dynamic_jacobian, cutoff, false);
 
@@ -3915,7 +3915,7 @@ DynamicModel::computingPass(bool jacobianExo, bool hessian, bool thirdDerivative
 
       computePrologueAndEpilogue(static_jacobian, equation_reordered, variable_reordered);
 
-      map<pair<int, pair<int, int> >, expr_t> first_order_endo_derivatives = collect_first_order_derivatives_endogenous();
+      map<pair<int, pair<int, int>>, expr_t> first_order_endo_derivatives = collect_first_order_derivatives_endogenous();
 
       equation_type_and_normalized_equation = equationTypeDetermination(first_order_endo_derivatives, variable_reordered, equation_reordered, mfs);
 
@@ -3943,7 +3943,7 @@ DynamicModel::computingPass(bool jacobianExo, bool hessian, bool thirdDerivative
         computeTemporaryTermsOrdered();
       int k = 0;
       equation_block = vector<int>(equations.size());
-      variable_block_lead_lag = vector< pair< int, pair< int, int> > >(equations.size());
+      variable_block_lead_lag = vector< pair< int, pair< int, int>>>(equations.size());
       for (unsigned int i = 0; i < getNbBlocks(); i++)
         {
           for (unsigned int j = 0; j < getBlockSize(i); j++)
@@ -3987,7 +3987,7 @@ DynamicModel::computeXrefs()
 }
 
 void
-DynamicModel::computeRevXref(map<pair<int, int>, set<int> > &xrefset, const set<pair<int, int> > &eiref, int eqn)
+DynamicModel::computeRevXref(map<pair<int, int>, set<int>> &xrefset, const set<pair<int, int>> &eiref, int eqn)
 {
   for (const auto & it : eiref)
     {
@@ -4042,7 +4042,7 @@ DynamicModel::writeXrefs(ostream &output) const
 }
 
 void
-DynamicModel::writeRevXrefs(ostream &output, const map<pair<int, int>, set<int> > &xrefmap, const string &type) const
+DynamicModel::writeRevXrefs(ostream &output, const map<pair<int, int>, set<int>> &xrefmap, const string &type) const
 {
   int last_tsid = -1;
   for (const auto & it : xrefmap)
@@ -4064,11 +4064,11 @@ DynamicModel::writeRevXrefs(ostream &output, const map<pair<int, int>, set<int>
     }
 }
 
-map<pair<pair<int, pair<int, int> >, pair<int, int> >, int>
+map<pair<pair<int, pair<int, int>>, pair<int, int>>, int>
 DynamicModel::get_Derivatives(int block)
 {
   int max_lag, max_lead;
-  map<pair<pair<int, pair<int, int> >, pair<int, int> >, int> Derivatives;
+  map<pair<pair<int, pair<int, int>>, pair<int, int>>, int> Derivatives;
   Derivatives.clear();
   BlockSimulationType simulation_type = getBlockSimulationType(block);
   if (simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
@@ -4095,7 +4095,7 @@ DynamicModel::get_Derivatives(int block)
               if (dynamic_jacobian.find(make_pair(lag, make_pair(eqr, varr))) != dynamic_jacobian.end())
                 {
                   bool OK = true;
-                  map<pair<pair<int, pair<int, int> >, pair<int, int> >, int>::const_iterator its = Derivatives.find(make_pair(make_pair(lag, make_pair(eq, var)), make_pair(eqr, varr)));
+                  map<pair<pair<int, pair<int, int>>, pair<int, int>>, int>::const_iterator its = Derivatives.find(make_pair(make_pair(lag, make_pair(eq, var)), make_pair(eqr, varr)));
                   if (its != Derivatives.end())
                     {
                       if (its->second == 2)
@@ -4150,12 +4150,12 @@ DynamicModel::computeChainRuleJacobian(blocks_derivatives_t &blocks_endo_derivat
           else
             recursive_variables[getDerivID(symbol_table.getID(eEndogenous, getBlockVariableID(block, i)), 0)] = getBlockEquationExpr(block, i);
         }
-      map<pair<pair<int, pair<int, int> >, pair<int, int> >, int> Derivatives = get_Derivatives(block);
-      map<pair<pair<int, pair<int, int> >, pair<int, int> >, int>::const_iterator it = Derivatives.begin();
+      map<pair<pair<int, pair<int, int>>, pair<int, int>>, int> Derivatives = get_Derivatives(block);
+      map<pair<pair<int, pair<int, int>>, pair<int, int>>, int>::const_iterator it = Derivatives.begin();
       for (int i = 0; i < (int) Derivatives.size(); i++)
         {
           int Deriv_type = it->second;
-          pair<pair<int, pair<int, int> >, pair<int, int> > it_l(it->first);
+          pair<pair<int, pair<int, int>>, pair<int, int>> it_l(it->first);
           it++;
           int lag = it_l.first.first;
           int eq = it_l.first.second.first;
@@ -4203,11 +4203,11 @@ DynamicModel::collect_block_first_order_derivatives()
   derivative_other_endo = vector<derivative_t>(nb_blocks);
   derivative_exo = vector<derivative_t>(nb_blocks);
   derivative_exo_det = vector<derivative_t>(nb_blocks);
-  endo_max_leadlag_block = vector<pair<int, int> >(nb_blocks, make_pair(0, 0));
-  other_endo_max_leadlag_block = vector<pair<int, int> >(nb_blocks, make_pair(0, 0));
-  exo_max_leadlag_block = vector<pair<int, int> >(nb_blocks, make_pair(0, 0));
-  exo_det_max_leadlag_block = vector<pair<int, int> >(nb_blocks, make_pair(0, 0));
-  max_leadlag_block = vector<pair<int, int> >(nb_blocks, make_pair(0, 0));
+  endo_max_leadlag_block = vector<pair<int, int>>(nb_blocks, make_pair(0, 0));
+  other_endo_max_leadlag_block = vector<pair<int, int>>(nb_blocks, make_pair(0, 0));
+  exo_max_leadlag_block = vector<pair<int, int>>(nb_blocks, make_pair(0, 0));
+  exo_det_max_leadlag_block = vector<pair<int, int>>(nb_blocks, make_pair(0, 0));
+  max_leadlag_block = vector<pair<int, int>>(nb_blocks, make_pair(0, 0));
   for (auto & first_derivative : first_derivatives)
     {
       int eq = first_derivative.first.first;
@@ -4239,7 +4239,7 @@ DynamicModel::collect_block_first_order_derivatives()
                 other_endo_max_leadlag_block[block_eq] = make_pair(other_endo_max_leadlag_block[block_eq].first, lag);
               tmp_derivative = derivative_other_endo[block_eq];
               {
-                map< int, map<int, int> >::const_iterator it = block_other_endo_index.find(block_eq);
+                map< int, map<int, int>>::const_iterator it = block_other_endo_index.find(block_eq);
                 if (it == block_other_endo_index.end())
                   block_other_endo_index[block_eq][var] = 0;
                 else
@@ -4268,7 +4268,7 @@ DynamicModel::collect_block_first_order_derivatives()
             exo_max_leadlag_block[block_eq] = make_pair(exo_max_leadlag_block[block_eq].first, lag);
           tmp_derivative = derivative_exo[block_eq];
           {
-            map< int, map<int, int> >::const_iterator it = block_exo_index.find(block_eq);
+            map< int, map<int, int>>::const_iterator it = block_exo_index.find(block_eq);
             if (it == block_exo_index.end())
               block_exo_index[block_eq][var] = 0;
             else
@@ -4296,7 +4296,7 @@ DynamicModel::collect_block_first_order_derivatives()
             exo_det_max_leadlag_block[block_eq] = make_pair(exo_det_max_leadlag_block[block_eq].first, lag);
           tmp_derivative = derivative_exo_det[block_eq];
           {
-            map< int, map<int, int> >::const_iterator it = block_det_exo_index.find(block_eq);
+            map< int, map<int, int>>::const_iterator it = block_det_exo_index.find(block_eq);
             if (it == block_det_exo_index.end())
               block_det_exo_index[block_eq][var] = 0;
             else
@@ -4469,7 +4469,7 @@ DynamicModel::cloneDynamic(DynamicModel &dynamic_model) const
   // Convert equations
   for (size_t i = 0; i < equations.size(); i++)
     {
-      vector<pair<string, string> > eq_tags;
+      vector<pair<string, string>> eq_tags;
       for (const auto & equation_tag : equation_tags)
         if (equation_tag.first == (int)i)
           eq_tags.push_back(equation_tag.second);
@@ -4518,7 +4518,7 @@ DynamicModel::computeRamseyPolicyFOCs(const StaticModel &static_model, const boo
   addEquation(static_model.equations[0]->cloneDynamic(*this), static_model.equations_lineno[0]);
 
   // Get max endo lead and max endo lag
-  set<pair<int, int> > dynvars;
+  set<pair<int, int>> dynvars;
   int max_eq_lead = 0;
   int max_eq_lag = 0;
   for (auto & equation : equations)
@@ -4593,7 +4593,7 @@ DynamicModel::toStatic(StaticModel &static_model) const
     {
       // Detect if equation is marked [dynamic]
       bool is_dynamic_only = false;
-      vector<pair<string, string> > eq_tags;
+      vector<pair<string, string>> eq_tags;
       for (const auto & equation_tag : equation_tags)
         if (equation_tag.first == i)
           {
@@ -4664,7 +4664,7 @@ DynamicModel::findUnusedExogenous()
 void
 DynamicModel::setLeadsLagsOrig()
 {
-  set<pair<int, int> > dynvars;
+  set<pair<int, int>> dynvars;
 
   for (auto & equation : equations)
     {
@@ -4712,7 +4712,7 @@ DynamicModel::setLeadsLagsOrig()
 void
 DynamicModel::computeDerivIDs()
 {
-  set<pair<int, int> > dynvars;
+  set<pair<int, int>> dynvars;
 
   for (auto & equation : equations)
     equation->collectDynamicVariables(eEndogenous, dynvars);
@@ -5601,12 +5601,12 @@ DynamicModel::isModelLocalVariableUsed() const
 }
 
 void
-DynamicModel::addStaticOnlyEquation(expr_t eq, int lineno, const vector<pair<string, string> > &eq_tags)
+DynamicModel::addStaticOnlyEquation(expr_t eq, int lineno, const vector<pair<string, string>> &eq_tags)
 {
   auto *beq = dynamic_cast<BinaryOpNode *>(eq);
   assert(beq != nullptr && beq->get_op_code() == oEqual);
 
-  vector<pair<string, string> > soe_eq_tags;
+  vector<pair<string, string>> soe_eq_tags;
   for (const auto & eq_tag : eq_tags)
     soe_eq_tags.push_back(eq_tag);
 
@@ -6341,7 +6341,7 @@ DynamicModel::writeJsonOutput(ostream &output) const
 }
 
 void
-DynamicModel::writeJsonXrefsHelper(ostream &output, const map<pair<int, int>, set<int> > &xrefs) const
+DynamicModel::writeJsonXrefsHelper(ostream &output, const map<pair<int, int>, set<int>> &xrefs) const
 {
   for (auto it = xrefs.begin();
        it != xrefs.end(); it++)
diff --git a/src/DynamicModel.hh b/src/DynamicModel.hh
index 32f28c9dbae41443f85e69bc94afd9983818991f..8be5de7876a5c79c28c69c47af1ac7a7e2dd13da 100644
--- a/src/DynamicModel.hh
+++ b/src/DynamicModel.hh
@@ -40,13 +40,13 @@ private:
   vector<int> static_only_equations_lineno;
 
   //! Stores the equation tags of equations declared as [static]
-  vector<vector<pair<string, string> > > static_only_equations_equation_tags;
+  vector<vector<pair<string, string>>> static_only_equations_equation_tags;
 
   typedef map<pair<int, int>, int> deriv_id_table_t;
   //! Maps a pair (symbol_id, lag) to a deriv ID
   deriv_id_table_t deriv_id_table;
   //! Maps a deriv ID to a pair (symbol_id, lag)
-  vector<pair<int, int> > inv_deriv_id_table;
+  vector<pair<int, int>> inv_deriv_id_table;
 
   //! Maps a deriv_id to the column index of the dynamic Jacobian
   /*! Contains only endogenous, exogenous and exogenous deterministic */
@@ -75,10 +75,10 @@ private:
 
   //! Cross reference information
   map<int, ExprNode::EquationInfo> xrefs;
-  map<pair<int, int>, set<int> > xref_param;
-  map<pair<int, int>, set<int> > xref_endo;
-  map<pair<int, int>, set<int> > xref_exo;
-  map<pair<int, int>, set<int> > xref_exo_det;
+  map<pair<int, int>, set<int>> xref_param;
+  map<pair<int, int>, set<int>> xref_endo;
+  map<pair<int, int>, set<int>> xref_exo;
+  map<pair<int, int>, set<int>> xref_exo_det;
 
   //! Nonzero equations in the Hessian
   map<int, string> nonzero_hessian_eqs;
@@ -87,12 +87,12 @@ private:
   /*! Set by computeDerivID()s and computeDynJacobianCols() */
   int dynJacobianColsNbr;
   //! Temporary terms for block decomposed models
-  vector< vector<temporary_terms_t> > v_temporary_terms;
+  vector< vector<temporary_terms_t>> v_temporary_terms;
 
   vector<temporary_terms_inuse_t> v_temporary_terms_inuse;
 
   //! Store the derivatives or the chainrule derivatives:map<pair< equation, pair< variable, lead_lag >, expr_t>
-  typedef map< pair< int, pair< int, int> >, expr_t> first_chain_rule_derivatives_t;
+  typedef map< pair< int, pair< int, int>>, expr_t> first_chain_rule_derivatives_t;
   first_chain_rule_derivatives_t first_chain_rule_derivatives;
 
   //! Writes dynamic model file (Matlab version)
@@ -129,7 +129,7 @@ private:
   //void evaluateJacobian(const eval_context_t &eval_context, jacob_map *j_m, bool dynamic);
 
   //! return a map on the block jacobian
-  map<pair<pair<int, pair<int, int> >, pair<int, int> >, int> get_Derivatives(int block);
+  map<pair<pair<int, pair<int, int>>, pair<int, int>>, int> get_Derivatives(int block);
   //! Computes chain rule derivatives of the Jacobian w.r. to endogenous variables
   void computeChainRuleJacobian(blocks_derivatives_t &blocks_derivatives);
 
@@ -157,7 +157,7 @@ private:
   //! Computes derivatives of the Jacobian w.r. to trend vars and tests that they are equal to zero
   void testTrendDerivativesEqualToZero(const eval_context_t &eval_context);
   //! Collect only the first derivatives
-  map<pair<int, pair<int, int> >, expr_t> collect_first_order_derivatives_endogenous();
+  map<pair<int, pair<int, int>>, expr_t> collect_first_order_derivatives_endogenous();
 
   //! Allocates the derivation IDs for all dynamic variables of the model
   /*! Also computes max_{endo,exo}_{lead_lag}, and initializes dynJacobianColsNbr to the number of dynamic endos */
@@ -183,7 +183,7 @@ private:
   //! Vector describing equations: BlockSimulationType, if BlockSimulationType == EVALUATE_s then a expr_t on the new normalized equation
   equation_type_and_normalized_equation_t equation_type_and_normalized_equation;
 
-  //! for each block contains pair< Simulation_Type, pair < Block_Size, Recursive_part_Size > >
+  //! for each block contains pair< Simulation_Type, pair < Block_Size, Recursive_part_Size >>
   block_type_firstequation_size_mfs_t block_type_firstequation_size_mfs;
 
   //! for all blocks derivatives description
@@ -196,7 +196,7 @@ private:
   vector<bool> blocks_linear;
 
   //! Map the derivatives for a block pair<lag, make_pair(make_pair(eq, var)), expr_t>
-  typedef map<pair< int, pair<int, int> >, expr_t> derivative_t;
+  typedef map<pair< int, pair<int, int>>, expr_t> derivative_t;
   //! Vector of derivative for each blocks
   vector<derivative_t> derivative_endo, derivative_other_endo, derivative_exo, derivative_exo_det;
 
@@ -206,33 +206,33 @@ private:
   vector<lag_var_t> other_endo_block, exo_block, exo_det_block;
 
   //!List for each block the exogenous variables
-  vector<pair<var_t, int> > block_var_exo;
+  vector<pair<var_t, int>> block_var_exo;
 
-  map< int, map<int, int> > block_exo_index, block_det_exo_index, block_other_endo_index;
+  map< int, map<int, int>> block_exo_index, block_det_exo_index, block_other_endo_index;
 
   //! for each block described the number of static, forward, backward and mixed variables in the block
-  /*! pair< pair<static, forward>, pair<backward,mixed> > */
-  vector<pair< pair<int, int>, pair<int, int> > > block_col_type;
+  /*! pair< pair<static, forward>, pair<backward,mixed>> */
+  vector<pair< pair<int, int>, pair<int, int>>> block_col_type;
 
   //! Help computeXrefs to compute the reverse references (i.e. param->eqs, endo->eqs, etc)
-  void computeRevXref(map<pair<int, int>, set<int> > &xrefset, const set<pair<int, int> > &eiref, int eqn);
+  void computeRevXref(map<pair<int, int>, set<int>> &xrefset, const set<pair<int, int>> &eiref, int eqn);
 
   //! Write reverse cross references
-  void writeRevXrefs(ostream &output, const map<pair<int, int>, set<int> > &xrefmap, const string &type) const;
+  void writeRevXrefs(ostream &output, const map<pair<int, int>, set<int>> &xrefmap, const string &type) const;
 
   //! List for each variable its block number and its maximum lag and lead inside the block
-  vector<pair<int, pair<int, int> > > variable_block_lead_lag;
+  vector<pair<int, pair<int, int>>> variable_block_lead_lag;
   //! List for each equation its block number
   vector<int> equation_block;
 
   //! Used for var_expectation and var_model
-  map<string, set<int> > var_expectation_functions_to_write;
+  map<string, set<int>> var_expectation_functions_to_write;
 
   //! Used for pac_expectation operator
   set<const PacExpectationNode *> pac_expectation_info; // PacExpectationNode pointers
 
   //!Maximum lead and lag for each block on endogenous of the block, endogenous of the previous blocks, exogenous and deterministic exogenous
-  vector<pair<int, int> > endo_max_leadlag_block, other_endo_max_leadlag_block, exo_max_leadlag_block, exo_det_max_leadlag_block, max_leadlag_block;
+  vector<pair<int, int>> endo_max_leadlag_block, other_endo_max_leadlag_block, exo_max_leadlag_block, exo_det_max_leadlag_block, max_leadlag_block;
 
   void writeWrapperFunctions(const string &name, const string &ending) const;
   void writeDynamicModelHelper(const string &name, const string &retvalname,
@@ -288,7 +288,7 @@ public:
 
   //! Write cross reference output if the xref maps have been filed
   void writeJsonXrefs(ostream &output) const;
-  void writeJsonXrefsHelper(ostream &output, const map<pair<int, int>, set<int> > &xrefs) const;
+  void writeJsonXrefsHelper(ostream &output, const map<pair<int, int>, set<int>> &xrefs) const;
 
   //! Print equations that have non-zero second derivatives
   void printNonZeroHessianEquations(ostream &output) const;
@@ -301,7 +301,7 @@ public:
                                       vector<int> &eqnumber,
                                       vector<int> &lhs,
                                       vector<expr_t> &lhs_expr_t,
-                                      vector<set<pair<int, int> > > &rhs,
+                                      vector<set<pair<int, int>>> &rhs,
                                       vector<bool> &nonstationary) const;
 
   //! Returns the max lag of the VAR
@@ -315,9 +315,9 @@ public:
                             vector<int> &orig_diff_var) const;
 
   //! Set indices for var expectation in dynamic model file
-  void setVarExpectationIndices(map<string, pair<SymbolList, int> > &var_model_info);
+  void setVarExpectationIndices(map<string, pair<SymbolList, int>> &var_model_info);
   //! Add aux equations (and aux variables) for variables declared in var_model at max order if they don't already exist
-  void addEquationsForVar(map<string, pair<SymbolList, int> > &var_model_info);
+  void addEquationsForVar(map<string, pair<SymbolList, int>> &var_model_info);
   //! Get Pac equation parameter info
   void walkPacParameters();
   //! Add var_model info to pac_expectation nodes
@@ -365,7 +365,7 @@ public:
   void replaceMyEquations(DynamicModel &dynamic_model) const;
 
   //! Adds an equation marked as [static]
-  void addStaticOnlyEquation(expr_t eq, int lineno, const vector<pair<string, string> > &eq_tags);
+  void addStaticOnlyEquation(expr_t eq, int lineno, const vector<pair<string, string>> &eq_tags);
 
   //! Returns number of static only equations
   size_t staticOnlyEquationsNbr() const;
@@ -436,7 +436,7 @@ public:
   void fillVarExpectationFunctionsToWrite();
 
   //! Get var_expectation_functions_to_write
-  map<string, set<int> > getVarExpectationFunctionsToWrite() const;
+  map<string, set<int>> getVarExpectationFunctionsToWrite() const;
 
   //! Transforms the model by replacing trend variables with a 1
   void removeTrendVariableFromEquations();
diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index e4a85a7d037891937e0fddc8e44c0d87ac185f67..3c9cc7bd528d4969297310fff697e0a287508cde 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -130,32 +130,32 @@ ExprNode::checkIfTemporaryTermThenWrite(ostream &output, ExprNodeOutputType outp
 void
 ExprNode::collectVariables(SymbolType type, set<int> &result) const
 {
-  set<pair<int, int> > symbs_lags;
+  set<pair<int, int>> symbs_lags;
   collectDynamicVariables(type, symbs_lags);
   transform(symbs_lags.begin(), symbs_lags.end(), inserter(result, result.begin()),
             boost::bind(&pair<int, int>::first, _1));
 }
 
 void
-ExprNode::collectEndogenous(set<pair<int, int> > &result) const
+ExprNode::collectEndogenous(set<pair<int, int>> &result) const
 {
-  set<pair<int, int> > symb_ids;
+  set<pair<int, int>> symb_ids;
   collectDynamicVariables(eEndogenous, symb_ids);
   for (const auto & symb_id : symb_ids)
     result.insert(make_pair(datatree.symbol_table.getTypeSpecificID(symb_id.first), symb_id.second));
 }
 
 void
-ExprNode::collectExogenous(set<pair<int, int> > &result) const
+ExprNode::collectExogenous(set<pair<int, int>> &result) const
 {
-  set<pair<int, int> > symb_ids;
+  set<pair<int, int>> symb_ids;
   collectDynamicVariables(eExogenous, symb_ids);
   for (const auto & symb_id : symb_ids)
     result.insert(make_pair(datatree.symbol_table.getTypeSpecificID(symb_id.first), symb_id.second));
 }
 
 void
-ExprNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+ExprNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                 map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                 bool is_matlab, NodeTreeReference tr) const
 {
@@ -165,16 +165,16 @@ ExprNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &refe
 void
 ExprNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                 temporary_terms_t &temporary_terms,
-                                map<expr_t, pair<int, int> > &first_occurence,
+                                map<expr_t, pair<int, int>> &first_occurence,
                                 int Curr_block,
-                                vector<vector<temporary_terms_t> > &v_temporary_terms,
+                                vector<vector<temporary_terms_t>> &v_temporary_terms,
                                 int equation) const
 {
   // Nothing to do for a terminal node
 }
 
 pair<int, expr_t >
-ExprNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+ExprNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   /* nothing to do */
   return (make_pair(0, (expr_t) nullptr));
@@ -406,12 +406,12 @@ NumConstNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-NumConstNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+NumConstNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
 }
 
 pair<int, expr_t >
-NumConstNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+NumConstNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   /* return the numercial constant */
   return (make_pair(0, datatree.AddNonNegativeConstant(datatree.num_constants.get(id))));
@@ -638,17 +638,17 @@ NumConstNode::isInStaticForm() const
 }
 
 void
-NumConstNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+NumConstNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
 }
 
 void
-NumConstNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+NumConstNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
 }
 
 void
-NumConstNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+NumConstNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
 }
 
@@ -1135,9 +1135,9 @@ VariableNode::compile(ostream &CompileCode, unsigned int &instruction_number,
 void
 VariableNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                     temporary_terms_t &temporary_terms,
-                                    map<expr_t, pair<int, int> > &first_occurence,
+                                    map<expr_t, pair<int, int>> &first_occurence,
                                     int Curr_block,
-                                    vector<vector<temporary_terms_t> > &v_temporary_terms,
+                                    vector<vector<temporary_terms_t>> &v_temporary_terms,
                                     int equation) const
 {
   if (type == eModelLocalVariable)
@@ -1157,7 +1157,7 @@ VariableNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-VariableNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+VariableNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
   if (type == type_arg)
     result.insert(make_pair(symb_id, lag));
@@ -1166,7 +1166,7 @@ VariableNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> >
 }
 
 pair<int, expr_t>
-VariableNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+VariableNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   /* The equation has to be normalized with respect to the current endogenous variable ascribed to it.
      The two input arguments are :
@@ -1795,17 +1795,17 @@ VariableNode::isInStaticForm() const
 }
 
 void
-VariableNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+VariableNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
 }
 
 void
-VariableNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+VariableNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
 }
 
 void
-VariableNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+VariableNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
 }
 
@@ -2136,7 +2136,7 @@ UnaryOpNode::cost(int cost, bool is_matlab) const
 }
 
 void
-UnaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+UnaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                    map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                    bool is_matlab, NodeTreeReference tr) const
 {
@@ -2159,9 +2159,9 @@ UnaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &r
 void
 UnaryOpNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                    temporary_terms_t &temporary_terms,
-                                   map<expr_t, pair<int, int> > &first_occurence,
+                                   map<expr_t, pair<int, int>> &first_occurence,
                                    int Curr_block,
-                                   vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                   vector< vector<temporary_terms_t>> &v_temporary_terms,
                                    int equation) const
 {
   expr_t this2 = const_cast<UnaryOpNode *>(this);
@@ -2681,13 +2681,13 @@ UnaryOpNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-UnaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+UnaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
   arg->collectDynamicVariables(type_arg, result);
 }
 
 pair<int, expr_t>
-UnaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+UnaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   pair<bool, expr_t > res = arg->normalizeEquation(var_endo, List_of_Op_RHS);
   int is_endogenous_present = res.first;
@@ -3403,19 +3403,19 @@ UnaryOpNode::isInStaticForm() const
 }
 
 void
-UnaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+UnaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
   arg->setVarExpectationIndex(var_model_info);
 }
 
 void
-UnaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+UnaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
   arg->walkPacParameters(pac_encountered, lhs, ec_params_and_vars, ar_params_and_vars);
 }
 
 void
-UnaryOpNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+UnaryOpNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
   arg->addParamInfoToPac(lhs_arg, ec_params_and_vars_arg, ar_params_and_vars_arg);
 }
@@ -3796,7 +3796,7 @@ BinaryOpNode::cost(int cost, bool is_matlab) const
 }
 
 void
-BinaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+BinaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                     map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                     bool is_matlab, NodeTreeReference tr) const
 {
@@ -3825,9 +3825,9 @@ BinaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &
 void
 BinaryOpNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                     temporary_terms_t &temporary_terms,
-                                    map<expr_t, pair<int, int> > &first_occurence,
+                                    map<expr_t, pair<int, int>> &first_occurence,
                                     int Curr_block,
-                                    vector<vector<temporary_terms_t> > &v_temporary_terms,
+                                    vector<vector<temporary_terms_t>> &v_temporary_terms,
                                     int equation) const
 {
   expr_t this2 = const_cast<BinaryOpNode *>(this);
@@ -4329,7 +4329,7 @@ BinaryOpNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-BinaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+BinaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
   arg1->collectDynamicVariables(type_arg, result);
   arg2->collectDynamicVariables(type_arg, result);
@@ -4389,11 +4389,11 @@ BinaryOpNode::Compute_RHS(expr_t arg1, expr_t arg2, int op, int op_type) const
 }
 
 pair<int, expr_t>
-BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   /* Checks if the current value of the endogenous variable related to the equation
      is present in the arguments of the binary operator. */
-  vector<pair<int, pair<expr_t, expr_t> > > List_of_Op_RHS1, List_of_Op_RHS2;
+  vector<pair<int, pair<expr_t, expr_t>>> List_of_Op_RHS1, List_of_Op_RHS2;
   int is_endogenous_present_1, is_endogenous_present_2;
   pair<int, expr_t> res;
   expr_t expr_t_1, expr_t_2;
@@ -4417,7 +4417,7 @@ BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr
       if (op_code == oEqual)       /* The end of the normalization process :
                                       All the operations needed to normalize the equation are applied. */
         {
-          pair<int, pair<expr_t, expr_t> > it;
+          pair<int, pair<expr_t, expr_t>> it;
           int oo = List_of_Op_RHS1.size();
           for (int i = 0; i < oo; i++)
             {
@@ -4443,7 +4443,7 @@ BinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr
           int oo = List_of_Op_RHS2.size();
           for (int i = 0; i < oo; i++)
             {
-              pair<int, pair<expr_t, expr_t> > it;
+              pair<int, pair<expr_t, expr_t>> it;
               it = List_of_Op_RHS2.back();
               List_of_Op_RHS2.pop_back();
               if (it.second.first && !it.second.second) /*Binary operator*/
@@ -5006,7 +5006,7 @@ BinaryOpNode::isInStaticForm() const
 }
 
 void
-BinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+BinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
   arg1->setVarExpectationIndex(var_model_info);
   arg2->setVarExpectationIndex(var_model_info);
@@ -5015,15 +5015,15 @@ BinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_mo
 void
 BinaryOpNode::walkPacParametersHelper(const expr_t arg1, const expr_t arg2,
                                       pair<int, int> &lhs,
-                                      set<pair<int, pair<int, int> > > &ec_params_and_vars,
-                                      set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+                                      set<pair<int, pair<int, int>>> &ec_params_and_vars,
+                                      set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
   set<int> params;
   arg1->collectVariables(eParameter, params);
   if (params.size() != 1)
     return;
 
-  set<pair<int, int> > endogs;
+  set<pair<int, int>> endogs;
   arg2->collectDynamicVariables(eEndogenous, endogs);
   if (endogs.size() == 1)
     ar_params_and_vars.insert(make_pair(*(params.begin()), *(endogs.begin())));
@@ -5047,7 +5047,7 @@ BinaryOpNode::walkPacParametersHelper(const expr_t arg1, const expr_t arg2,
 }
 
 void
-BinaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+BinaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
   if (op_code == oTimes)
     {
@@ -5060,7 +5060,7 @@ BinaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<
     }
   else if (op_code == oEqual)
     {
-      set<pair<int, int> > general_lhs;
+      set<pair<int, int>> general_lhs;
       arg1->collectDynamicVariables(eEndogenous, general_lhs);
       if (general_lhs.size() == 1)
         lhs = *(general_lhs.begin());
@@ -5071,7 +5071,7 @@ BinaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<
 }
 
 void
-BinaryOpNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+BinaryOpNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
   arg1->addParamInfoToPac(lhs_arg, ec_params_and_vars_arg, ar_params_and_vars_arg);
   arg2->addParamInfoToPac(lhs_arg, ec_params_and_vars_arg, ar_params_and_vars_arg);
@@ -5299,7 +5299,7 @@ TrinaryOpNode::cost(int cost, bool is_matlab) const
 }
 
 void
-TrinaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+TrinaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                      map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                      bool is_matlab, NodeTreeReference tr) const
 {
@@ -5327,9 +5327,9 @@ TrinaryOpNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> >
 void
 TrinaryOpNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector<vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector<vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const
 {
   expr_t this2 = const_cast<TrinaryOpNode *>(this);
@@ -5568,7 +5568,7 @@ TrinaryOpNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-TrinaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+TrinaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
   arg1->collectDynamicVariables(type_arg, result);
   arg2->collectDynamicVariables(type_arg, result);
@@ -5576,7 +5576,7 @@ TrinaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> >
 }
 
 pair<int, expr_t>
-TrinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+TrinaryOpNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   pair<int, expr_t> res = arg1->normalizeEquation(var_endo, List_of_Op_RHS);
   bool is_endogenous_present_1 = res.first;
@@ -5910,7 +5910,7 @@ TrinaryOpNode::isInStaticForm() const
 }
 
 void
-TrinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+TrinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
   arg1->setVarExpectationIndex(var_model_info);
   arg2->setVarExpectationIndex(var_model_info);
@@ -5918,7 +5918,7 @@ TrinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_m
 }
 
 void
-TrinaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+TrinaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
   arg1->walkPacParameters(pac_encountered, lhs, ec_params_and_vars, ar_params_and_vars);
   arg2->walkPacParameters(pac_encountered, lhs, ec_params_and_vars, ar_params_and_vars);
@@ -5926,7 +5926,7 @@ TrinaryOpNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set
 }
 
 void
-TrinaryOpNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+TrinaryOpNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
   arg1->addParamInfoToPac(lhs_arg, ec_params_and_vars_arg, ar_params_and_vars_arg);
   arg2->addParamInfoToPac(lhs_arg, ec_params_and_vars_arg, ar_params_and_vars_arg);
@@ -6035,7 +6035,7 @@ AbstractExternalFunctionNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-AbstractExternalFunctionNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+AbstractExternalFunctionNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
   for (auto argument : arguments)
     argument->collectDynamicVariables(type_arg, result);
@@ -6299,7 +6299,7 @@ AbstractExternalFunctionNode::getIndxInTefTerms(int the_symb_id, const deriv_nod
 }
 
 void
-AbstractExternalFunctionNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+AbstractExternalFunctionNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                             map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                             bool is_matlab, NodeTreeReference tr) const
 {
@@ -6395,21 +6395,21 @@ AbstractExternalFunctionNode::isInStaticForm() const
 }
 
 void
-AbstractExternalFunctionNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+AbstractExternalFunctionNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
   for (auto argument : arguments)
     argument->setVarExpectationIndex(var_model_info);
 }
 
 void
-AbstractExternalFunctionNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+AbstractExternalFunctionNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
   for (auto argument : arguments)
     argument->walkPacParameters(pac_encountered, lhs, ec_params_and_vars, ar_params_and_vars);
 }
 
 void
-AbstractExternalFunctionNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+AbstractExternalFunctionNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
   for (auto argument : arguments)
     argument->addParamInfoToPac(lhs_arg, ec_params_and_vars_arg, ar_params_and_vars_arg);
@@ -6439,9 +6439,9 @@ AbstractExternalFunctionNode::getEndosAndMaxLags(map<string, int> &model_endos_a
 }
 
 pair<int, expr_t>
-AbstractExternalFunctionNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const
+AbstractExternalFunctionNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const
 {
-  vector<pair<bool, expr_t> > V_arguments;
+  vector<pair<bool, expr_t>> V_arguments;
   vector<expr_t> V_expr_t;
   bool present = false;
   for (auto argument : arguments)
@@ -6545,9 +6545,9 @@ ExternalFunctionNode::composeDerivatives(const vector<expr_t> &dargs)
 void
 ExternalFunctionNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                             temporary_terms_t &temporary_terms,
-                                            map<expr_t, pair<int, int> > &first_occurence,
+                                            map<expr_t, pair<int, int>> &first_occurence,
                                             int Curr_block,
-                                            vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                            vector< vector<temporary_terms_t>> &v_temporary_terms,
                                             int equation) const
 {
   expr_t this2 = const_cast<ExternalFunctionNode *>(this);
@@ -6854,9 +6854,9 @@ FirstDerivExternalFunctionNode::FirstDerivExternalFunctionNode(DataTree &datatre
 void
 FirstDerivExternalFunctionNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                                       temporary_terms_t &temporary_terms,
-                                                      map<expr_t, pair<int, int> > &first_occurence,
+                                                      map<expr_t, pair<int, int>> &first_occurence,
                                                       int Curr_block,
-                                                      vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                                      vector< vector<temporary_terms_t>> &v_temporary_terms,
                                                       int equation) const
 {
   expr_t this2 = const_cast<FirstDerivExternalFunctionNode *>(this);
@@ -7240,9 +7240,9 @@ SecondDerivExternalFunctionNode::SecondDerivExternalFunctionNode(DataTree &datat
 void
 SecondDerivExternalFunctionNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                                        temporary_terms_t &temporary_terms,
-                                                       map<expr_t, pair<int, int> > &first_occurence,
+                                                       map<expr_t, pair<int, int>> &first_occurence,
                                                        int Curr_block,
-                                                       vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                                       vector< vector<temporary_terms_t>> &v_temporary_terms,
                                                        int equation) const
 {
   expr_t this2 = const_cast<SecondDerivExternalFunctionNode *>(this);
@@ -7573,7 +7573,7 @@ VarExpectationNode::VarExpectationNode(DataTree &datatree_arg,
 }
 
 void
-VarExpectationNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+VarExpectationNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                           map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                           bool is_matlab, NodeTreeReference tr) const
 {
@@ -7583,9 +7583,9 @@ VarExpectationNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReferenc
 void
 VarExpectationNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                           temporary_terms_t &temporary_terms,
-                                          map<expr_t, pair<int, int> > &first_occurence,
+                                          map<expr_t, pair<int, int>> &first_occurence,
                                           int Curr_block,
-                                          vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                          vector< vector<temporary_terms_t>> &v_temporary_terms,
                                           int equation) const
 {
   expr_t this2 = const_cast<VarExpectationNode *>(this);
@@ -7747,7 +7747,7 @@ VarExpectationNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-VarExpectationNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+VarExpectationNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
 }
 
@@ -7770,7 +7770,7 @@ VarExpectationNode::compile(ostream &CompileCode, unsigned int &instruction_numb
 }
 
 pair<int, expr_t >
-VarExpectationNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+VarExpectationNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   return make_pair(0, datatree.AddVariableInternal(symb_id, 0));
 }
@@ -7912,19 +7912,19 @@ VarExpectationNode::getEndosAndMaxLags(map<string, int> &model_endos_and_lags) c
 }
 
 void
-VarExpectationNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+VarExpectationNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
   vector<string> vs = var_model_info[model_name].first.get_symbols();
   yidx = find(vs.begin(), vs.end(), datatree.symbol_table.getName(symb_id)) - vs.begin();
 }
 
 void
-VarExpectationNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+VarExpectationNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
 }
 
 void
-VarExpectationNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+VarExpectationNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
 }
 
@@ -7962,7 +7962,7 @@ PacExpectationNode::PacExpectationNode(DataTree &datatree_arg,
 }
 
 void
-PacExpectationNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+PacExpectationNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                           map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                           bool is_matlab, NodeTreeReference tr) const
 {
@@ -7972,9 +7972,9 @@ PacExpectationNode::computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReferenc
 void
 PacExpectationNode::computeTemporaryTerms(map<expr_t, int> &reference_count,
                                           temporary_terms_t &temporary_terms,
-                                          map<expr_t, pair<int, int> > &first_occurence,
+                                          map<expr_t, pair<int, int>> &first_occurence,
                                           int Curr_block,
-                                          vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                          vector< vector<temporary_terms_t>> &v_temporary_terms,
                                           int equation) const
 {
   expr_t this2 = const_cast<PacExpectationNode *>(this);
@@ -8188,7 +8188,7 @@ PacExpectationNode::collectVARLHSVariable(set<expr_t> &result) const
 }
 
 void
-PacExpectationNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
+PacExpectationNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const
 {
 }
 
@@ -8217,7 +8217,7 @@ PacExpectationNode::countDiffs() const
 }
 
 pair<int, expr_t >
-PacExpectationNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const
+PacExpectationNode::normalizeEquation(int var_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const
 {
   //COME BACK
   return make_pair(0, const_cast<PacExpectationNode *>(this));
@@ -8354,7 +8354,7 @@ PacExpectationNode::getEndosAndMaxLags(map<string, int> &model_endos_and_lags) c
 }
 
 void
-PacExpectationNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info)
+PacExpectationNode::setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info)
 {
 }
 
@@ -8376,13 +8376,13 @@ PacExpectationNode::writeJsonOutput(ostream &output,
 }
 
 void
-PacExpectationNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &ar_params_and_vars) const
+PacExpectationNode::walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &ar_params_and_vars) const
 {
   pac_encountered = true;
 }
 
 void
-PacExpectationNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg)
+PacExpectationNode::addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg)
 {
   if (lhs_arg.first == -1)
     {
diff --git a/src/ExprNode.hh b/src/ExprNode.hh
index 410e15a5f25172c2e36f3092acdf59e016562138..d387515a891059c95a8d96fc7252adcb5cf64d41 100644
--- a/src/ExprNode.hh
+++ b/src/ExprNode.hh
@@ -60,11 +60,11 @@ typedef map<int, int> map_idx_t;
 typedef map<int, double> eval_context_t;
 
 //! Type for tracking first/second derivative functions that have already been written as temporary terms
-typedef map<pair<int, vector<expr_t> >, int> deriv_node_temp_terms_t;
+typedef map<pair<int, vector<expr_t>>, int> deriv_node_temp_terms_t;
 
 //! Type for the substitution map used in the process of substitutitng diff expressions
 //! diff_table[static_expr_t][lag] -> [dynamic_expr_t]
-typedef map<expr_t, map<int, expr_t> > diff_table_t;
+typedef map<expr_t, map<int, expr_t>> diff_table_t;
 
 //! Possible types of output when writing ExprNode(s)
 enum ExprNodeOutputType
@@ -180,10 +180,10 @@ class ExprNode
       //! For creating equation cross references
       struct EquationInfo
       {
-        set<pair<int, int> > param;
-        set<pair<int, int> > endo;
-        set<pair<int, int> > exo;
-        set<pair<int, int> > exo_det;
+        set<pair<int, int>> param;
+        set<pair<int, int>> endo;
+        set<pair<int, int>> exo;
+        set<pair<int, int>> exo_det;
       };
 
       //! If this node is a temporary term, writes its temporary term representation
@@ -218,7 +218,7 @@ class ExprNode
 
       //! Fills temporary_terms set, using reference counts
       /*! A node will be marked as a temporary term if it is referenced at least two times (i.e. has at least two parents), and has a computing cost (multiplied by reference count) greater to datatree.min_cost */
-      virtual void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+      virtual void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                          map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                          bool is_matlab, NodeTreeReference tr) const;
 
@@ -276,7 +276,7 @@ class ExprNode
         Note that model local variables are substituted by their expression in the computation
         (and added if type_arg = ModelLocalVariable).
       */
-      virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const = 0;
+      virtual void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const = 0;
 
       //! Find lowest lag for VAR
       virtual int VarMinLag() const = 0;
@@ -302,7 +302,7 @@ class ExprNode
         They are added to the set given in argument.
         Note that model local variables are substituted by their expression in the computation.
       */
-      virtual void collectEndogenous(set<pair<int, int> > &result) const;
+      virtual void collectEndogenous(set<pair<int, int>> &result) const;
 
       //! Computes the set of exogenous variables in the expression
       /*!
@@ -310,15 +310,15 @@ class ExprNode
         They are added to the set given in argument.
         Note that model local variables are substituted by their expression in the computation.
       */
-      virtual void collectExogenous(set<pair<int, int> > &result) const;
+      virtual void collectExogenous(set<pair<int, int>> &result) const;
 
       virtual void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const = 0;
 
       virtual void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                          temporary_terms_t &temporary_terms,
-                                         map<expr_t, pair<int, int> > &first_occurence,
+                                         map<expr_t, pair<int, int>> &first_occurence,
                                          int Curr_block,
-                                         vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                         vector< vector<temporary_terms_t>> &v_temporary_terms,
                                          int equation) const;
 
       class EvalException
@@ -347,7 +347,7 @@ class ExprNode
       //  virtual void computeXrefs(set<int> &param, set<int> &endo, set<int> &exo, set<int> &exo_det) const = 0;
       virtual void computeXrefs(EquationInfo &ei) const = 0;
       //! Try to normalize an equation linear in its endogenous variable
-      virtual pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > > &List_of_Op_RHS) const = 0;
+      virtual pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>> &List_of_Op_RHS) const = 0;
 
       //! Returns the maximum lead of endogenous in this expression
       /*! Always returns a non-negative value */
@@ -526,16 +526,16 @@ class ExprNode
       virtual expr_t substituteStaticAuxiliaryVariable() const = 0;
 
       //! Add index information for var_model variables
-      virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) = 0;
+      virtual void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) = 0;
 
       //! Returns true if model_info_name is referenced by a VarExpectationNode
       virtual bool isVarModelReferenced(const string &model_info_name) const = 0;
 
       //! Fills parameter information related to PAC equation
-      virtual void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const = 0;
+      virtual void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const = 0;
 
       //! Adds PAC equation param info to pac_expectation
-      virtual void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) = 0;
+      virtual void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) = 0;
 
       //! Fills var_model info for pac_expectation node
       virtual void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) = 0;
@@ -577,13 +577,13 @@ public:
   void writeJsonOutput(ostream &output, const temporary_terms_t &temporary_terms, const deriv_node_temp_terms_t &tef_terms, const bool isdynamic) const override;
   bool containsExternalFunction() const override;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   double eval(const eval_context_t &eval_context) const noexcept(false) override;
   void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, const deriv_node_temp_terms_t &tef_terms) const override;
   expr_t toStatic(DataTree &static_datatree) const override;
   void computeXrefs(EquationInfo &ei) const override;
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   expr_t getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables) override;
   int maxEndoLead() const override;
   int maxExoLead() const override;
@@ -619,9 +619,9 @@ public:
   expr_t cloneDynamic(DataTree &dynamic_datatree) const override;
   expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
@@ -646,12 +646,12 @@ public:
   void writeJsonOutput(ostream &output, const temporary_terms_t &temporary_terms, const deriv_node_temp_terms_t &tef_terms, const bool isdynamic) const override;
   bool containsExternalFunction() const override;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   void computeTemporaryTerms(map<expr_t, int > &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   double eval(const eval_context_t &eval_context) const noexcept(false) override;
@@ -673,7 +673,7 @@ public:
   {
     return lag;
   };
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   expr_t getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables) override;
   int maxEndoLead() const override;
   int maxExoLead() const override;
@@ -709,9 +709,9 @@ public:
   expr_t cloneDynamic(DataTree &dynamic_datatree) const override;
   expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
@@ -740,7 +740,7 @@ private:
 public:
   UnaryOpNode(DataTree &datatree_arg, UnaryOpcode op_code_arg, const expr_t arg_arg, int expectation_information_set_arg, int param1_symb_id_arg, int param2_symb_id_arg, string adl_param_name_arg, vector<int> adl_lags_arg);
   void prepareForDerivation() override;
-  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                      map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                      bool is_matlab, NodeTreeReference tr) const override;
   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;
@@ -760,12 +760,12 @@ public:
                                              deriv_node_temp_terms_t &tef_terms) const override;
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   static double eval_opcode(UnaryOpcode op_code, double v) noexcept(false);
   double eval(const eval_context_t &eval_context) const noexcept(false) override;
@@ -784,7 +784,7 @@ public:
   };
   expr_t toStatic(DataTree &static_datatree) const override;
   void computeXrefs(EquationInfo &ei) const override;
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   expr_t getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables) override;
   int maxEndoLead() const override;
   int maxExoLead() const override;
@@ -823,9 +823,9 @@ public:
   expr_t cloneDynamic(DataTree &dynamic_datatree) const override;
   expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
@@ -855,7 +855,7 @@ public:
   void prepareForDerivation() override;
   int precedenceJson(const temporary_terms_t &temporary_terms) const override;
   int precedence(ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms) const override;
-  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                      map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                      bool is_matlab, NodeTreeReference tr) const override;
   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;
@@ -875,12 +875,12 @@ public:
                                              deriv_node_temp_terms_t &tef_terms) const override;
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   static double eval_opcode(double v1, BinaryOpcode op_code, double v2, int derivOrder) noexcept(false);
   double eval(const eval_context_t &eval_context) const noexcept(false) override;
@@ -911,11 +911,11 @@ public:
   }
   void walkPacParametersHelper(const expr_t arg1, const expr_t arg2,
                                pair<int, int> &lhs,
-                               set<pair<int, pair<int, int> > > &ec_params_and_vars,
-                               set<pair<int, pair<int, int> > > &ar_params_and_vars) const;
+                               set<pair<int, pair<int, int>>> &ec_params_and_vars,
+                               set<pair<int, pair<int, int>>> &ar_params_and_vars) const;
   expr_t toStatic(DataTree &static_datatree) const override;
   void computeXrefs(EquationInfo &ei) const override;
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   expr_t getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables) override;
   int maxEndoLead() const override;
   int maxExoLead() const override;
@@ -959,9 +959,9 @@ public:
   //! Returns the non-zero hand-side of an equation (that must have a hand side equal to zero)
   expr_t getNonZeroPartofEquation() const;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &ar_params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &ar_params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
@@ -989,7 +989,7 @@ public:
                 TrinaryOpcode op_code_arg, const expr_t arg2_arg, const expr_t arg3_arg);
   void prepareForDerivation() override;
   int precedence(ExprNodeOutputType output_type, const temporary_terms_t &temporary_terms) const override;
-  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                      map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                      bool is_matlab, NodeTreeReference tr) const override;
   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;
@@ -1009,19 +1009,19 @@ public:
                                              deriv_node_temp_terms_t &tef_terms) const override;
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   static double eval_opcode(double v1, TrinaryOpcode op_code, double v2, double v3) noexcept(false);
   double eval(const eval_context_t &eval_context) const noexcept(false) override;
   void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, const deriv_node_temp_terms_t &tef_terms) const override;
   expr_t toStatic(DataTree &static_datatree) const override;
   void computeXrefs(EquationInfo &ei) const override;
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   expr_t getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables) override;
   int maxEndoLead() const override;
   int maxExoLead() const override;
@@ -1059,9 +1059,9 @@ public:
   expr_t cloneDynamic(DataTree &dynamic_datatree) const override;
   expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
@@ -1097,7 +1097,7 @@ public:
   AbstractExternalFunctionNode(DataTree &datatree_arg, int symb_id_arg,
                                vector<expr_t> arguments_arg);
   void prepareForDerivation() override;
-  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                      map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                      bool is_matlab, NodeTreeReference tr) const override;
   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 = 0;
@@ -1117,12 +1117,12 @@ public:
                                              deriv_node_temp_terms_t &tef_terms) const override = 0;
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override = 0;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   double eval(const eval_context_t &eval_context) const noexcept(false) override;
   unsigned int compileExternalFunctionArguments(ostream &CompileCode, unsigned int &instruction_number,
@@ -1133,7 +1133,7 @@ public:
   void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, const deriv_node_temp_terms_t &tef_terms) const override = 0;
   expr_t toStatic(DataTree &static_datatree) const override = 0;
   void computeXrefs(EquationInfo &ei) const override = 0;
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   expr_t getChainRuleDerivative(int deriv_id, const map<int, expr_t> &recursive_variables) override;
   int maxEndoLead() const override;
   int maxExoLead() const override;
@@ -1171,9 +1171,9 @@ public:
   expr_t cloneDynamic(DataTree &dynamic_datatree) const override = 0;
   expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
@@ -1208,9 +1208,9 @@ public:
                                              deriv_node_temp_terms_t &tef_terms) const override;
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   void compile(ostream &CompileCode, unsigned int &instruction_number, bool lhs_rhs, const temporary_terms_t &temporary_terms, const map_idx_t &map_idx, bool dynamic, bool steady_dynamic, const deriv_node_temp_terms_t &tef_terms) const override;
   expr_t toStatic(DataTree &static_datatree) const override;
@@ -1233,9 +1233,9 @@ public:
                                  int inputIndex_arg);
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   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;
   void writeJsonOutput(ostream &output, const temporary_terms_t &temporary_terms, const deriv_node_temp_terms_t &tef_terms, const bool isdynamic) const override;
@@ -1277,9 +1277,9 @@ public:
                                   int inputIndex2_arg);
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   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;
   void writeJsonOutput(ostream &output, const temporary_terms_t &temporary_terms, const deriv_node_temp_terms_t &tef_terms, const bool isdynamic) const override;
@@ -1314,15 +1314,15 @@ private:
   int yidx;
 public:
   VarExpectationNode(DataTree &datatree_arg, int symb_id_arg, int forecast_horizon_arg, const string &model_name);
-  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                      map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                      bool is_matlab, NodeTreeReference tr) const override;
   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;
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   expr_t toStatic(DataTree &static_datatree) const override;
   expr_t cloneDynamic(DataTree &dynamic_datatree) const override;
@@ -1354,14 +1354,14 @@ public:
   expr_t substituteDiff(DataTree &static_datatree, diff_table_t &diff_table, subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const override;
   expr_t substituteUnaryOpNodes(DataTree &static_datatree, diff_table_t &nodes, subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const override;
   expr_t substitutePacExpectation(map<const PacExpectationNode *, const BinaryOpNode *> &subst_table) override;
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   void compile(ostream &CompileCode, unsigned int &instruction_number,
                        bool lhs_rhs, const temporary_terms_t &temporary_terms,
                        const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
                        const deriv_node_temp_terms_t &tef_terms) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   bool containsEndogenous() const override;
   bool containsExogenous() const override;
   int countDiffs() const override;
@@ -1373,9 +1373,9 @@ public:
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
@@ -1395,19 +1395,19 @@ private:
   int max_lag;
   vector<int> h0_indices, h1_indices;
   int growth_param_index, equation_number;
-  set<pair<int, pair<int, int> > > ec_params_and_vars;
-  set<pair<int, pair<int, int> > > ar_params_and_vars;
+  set<pair<int, pair<int, int>>> ec_params_and_vars;
+  set<pair<int, pair<int, int>>> ar_params_and_vars;
 public:
   PacExpectationNode(DataTree &datatree_arg, string model_name);
-  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference> > &reference_count,
+  void computeTemporaryTerms(map<expr_t, pair<int, NodeTreeReference>> &reference_count,
                                      map<NodeTreeReference, temporary_terms_t> &temp_terms_map,
                                      bool is_matlab, NodeTreeReference tr) const override;
   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;
   void computeTemporaryTerms(map<expr_t, int> &reference_count,
                                      temporary_terms_t &temporary_terms,
-                                     map<expr_t, pair<int, int> > &first_occurence,
+                                     map<expr_t, pair<int, int>> &first_occurence,
                                      int Curr_block,
-                                     vector< vector<temporary_terms_t> > &v_temporary_terms,
+                                     vector< vector<temporary_terms_t>> &v_temporary_terms,
                                      int equation) const override;
   expr_t toStatic(DataTree &static_datatree) const override;
   expr_t cloneDynamic(DataTree &dynamic_datatree) const override;
@@ -1439,14 +1439,14 @@ public:
   expr_t substituteDiff(DataTree &static_datatree, diff_table_t &diff_table, subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const override;
   expr_t substituteUnaryOpNodes(DataTree &static_datatree, diff_table_t &nodes, subst_table_t &subst_table, vector<BinaryOpNode *> &neweqs) const override;
   expr_t substitutePacExpectation(map<const PacExpectationNode *, const BinaryOpNode *> &subst_table) override;
-  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t> > >  &List_of_Op_RHS) const override;
+  pair<int, expr_t> normalizeEquation(int symb_id_endo, vector<pair<int, pair<expr_t, expr_t>>>  &List_of_Op_RHS) const override;
   void compile(ostream &CompileCode, unsigned int &instruction_number,
                        bool lhs_rhs, const temporary_terms_t &temporary_terms,
                        const map_idx_t &map_idx, bool dynamic, bool steady_dynamic,
                        const deriv_node_temp_terms_t &tef_terms) const override;
   void collectTemporary_terms(const temporary_terms_t &temporary_terms, temporary_terms_inuse_t &temporary_terms_inuse, int Curr_Block) const override;
   void collectVARLHSVariable(set<expr_t> &result) const override;
-  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const override;
+  void collectDynamicVariables(SymbolType type_arg, set<pair<int, int>> &result) const override;
   bool containsEndogenous() const override;
   bool containsExogenous() const override;
   int countDiffs() const override;
@@ -1458,9 +1458,9 @@ public:
   expr_t detrend(int symb_id, bool log_trend, expr_t trend) const override;
   expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const override;
   bool isInStaticForm() const override;
-  void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info) override;
-  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int> > > &ec_params_and_vars, set<pair<int, pair<int, int> > > &params_and_vars) const override;
-  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int> > > &ec_params_and_vars_arg, set<pair<int, pair<int, int> > > &params_and_vars_arg) override;
+  void setVarExpectationIndex(map<string, pair<SymbolList, int>> &var_model_info) override;
+  void walkPacParameters(bool &pac_encountered, pair<int, int> &lhs, set<pair<int, pair<int, int>>> &ec_params_and_vars, set<pair<int, pair<int, int>>> &params_and_vars) const override;
+  void addParamInfoToPac(pair<int, int> &lhs_arg, set<pair<int, pair<int, int>>> &ec_params_and_vars_arg, set<pair<int, pair<int, int>>> &params_and_vars_arg) override;
   void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int equation_number_arg) override;
   bool isVarModelReferenced(const string &model_info_name) const override;
   void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const override;
diff --git a/src/MinimumFeedbackSet.hh b/src/MinimumFeedbackSet.hh
index 8397b95021d60727234534d7a03bda411f7a796e..d0649a410058361c4739f77eddfaf353a8147edc 100644
--- a/src/MinimumFeedbackSet.hh
+++ b/src/MinimumFeedbackSet.hh
@@ -33,7 +33,7 @@ namespace MFS
                    property<vertex_index1_t, int,
                             property<vertex_degree_t, int,
                                      property<vertex_in_degree_t, int,
-                                              property<vertex_out_degree_t, int > > > > > VertexProperty_t;
+                                              property<vertex_out_degree_t, int >>>>> VertexProperty_t;
   typedef adjacency_list<listS, listS, bidirectionalS, VertexProperty_t> AdjacencyList_t;
   typedef map<graph_traits<AdjacencyList_t>::vertex_descriptor, default_color_type> color_t;
   using vector_vertex_descriptor_t = vector<AdjacencyList_t::vertex_descriptor>;
diff --git a/src/ModFile.cc b/src/ModFile.cc
index b4ab5d00d1f27270edfd454176ea452c0c4d3bfd..e3a80645fa1a6de98cf711f6099bd7bbe8fc6d50 100644
--- a/src/ModFile.cc
+++ b/src/ModFile.cc
@@ -372,11 +372,11 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
   dynamic_model.substituteDiff(diff_static_model, diff_subst_table);
 
   // Var Model
-  map<string, pair<SymbolList, int> > var_model_info_var_expectation;
-  map<string, vector<string> > var_model_eq_tags;
-  map<string, pair<pair<pair<vector<int>, vector<expr_t> >,
-                        pair<vector<bool>, vector<int> > >,
-                   pair<pair<int, vector<bool> >, vector<int> > > >
+  map<string, pair<SymbolList, int>> var_model_info_var_expectation;
+  map<string, vector<string>> var_model_eq_tags;
+  map<string, pair<pair<pair<vector<int>, vector<expr_t>>,
+                        pair<vector<bool>, vector<int>>>,
+                   pair<pair<int, vector<bool>>, vector<int>>>>
     var_model_info_pac_expectation;
   for (vector<Statement *>::const_iterator it = statements.begin();
        it != statements.end(); it++)
@@ -388,7 +388,7 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
           vms->getVarModelInfo(var_model_name, var_model_info_var_expectation, var_model_eq_tags);
           vector<expr_t> lhs_expr_t;
           vector<int> lhs, eqnumber, orig_diff_var;
-          vector<set<pair<int, int> > > rhs;
+          vector<set<pair<int, int>>> rhs;
           vector<bool> nonstationary, diff;
           vector<string> eqtags = var_model_eq_tags[var_model_name];
           dynamic_model.getVarModelVariablesFromEqTags(eqtags,
@@ -406,7 +406,7 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
       auto *pms = dynamic_cast<PacModelStatement *>(*it);
       if (pms != nullptr)
          {
-           pair<string, pair<string, pair<string, pair<int, map<string, int> > > > >
+           pair<string, pair<string, pair<string, pair<int, map<string, int>>>>>
              pac_model_info_pac_expectation;
            pms->getPacModelInfoForPacExpectation(pac_model_info_pac_expectation);
            string pac_model_name = pac_model_info_pac_expectation.first;
@@ -530,7 +530,7 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
           vms->getVarModelInfo(var_model_name, var_model_info_var_expectation, var_model_eq_tags);
           vector<expr_t> lhs_expr_t;
           vector<int> lhs, eqnumber, orig_diff_var;
-          vector<set<pair<int, int> > > rhs;
+          vector<set<pair<int, int>>> rhs;
           vector<bool> nonstationary, diff;
           vector<string> eqtags = var_model_eq_tags[var_model_name];
           dynamic_model.getVarModelVariablesFromEqTags(eqtags,
diff --git a/src/ModelTree.cc b/src/ModelTree.cc
index ab8b8016454fa40274251a6a6d432a00dc5faca1..5c459fdba0b3f17eedeb54a9e13c43593ed0a1b8 100644
--- a/src/ModelTree.cc
+++ b/src/ModelTree.cc
@@ -49,7 +49,7 @@ ModelTree::computeNormalization(const jacob_map_t &contemporaneous_jacobian, boo
   BipartiteGraph g(2 * n);
 
   // Fill in the graph
-  set<pair<int, int> > endo;
+  set<pair<int, int>> endo;
 
   for (const auto & it : contemporaneous_jacobian)
     add_edge(it.first.first + n, it.first.second, g);
@@ -187,7 +187,7 @@ ModelTree::computeNonSingularNormalization(jacob_map_t &contemporaneous_jacobian
       cout << "Normalization failed with cutoff, trying symbolic normalization..." << endl;
       //if no non-singular normalization can be found, try to find a normalization even with a potential singularity
       jacob_map_t tmp_normalized_contemporaneous_jacobian;
-      set<pair<int, int> > endo;
+      set<pair<int, int>> endo;
       for (int i = 0; i < n; i++)
         {
           endo.clear();
@@ -242,7 +242,7 @@ ModelTree::computeNormalizedEquations(multimap<int, int> &endo2eqs) const
       if (symbol_table.getType(symb_id) != eEndogenous)
         continue;
 
-      set<pair<int, int> > endo;
+      set<pair<int, int>> endo;
       equations[i]->get_arg2()->collectEndogenous(endo);
       if (endo.find(make_pair(symbol_table.getTypeSpecificID(symb_id), 0)) != endo.end())
         continue;
@@ -256,7 +256,7 @@ void
 ModelTree::evaluateAndReduceJacobian(const eval_context_t &eval_context, jacob_map_t &contemporaneous_jacobian, jacob_map_t &static_jacobian, dynamic_jacob_map_t &dynamic_jacobian, double cutoff, bool verbose)
 {
   int nb_elements_contemparenous_Jacobian = 0;
-  set<pair<int, int> > jacobian_elements_to_delete;
+  set<pair<int, int>> jacobian_elements_to_delete;
   for (first_derivatives_t::const_iterator it = first_derivatives.begin();
        it != first_derivatives.end(); it++)
     {
@@ -335,7 +335,7 @@ ModelTree::computePrologueAndEpilogue(const jacob_map_t &static_jacobian_arg, ve
     }
   if (cutoff == 0)
     {
-      set<pair<int, int> > endo;
+      set<pair<int, int>> endo;
       for (int i = 0; i < n; i++)
         {
           endo.clear();
@@ -437,7 +437,7 @@ ModelTree::computePrologueAndEpilogue(const jacob_map_t &static_jacobian_arg, ve
 }
 
 equation_type_and_normalized_equation_t
-ModelTree::equationTypeDetermination(const map<pair<int, pair<int, int> >, expr_t> &first_order_endo_derivatives, const vector<int> &Index_Var_IM, const vector<int> &Index_Equ_IM, int mfs) const
+ModelTree::equationTypeDetermination(const map<pair<int, pair<int, int>>, expr_t> &first_order_endo_derivatives, const vector<int> &Index_Var_IM, const vector<int> &Index_Equ_IM, int mfs) const
 {
   expr_t lhs;
   BinaryOpNode *eq_node;
@@ -454,7 +454,7 @@ ModelTree::equationTypeDetermination(const map<pair<int, pair<int, int> >, expr_
       pair<bool, expr_t> res;
       if (derivative != first_order_endo_derivatives.end())
         {
-          set<pair<int, int> > result;
+          set<pair<int, int>> result;
           derivative->second->collectEndogenous(result);
           auto d_endo_variable = result.find(make_pair(var, 0));
           //Determine whether the equation could be evaluated rather than to be solved
@@ -464,7 +464,7 @@ ModelTree::equationTypeDetermination(const map<pair<int, pair<int, int> >, expr_
             }
           else
             {
-              vector<pair<int, pair<expr_t, expr_t> > > List_of_Op_RHS;
+              vector<pair<int, pair<expr_t, expr_t>>> List_of_Op_RHS;
               res =  equations[eq]->normalizeEquation(var, List_of_Op_RHS);
               if (mfs == 2)
                 {
@@ -528,7 +528,7 @@ ModelTree::getVariableLeadLagByBlock(const dynamic_jacob_map_t &dynamic_jacobian
 }
 
 void
-ModelTree::computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob_map_t &static_jacobian, const dynamic_jacob_map_t &dynamic_jacobian, vector<int> &equation_reordered, vector<int> &variable_reordered, vector<pair<int, int> > &blocks, const equation_type_and_normalized_equation_t &Equation_Type, bool verbose_, bool select_feedback_variable, int mfs, vector<int> &inv_equation_reordered, vector<int> &inv_variable_reordered, lag_lead_vector_t &equation_lag_lead, lag_lead_vector_t &variable_lag_lead, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed) const
+ModelTree::computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob_map_t &static_jacobian, const dynamic_jacob_map_t &dynamic_jacobian, vector<int> &equation_reordered, vector<int> &variable_reordered, vector<pair<int, int>> &blocks, const equation_type_and_normalized_equation_t &Equation_Type, bool verbose_, bool select_feedback_variable, int mfs, vector<int> &inv_equation_reordered, vector<int> &inv_variable_reordered, lag_lead_vector_t &equation_lag_lead, lag_lead_vector_t &variable_lag_lead, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed) const
 {
   int nb_var = variable_reordered.size();
   int n = nb_var - prologue - epilogue;
@@ -550,7 +550,7 @@ ModelTree::computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob
   jacob_map_t tmp_normalized_contemporaneous_jacobian;
   if (cutoff == 0)
     {
-      set<pair<int, int> > endo;
+      set<pair<int, int>> endo;
       for (int i = 0; i < nb_var; i++)
         {
           endo.clear();
@@ -576,7 +576,7 @@ ModelTree::computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob
   // Compute strongly connected components
   int num = strong_components(G2, endo2block_map);
 
-  blocks = vector<pair<int, int> >(num, make_pair(0, 0));
+  blocks = vector<pair<int, int>>(num, make_pair(0, 0));
 
   // Create directed acyclic graph associated to the strongly connected components
   typedef adjacency_list<vecS, vecS, directedS> DirectedGraph;
@@ -608,7 +608,7 @@ ModelTree::computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob
   //   - first set = equations belonging to the block,
   //   - second set = the feeback variables,
   //   - third vector = the reordered non-feedback variables.
-  vector<pair<set<int>, pair<set<int>, vector<int> > > > components_set(num);
+  vector<pair<set<int>, pair<set<int>, vector<int>>>> components_set(num);
   for (unsigned int i = 0; i < endo2block.size(); i++)
     {
       endo2block[i] = unordered2ordered[endo2block[i]];
@@ -764,7 +764,7 @@ ModelTree::computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob
 }
 
 void
-ModelTree::printBlockDecomposition(const vector<pair<int, int> > &blocks) const
+ModelTree::printBlockDecomposition(const vector<pair<int, int>> &blocks) const
 {
   int largest_block = 0;
   int Nb_SimulBlocks = 0;
@@ -793,7 +793,7 @@ ModelTree::printBlockDecomposition(const vector<pair<int, int> > &blocks) const
 }
 
 block_type_firstequation_size_mfs_t
-ModelTree::reduceBlocksAndTypeDetermination(const dynamic_jacob_map_t &dynamic_jacobian, vector<pair<int, int> > &blocks, const equation_type_and_normalized_equation_t &Equation_Type, const vector<int> &variable_reordered, const vector<int> &equation_reordered, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed, vector<pair< pair<int, int>, pair<int, int> > > &block_col_type)
+ModelTree::reduceBlocksAndTypeDetermination(const dynamic_jacob_map_t &dynamic_jacobian, vector<pair<int, int>> &blocks, const equation_type_and_normalized_equation_t &Equation_Type, const vector<int> &variable_reordered, const vector<int> &equation_reordered, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed, vector<pair< pair<int, int>, pair<int, int>>> &block_col_type)
 {
   int i = 0;
   int count_equ = 0, blck_count_simult = 0;
@@ -827,7 +827,7 @@ ModelTree::reduceBlocksAndTypeDetermination(const dynamic_jacob_map_t &dynamic_j
         }
 
       Lag = Lead = 0;
-      set<pair<int, int> > endo;
+      set<pair<int, int>> endo;
       for (count_equ  = first_count_equ; count_equ  < Blck_Size+first_count_equ; count_equ++)
         {
           endo.clear();
@@ -911,7 +911,7 @@ ModelTree::reduceBlocksAndTypeDetermination(const dynamic_jacob_map_t &dynamic_j
                   if (block_lag_lead[block_type_size_mfs.size()-1].second > Lead)
                     Lead = block_lag_lead[block_type_size_mfs.size()-1].second;
                   block_lag_lead[block_type_size_mfs.size()-1] = make_pair(Lag, Lead);
-                  pair< pair< unsigned int, unsigned int>, pair<unsigned int, unsigned int> > tmp = block_col_type[block_col_type.size()-1];
+                  pair< pair< unsigned int, unsigned int>, pair<unsigned int, unsigned int>> tmp = block_col_type[block_col_type.size()-1];
                   block_col_type[block_col_type.size()-1] = make_pair(make_pair(tmp.first.first+l_n_static, tmp.first.second+l_n_forward), make_pair(tmp.second.first+l_n_backward, tmp.second.second+l_n_mixed));
                 }
               else
@@ -959,7 +959,7 @@ ModelTree::BlockLinear(const blocks_derivatives_t &blocks_derivatives, const vec
               if (lag == 0)
                 {
                   expr_t Id = it->second.second;
-                  set<pair<int, int> > endogenous;
+                  set<pair<int, int>> endogenous;
                   Id->collectEndogenous(endogenous);
                   if (endogenous.size() > 0)
                     {
@@ -981,7 +981,7 @@ ModelTree::BlockLinear(const blocks_derivatives_t &blocks_derivatives, const vec
             {
               int lag = it->second.first;
               expr_t Id = it->second.second; //
-              set<pair<int, int> > endogenous;
+              set<pair<int, int>> endogenous;
               Id->collectEndogenous(endogenous);
               if (endogenous.size() > 0)
                 {
@@ -1113,7 +1113,7 @@ ModelTree::computeThirdDerivatives(const set<int> &vars)
 void
 ModelTree::computeTemporaryTerms(bool is_matlab)
 {
-  map<expr_t, pair<int, NodeTreeReference> > reference_count;
+  map<expr_t, pair<int, NodeTreeReference>> reference_count;
   temporary_terms.clear();
   temporary_terms_mlv.clear();
   temporary_terms_res.clear();
@@ -1741,7 +1741,7 @@ ModelTree::addEquation(expr_t eq, int lineno)
 }
 
 void
-ModelTree::addEquation(expr_t eq, int lineno, const vector<pair<string, string> > &eq_tags)
+ModelTree::addEquation(expr_t eq, int lineno, const vector<pair<string, string>> &eq_tags)
 {
   int n = equations.size();
   for (const auto & eq_tag : eq_tags)
@@ -1905,7 +1905,7 @@ ModelTree::computeParamsDerivatives(int paramsDerivsOrder)
 void
 ModelTree::computeParamsDerivativesTemporaryTerms()
 {
-  map<expr_t, pair<int, NodeTreeReference > > reference_count;
+  map<expr_t, pair<int, NodeTreeReference >> reference_count;
   params_derivs_temporary_terms.clear();
   map<NodeTreeReference, temporary_terms_t> temp_terms_map;
   temp_terms_map[eResidualsParamsDeriv] = params_derivs_temporary_terms_res;
@@ -1979,7 +1979,7 @@ ModelTree::isNonstationary(int symb_id) const
 void
 ModelTree::writeJsonModelEquations(ostream &output, bool residuals) const
 {
-  vector<pair<string, string> > eqtags;
+  vector<pair<string, string>> eqtags;
   temporary_terms_t tt_empty;
   if (residuals)
     output << endl << "\"residuals\":[" << endl;
@@ -2036,7 +2036,7 @@ ModelTree::writeJsonModelEquations(ostream &output, bool residuals) const
             {
               output << ", \"tags\": {";
               int i = 0;
-              for (vector<pair<string, string> >::const_iterator it = eqtags.begin(); it != eqtags.end(); it++, i++)
+              for (vector<pair<string, string>>::const_iterator it = eqtags.begin(); it != eqtags.end(); it++, i++)
                 {
                   if (i != 0)
                     output << ", ";
diff --git a/src/ModelTree.hh b/src/ModelTree.hh
index b398b24f64dc7dc7d5f15644d36ab774a174a682..b1df9518290a1cc34e579885af50bfc938e232e7 100644
--- a/src/ModelTree.hh
+++ b/src/ModelTree.hh
@@ -32,16 +32,16 @@ using namespace std;
 #include "ExtendedPreprocessorTypes.hh"
 
 //! Vector describing equations: BlockSimulationType, if BlockSimulationType == EVALUATE_s then a expr_t on the new normalized equation
-typedef vector<pair<EquationType, expr_t > > equation_type_and_normalized_equation_t;
+typedef vector<pair<EquationType, expr_t >> equation_type_and_normalized_equation_t;
 
 //! Vector describing variables: max_lag in the block, max_lead in the block
-typedef vector<pair< int, int> > lag_lead_vector_t;
+typedef vector<pair< int, int>> lag_lead_vector_t;
 
-//! for each block contains pair< pair<Simulation_Type, first_equation>, pair < Block_Size, Recursive_part_Size > >
-typedef vector<pair< pair< BlockSimulationType, int>, pair<int, int> > > block_type_firstequation_size_mfs_t;
+//! for each block contains pair< pair<Simulation_Type, first_equation>, pair < Block_Size, Recursive_part_Size >>
+typedef vector<pair< pair< BlockSimulationType, int>, pair<int, int>>> block_type_firstequation_size_mfs_t;
 
-//! for a block contains derivatives pair< pair<block_equation_number, block_variable_number> , pair<lead_lag, expr_t> >
-typedef vector< pair<pair<int, int>, pair< int, expr_t > > > block_derivatives_equation_variable_laglead_nodeid_t;
+//! for a block contains derivatives pair< pair<block_equation_number, block_variable_number> , pair<lead_lag, expr_t>>
+typedef vector< pair<pair<int, int>, pair< int, expr_t >>> block_derivatives_equation_variable_laglead_nodeid_t;
 
 //! for all blocks derivatives description
 using blocks_derivatives_t = vector<block_derivatives_equation_variable_laglead_nodeid_t>;
@@ -68,7 +68,7 @@ protected:
   deque<BinaryOpNode *> diff_aux_equations;
 
   //! Stores equation tags
-  vector<pair<int, pair<string, string> > > equation_tags;
+  vector<pair<int, pair<string, string>>> equation_tags;
 
   //! Number of non-zero derivatives
   int NNZDerivatives[3];
@@ -81,7 +81,7 @@ protected:
   */
   first_derivatives_t first_derivatives;
 
-  typedef map<pair<int, pair<int, int> >, expr_t> second_derivatives_t;
+  typedef map<pair<int, pair<int, int>>, expr_t> second_derivatives_t;
   //! Second order derivatives
   /*! First index is equation number, second and third are variables w.r. to which is computed the derivative.
     Only non-null derivatives are stored in the map.
@@ -90,7 +90,7 @@ protected:
   */
   second_derivatives_t second_derivatives;
 
-  typedef map<pair<int, pair<int, pair<int, int> > >, expr_t> third_derivatives_t;
+  typedef map<pair<int, pair<int, pair<int, int>>>, expr_t> third_derivatives_t;
   //! Third order derivatives
   /*! First index is equation number, second, third and fourth are variables w.r. to which is computed the derivative.
     Only non-null derivatives are stored in the map.
@@ -158,7 +158,7 @@ protected:
   map<int, expr_t> trend_symbols_map;
 
   //! for all trends; the boolean is true if this is a log-trend, false otherwise
-  typedef map<int, pair<bool, expr_t> > nonstationary_symbols_map_t;
+  typedef map<int, pair<bool, expr_t>> nonstationary_symbols_map_t;
 
   //! Nonstationary variables and their deflators
   nonstationary_symbols_map_t nonstationary_symbols_map;
@@ -221,7 +221,7 @@ protected:
 
   //! Sparse matrix of double to store the values of the Jacobian
   /*! First index is lag, second index is equation number, third index is endogenous type specific ID */
-  typedef map<pair<int, pair<int, int> >, expr_t> dynamic_jacob_map_t;
+  typedef map<pair<int, pair<int, int>>, expr_t> dynamic_jacob_map_t;
 
   //! Normalization of equations
   /*! Maps endogenous type specific IDs to equation numbers */
@@ -255,15 +255,15 @@ protected:
   //! Search the equations and variables belonging to the prologue and the epilogue of the model
   void computePrologueAndEpilogue(const jacob_map_t &static_jacobian, vector<int> &equation_reordered, vector<int> &variable_reordered);
   //! Determine the type of each equation of model and try to normalized the unnormalized equation using computeNormalizedEquations
-  equation_type_and_normalized_equation_t equationTypeDetermination(const map<pair<int, pair<int, int> >, expr_t> &first_order_endo_derivatives, const vector<int> &Index_Var_IM, const vector<int> &Index_Equ_IM, int mfs) const;
+  equation_type_and_normalized_equation_t equationTypeDetermination(const map<pair<int, pair<int, int>>, expr_t> &first_order_endo_derivatives, const vector<int> &Index_Var_IM, const vector<int> &Index_Equ_IM, int mfs) const;
   //! Compute the block decomposition and for a non-recusive block find the minimum feedback set
-  void computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob_map_t &static_jacobian, const dynamic_jacob_map_t &dynamic_jacobian, vector<int> &equation_reordered, vector<int> &variable_reordered, vector<pair<int, int> > &blocks, const equation_type_and_normalized_equation_t &Equation_Type, bool verbose_, bool select_feedback_variable, int mfs, vector<int> &inv_equation_reordered, vector<int> &inv_variable_reordered, lag_lead_vector_t &equation_lag_lead, lag_lead_vector_t &variable_lag_lead_t, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed) const;
+  void computeBlockDecompositionAndFeedbackVariablesForEachBlock(const jacob_map_t &static_jacobian, const dynamic_jacob_map_t &dynamic_jacobian, vector<int> &equation_reordered, vector<int> &variable_reordered, vector<pair<int, int>> &blocks, const equation_type_and_normalized_equation_t &Equation_Type, bool verbose_, bool select_feedback_variable, int mfs, vector<int> &inv_equation_reordered, vector<int> &inv_variable_reordered, lag_lead_vector_t &equation_lag_lead, lag_lead_vector_t &variable_lag_lead_t, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed) const;
   //! Reduce the number of block merging the same type equation in the prologue and the epilogue and determine the type of each block
-  block_type_firstequation_size_mfs_t reduceBlocksAndTypeDetermination(const dynamic_jacob_map_t &dynamic_jacobian, vector<pair<int, int> > &blocks, const equation_type_and_normalized_equation_t &Equation_Type, const vector<int> &variable_reordered, const vector<int> &equation_reordered, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed, vector<pair< pair<int, int>, pair<int, int> > > &block_col_type);
+  block_type_firstequation_size_mfs_t reduceBlocksAndTypeDetermination(const dynamic_jacob_map_t &dynamic_jacobian, vector<pair<int, int>> &blocks, const equation_type_and_normalized_equation_t &Equation_Type, const vector<int> &variable_reordered, const vector<int> &equation_reordered, vector<unsigned int> &n_static, vector<unsigned int> &n_forward, vector<unsigned int> &n_backward, vector<unsigned int> &n_mixed, vector<pair< pair<int, int>, pair<int, int>>> &block_col_type);
   //! Determine the maximum number of lead and lag for the endogenous variable in a bloc
   void getVariableLeadLagByBlock(const dynamic_jacob_map_t &dynamic_jacobian, const vector<int> &components_set, int nb_blck_sim, lag_lead_vector_t &equation_lead_lag, lag_lead_vector_t &variable_lead_lag, const vector<int> &equation_reordered, const vector<int> &variable_reordered) const;
   //! Print an abstract of the block structure of the model
-  void printBlockDecomposition(const vector<pair<int, int> > &blocks) const;
+  void printBlockDecomposition(const vector<pair<int, int>> &blocks) const;
   //! Determine for each block if it is linear or not
   vector<bool> BlockLinear(const blocks_derivatives_t &blocks_derivatives, const vector<int> &variable_reordered) const;
 
@@ -331,7 +331,7 @@ public:
   //! Declare a node as an equation of the model; also give its line number
   void addEquation(expr_t eq, int lineno);
   //! Declare a node as an equation of the model, also giving its tags
-  void addEquation(expr_t eq, int lineno, const vector<pair<string, string> > &eq_tags);
+  void addEquation(expr_t eq, int lineno, const vector<pair<string, string>> &eq_tags);
   //! Declare a node as an auxiliary equation of the model, adding it at the end of the list of auxiliary equations
   void addAuxEquation(expr_t eq);
   //! Returns the number of equations in the model
diff --git a/src/NumericalInitialization.hh b/src/NumericalInitialization.hh
index 89f9092face05f1be52db08b2d0561d231b4de6d..9de4c37197b90dfd1517cb8780413a6852931051 100644
--- a/src/NumericalInitialization.hh
+++ b/src/NumericalInitialization.hh
@@ -55,7 +55,7 @@ public:
     We use a vector instead of a map, since the order of declaration matters:
     an initialization can depend on a previously initialized variable inside the block
   */
-  typedef vector<pair<int, expr_t> > init_values_t;
+  typedef vector<pair<int, expr_t>> init_values_t;
 protected:
   const init_values_t init_values;
   const SymbolTable &symbol_table;
@@ -149,7 +149,7 @@ class HomotopyStatement : public Statement
 public:
   //! Stores the declarations of homotopy_setup
   /*! Order matter so we use a vector. First expr_t can be NULL if no initial value given. */
-  typedef vector<pair<int, pair<expr_t, expr_t> > > homotopy_values_t;
+  typedef vector<pair<int, pair<expr_t, expr_t>>> homotopy_values_t;
 private:
   const homotopy_values_t homotopy_values;
   const SymbolTable &symbol_table;
diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc
index 1662257f7187102c3a7b9a590544ab085461b76c..d4f183cc7e72152783194ff7803316610369881b 100644
--- a/src/ParsingDriver.cc
+++ b/src/ParsingDriver.cc
@@ -979,7 +979,7 @@ ParsingDriver::end_model()
 {
   bool exit_after_write = false;
   if (model_errors.size() > 0)
-    for (vector<pair<string, string> >::const_iterator it = model_errors.begin();
+    for (vector<pair<string, string>>::const_iterator it = model_errors.begin();
          it != model_errors.end(); it++)
       {
         if (it->first == "")
@@ -988,7 +988,7 @@ ParsingDriver::end_model()
       }
 
   if (undeclared_model_variable_errors.size() > 0)
-    for (vector<pair<string, string> >::const_iterator it = undeclared_model_variable_errors.begin();
+    for (vector<pair<string, string>>::const_iterator it = undeclared_model_variable_errors.begin();
          it != undeclared_model_variable_errors.end(); it++)
       if (nostrict)
         warning(it->second);
@@ -1248,7 +1248,7 @@ ParsingDriver::combine_lag_and_restriction(string *lag)
     if (it->lag == current_lag)
       error("lag " + *lag + " used more than once.");
 
-  for (map<int, vector<int> >::const_iterator it = svar_equation_restrictions.begin();
+  for (map<int, vector<int>>::const_iterator it = svar_equation_restrictions.begin();
        it != svar_equation_restrictions.end(); it++)
     for (auto it1 = it->second.begin();
          it1 != it->second.end(); it1++)
@@ -2616,7 +2616,7 @@ ParsingDriver::add_model_equal(expr_t arg1, expr_t arg2)
 
   // Detect if the equation is tagged [static]
   bool is_static_only = false;
-  for (vector<pair<string, string> >::const_iterator it = eq_tags.begin();
+  for (vector<pair<string, string>>::const_iterator it = eq_tags.begin();
        it != eq_tags.end(); ++it)
     if (it->first == "static")
       {
diff --git a/src/ParsingDriver.hh b/src/ParsingDriver.hh
index 2fe1f05f45f4def21917e83747d60979a4ca8f85..599619b7c7c268101d3ac6fd3e7f183204692717 100644
--- a/src/ParsingDriver.hh
+++ b/src/ParsingDriver.hh
@@ -141,7 +141,7 @@ private:
   //! Temporary storage for deterministic shocks
   ShocksStatement::det_shocks_t det_shocks;
   //! Temporary storage for periods of deterministic shocks
-  vector<pair<int, int> > det_shocks_periods;
+  vector<pair<int, int>> det_shocks_periods;
   //! Temporary storage for values of deterministic shocks
   vector<expr_t> det_shocks_values;
   //! Temporary storage for variances of shocks
@@ -173,7 +173,7 @@ private:
   //! Temporary storage for svar_identification blocks
   SvarIdentificationStatement::svar_identification_restrictions_t svar_ident_restrictions;
   //! Temporary storage for mapping the equation number to the restrictions within an svar_identification block
-  map<int, vector<int> > svar_equation_restrictions;
+  map<int, vector<int>> svar_equation_restrictions;
   //! Temporary storage for restrictions in an equation within an svar_identification block
   vector<int> svar_restriction_symbols;
   //! Temporary storage for constants exculsion within an svar_identification
@@ -201,10 +201,10 @@ private:
   SvarRestrictionType svar_restriction_type;
   //! Temporary storage for generate_irfs
   vector<string> generate_irf_names;
-  vector<map<string, double> > generate_irf_elements;
+  vector<map<string, double>> generate_irf_elements;
   map<string, double> generate_irf_exos;
   //! Temporary storage for argument list of external function
-  stack<vector<expr_t> >  stack_external_function_args;
+  stack<vector<expr_t>>  stack_external_function_args;
   //! Temporary storage for parameters in joint prior statement
   vector<string> joint_parameters;
   //! Temporary storage for the symb_id associated with the "name" symbol of the current external_function statement
@@ -233,12 +233,12 @@ private:
   //! For parsing the graph_format option
   SymbolList graph_formats;
   //! Temporary storage for equation tags
-  vector<pair<string, string> > eq_tags;
+  vector<pair<string, string>> eq_tags;
   //! Temporary storage for pac statement undiff option
   map<string, int> pac_undiff;
 
   //! Map Var name to variables
-  map<string, vector<string> > var_map;
+  map<string, vector<string>> var_map;
 
   //! The mod file representation constructed by this ParsingDriver
   ModFile *mod_file;
@@ -247,8 +247,8 @@ private:
 
   bool nostrict;
 
-  vector<pair<string, string> > model_errors;
-  vector<pair<string, string> > undeclared_model_variable_errors;
+  vector<pair<string, string>> model_errors;
+  vector<pair<string, string>> undeclared_model_variable_errors;
 
   //! Used by VAR restrictions
   void clear_VAR_storage();
@@ -278,17 +278,17 @@ public:
   //! VAR restrictions
   //! > exclusion restrictions
   map<int, SymbolList> exclusion_restriction;
-  map<int, map<int, SymbolList> > exclusion_restrictions;
+  map<int, map<int, SymbolList>> exclusion_restrictions;
   //! > equation and crossequation restrictions
-  pair<int, pair<int, int> > var_restriction_coeff;
-  typedef pair<pair<int, pair<int, int> >, expr_t> var_restriction_eq_crosseq_t;
+  pair<int, pair<int, int>> var_restriction_coeff;
+  typedef pair<pair<int, pair<int, int>>, expr_t> var_restriction_eq_crosseq_t;
   vector<var_restriction_eq_crosseq_t> var_restriction_eq_or_crosseq;
   pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double> var_restriction_equation_or_crossequation;
-  map<int, pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double> > equation_restrictions;
-  vector<pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double> > crossequation_restrictions;
+  map<int, pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double>> equation_restrictions;
+  vector<pair<pair<var_restriction_eq_crosseq_t, var_restriction_eq_crosseq_t>, double>> crossequation_restrictions;
   //! > covariance restrictions
   map<pair<int, int>, double> covariance_number_restriction;
-  map<pair<int, int>, pair<int, int> > covariance_pair_restriction;
+  map<pair<int, int>, pair<int, int>> covariance_pair_restriction;
 
   //! Error handler with explicit location
   void error(const Dynare::parser::location_type &l, const string &m) __attribute__ ((noreturn));
diff --git a/src/Shocks.hh b/src/Shocks.hh
index cf5f3bf26e30b745543510b084ebb36857f33f0f..6a5c89dcaef865d49bb94b6273dcdba79df97d68 100644
--- a/src/Shocks.hh
+++ b/src/Shocks.hh
@@ -41,7 +41,7 @@ public:
   };
   //The boolean element indicates if the shock is a surprise (false) or a perfect foresight (true) shock.
   //This boolean is used only in case of conditional forecast with extended path method (simulation_type = deterministic).
-  typedef map<int, vector<DetShockElement> > det_shocks_t;
+  typedef map<int, vector<DetShockElement>> det_shocks_t;
 protected:
   //! Is this statement a "mshocks" statement ? (instead of a "shocks" statement)
   const bool mshocks;
diff --git a/src/Statement.hh b/src/Statement.hh
index 4f45b9b7905bd7e1be086bd631f947945d612519..39c7391539be2d89f1b418545be7e9bc26b9b44b 100644
--- a/src/Statement.hh
+++ b/src/Statement.hh
@@ -176,12 +176,12 @@ class OptionsList
 {
 public:
   typedef map<string, string> num_options_t;
-  typedef map<string, pair<string, string> > paired_num_options_t;
+  typedef map<string, pair<string, string>> paired_num_options_t;
   typedef map<string, string> string_options_t;
   typedef map<string, string> date_options_t;
   typedef map<string, SymbolList> symbol_list_options_t;
-  typedef map<string, vector<int> > vec_int_options_t;
-  typedef map<string, vector<string > > vec_str_options_t;
+  typedef map<string, vector<int>> vec_int_options_t;
+  typedef map<string, vector<string >> vec_str_options_t;
   num_options_t num_options;
   paired_num_options_t paired_num_options;
   string_options_t string_options;
diff --git a/src/StaticModel.cc b/src/StaticModel.cc
index 9dd353fc0930eec06c1c814912a6bf57052ac5dd..0a0e017385976d739277ea086573dc71a16169d7 100644
--- a/src/StaticModel.cc
+++ b/src/StaticModel.cc
@@ -72,7 +72,7 @@ StaticModel::compileChainRuleDerivative(ofstream &code_file, unsigned int &instr
 void
 StaticModel::computeTemporaryTermsOrdered()
 {
-  map<expr_t, pair<int, int> > first_occurence;
+  map<expr_t, pair<int, int>> first_occurence;
   map<expr_t, int> reference_count;
   BinaryOpNode *eq_node;
   first_derivatives_t::const_iterator it;
@@ -82,8 +82,8 @@ StaticModel::computeTemporaryTermsOrdered()
   map_idx.clear();
 
   unsigned int nb_blocks = getNbBlocks();
-  v_temporary_terms = vector< vector<temporary_terms_t> >(nb_blocks);
-  v_temporary_terms_local = vector< vector<temporary_terms_t> >(nb_blocks);
+  v_temporary_terms = vector< vector<temporary_terms_t>>(nb_blocks);
+  v_temporary_terms_local = vector< vector<temporary_terms_t>>(nb_blocks);
 
   v_temporary_terms_inuse = vector<temporary_terms_inuse_t>(nb_blocks);
 
@@ -96,7 +96,7 @@ StaticModel::computeTemporaryTermsOrdered()
     {
       map<expr_t, int> reference_count_local;
       reference_count_local.clear();
-      map<expr_t, pair<int, int> > first_occurence_local;
+      map<expr_t, pair<int, int>> first_occurence_local;
       first_occurence_local.clear();
       temporary_terms_t temporary_terms_l;
       temporary_terms_l.clear();
@@ -454,7 +454,7 @@ StaticModel::writeModelEquationsCode(const string file_name, const string bin_ba
   fjmp_if_eval.write(code_file, instruction_number);
   int prev_instruction_number = instruction_number;
 
-  vector<vector<pair<int, int> > > derivatives;
+  vector<vector<pair<int, int>>> derivatives;
   derivatives.resize(symbol_table.endo_nbr());
   count_u = symbol_table.endo_nbr();
   for (const auto & first_derivative : first_derivatives)
@@ -485,7 +485,7 @@ StaticModel::writeModelEquationsCode(const string file_name, const string bin_ba
       fldr.write(code_file, instruction_number);
       if (derivatives[i].size())
         {
-          for (vector<pair<int, int> >::const_iterator it = derivatives[i].begin();
+          for (vector<pair<int, int>>::const_iterator it = derivatives[i].begin();
                it != derivatives[i].end(); it++)
             {
               FLDSU_ fldsu(it->second);
@@ -1022,10 +1022,10 @@ StaticModel::Write_Inf_To_Bin_File_Block(const string &static_basename, const st
   SaveCode.close();
 }
 
-map<pair<int, pair<int, int > >, expr_t>
+map<pair<int, pair<int, int >>, expr_t>
 StaticModel::collect_first_order_derivatives_endogenous()
 {
-  map<pair<int, pair<int, int > >, expr_t> endo_derivatives;
+  map<pair<int, pair<int, int >>, expr_t> endo_derivatives;
   for (auto & first_derivative : first_derivatives)
     {
       if (getTypeByDerivID(first_derivative.first.second) == eEndogenous)
@@ -1107,7 +1107,7 @@ StaticModel::computingPass(const eval_context_t &eval_context, bool no_tmp_terms
       vector<unsigned int> n_static, n_forward, n_backward, n_mixed;
 
       // for each block contains pair<Size, Feddback_variable>
-      vector<pair<int, int> > blocks;
+      vector<pair<int, int>> blocks;
 
       evaluateAndReduceJacobian(eval_context, contemporaneous_jacobian, static_jacobian, dynamic_jacobian, cutoff, false);
 
@@ -1115,7 +1115,7 @@ StaticModel::computingPass(const eval_context_t &eval_context, bool no_tmp_terms
 
       computePrologueAndEpilogue(static_jacobian, equation_reordered, variable_reordered);
 
-      map<pair<int, pair<int, int> >, expr_t> first_order_endo_derivatives = collect_first_order_derivatives_endogenous();
+      map<pair<int, pair<int, int>>, expr_t> first_order_endo_derivatives = collect_first_order_derivatives_endogenous();
 
       equation_type_and_normalized_equation = equationTypeDetermination(first_order_endo_derivatives, variable_reordered, equation_reordered, mfs);
 
@@ -2197,10 +2197,10 @@ StaticModel::addAllParamDerivId(set<int> &deriv_id_set)
     deriv_id_set.insert(i + symbol_table.endo_nbr());
 }
 
-map<pair<pair<int, pair<int, int> >, pair<int, int> >, int>
+map<pair<pair<int, pair<int, int>>, pair<int, int>>, int>
 StaticModel::get_Derivatives(int block)
 {
-  map<pair<pair<int, pair<int, int> >, pair<int, int> >, int> Derivatives;
+  map<pair<pair<int, pair<int, int>>, pair<int, int>>, int> Derivatives;
   Derivatives.clear();
   int block_size = getBlockSize(block);
   int block_nb_recursive = block_size - getBlockMfs(block);
@@ -2214,7 +2214,7 @@ StaticModel::get_Derivatives(int block)
           if (dynamic_jacobian.find(make_pair(lag, make_pair(eqr, varr))) != dynamic_jacobian.end())
             {
               bool OK = true;
-              map<pair<pair<int, pair<int, int> >, pair<int, int> >, int>::const_iterator its = Derivatives.find(make_pair(make_pair(lag, make_pair(eq, var)), make_pair(eqr, varr)));
+              map<pair<pair<int, pair<int, int>>, pair<int, int>>, int>::const_iterator its = Derivatives.find(make_pair(make_pair(lag, make_pair(eq, var)), make_pair(eqr, varr)));
               if (its != Derivatives.end())
                 {
                   if (its->second == 2)
@@ -2272,12 +2272,12 @@ StaticModel::computeChainRuleJacobian(blocks_derivatives_t &blocks_derivatives)
               else
                 recursive_variables[getDerivID(symbol_table.getID(eEndogenous, getBlockVariableID(block, i)), 0)] = getBlockEquationExpr(block, i);
             }
-          map<pair<pair<int, pair<int, int> >, pair<int, int> >, int> Derivatives = get_Derivatives(block);
-          map<pair<pair<int, pair<int, int> >, pair<int, int> >, int>::const_iterator it = Derivatives.begin();
+          map<pair<pair<int, pair<int, int>>, pair<int, int>>, int> Derivatives = get_Derivatives(block);
+          map<pair<pair<int, pair<int, int>>, pair<int, int>>, int>::const_iterator it = Derivatives.begin();
           for (int i = 0; i < (int) Derivatives.size(); i++)
             {
               int Deriv_type = it->second;
-              pair<pair<int, pair<int, int> >, pair<int, int> > it_l(it->first);
+              pair<pair<int, pair<int, int>>, pair<int, int>> it_l(it->first);
               it++;
               int lag = it_l.first.first;
               int eq = it_l.first.second.first;
@@ -2345,8 +2345,8 @@ StaticModel::collect_block_first_order_derivatives()
         }
     }
   derivative_endo = vector<derivative_t>(nb_blocks);
-  endo_max_leadlag_block = vector<pair<int, int> >(nb_blocks, make_pair(0, 0));
-  max_leadlag_block = vector<pair<int, int> >(nb_blocks, make_pair(0, 0));
+  endo_max_leadlag_block = vector<pair<int, int>>(nb_blocks, make_pair(0, 0));
+  max_leadlag_block = vector<pair<int, int>>(nb_blocks, make_pair(0, 0));
   for (auto & first_derivative : first_derivatives)
     {
       int eq = first_derivative.first.first;
diff --git a/src/StaticModel.hh b/src/StaticModel.hh
index fcdd59f606f3cf909e662c47e2748b6e7faea02c..14feb5f1f86bd05f3b7aeb29ef420910f4b404cf 100644
--- a/src/StaticModel.hh
+++ b/src/StaticModel.hh
@@ -31,14 +31,14 @@ class StaticModel : public ModelTree
 {
 private:
   //! global temporary terms for block decomposed models
-  vector<vector<temporary_terms_t> > v_temporary_terms;
+  vector<vector<temporary_terms_t>> v_temporary_terms;
 
   //! local temporary terms for block decomposed models
-  vector<vector<temporary_terms_t> > v_temporary_terms_local;
+  vector<vector<temporary_terms_t>> v_temporary_terms_local;
 
   vector<temporary_terms_inuse_t> v_temporary_terms_inuse;
 
-  typedef map< pair< int, pair< int, int> >, expr_t> first_chain_rule_derivatives_t;
+  typedef map< pair< int, pair< int, int>>, expr_t> first_chain_rule_derivatives_t;
   first_chain_rule_derivatives_t first_chain_rule_derivatives;
 
   //! Writes static model file (standard Matlab version)
@@ -95,11 +95,11 @@ private:
   //! Compute the column indices of the static Jacobian
   void computeStatJacobianCols();
   //! return a map on the block jacobian
-  map<pair<pair<int, pair<int, int> >, pair<int, int> >, int> get_Derivatives(int block);
+  map<pair<pair<int, pair<int, int>>, pair<int, int>>, int> get_Derivatives(int block);
   //! Computes chain rule derivatives of the Jacobian w.r. to endogenous variables
   void computeChainRuleJacobian(blocks_derivatives_t &blocks_derivatives);
   //! Collect only the first derivatives
-  map<pair<int, pair<int, int> >, expr_t> collect_first_order_derivatives_endogenous();
+  map<pair<int, pair<int, int>>, expr_t> collect_first_order_derivatives_endogenous();
 
   //! Collecte the derivatives w.r. to endogenous of the block, to endogenous of previouys blocks and to exogenous
   void collect_block_first_order_derivatives();
@@ -111,7 +111,7 @@ protected:
   //! Vector describing equations: BlockSimulationType, if BlockSimulationType == EVALUATE_s then a expr_t on the new normalized equation
   equation_type_and_normalized_equation_t equation_type_and_normalized_equation;
 
-  //! for each block contains pair< Simulation_Type, pair < Block_Size, Recursive_part_Size > >
+  //! for each block contains pair< Simulation_Type, pair < Block_Size, Recursive_part_Size >>
   block_type_firstequation_size_mfs_t block_type_firstequation_size_mfs;
 
   //! for all blocks derivatives description
@@ -124,7 +124,7 @@ protected:
   vector<bool> blocks_linear;
 
   //! Map the derivatives for a block pair<lag, make_pair(make_pair(eq, var)), expr_t>
-  typedef map<pair< int, pair<int, int> >, expr_t> derivative_t;
+  typedef map<pair< int, pair<int, int>>, expr_t> derivative_t;
   //! Vector of derivative for each blocks
   vector<derivative_t> derivative_endo, derivative_other_endo, derivative_exo, derivative_exo_det;
 
@@ -134,16 +134,16 @@ protected:
   vector<lag_var_t> other_endo_block, exo_block, exo_det_block;
 
   //! for each block described the number of static, forward, backward and mixed variables in the block
-  /*! pair< pair<static, forward>, pair<backward,mixed> > */
-  vector<pair< pair<int, int>, pair<int, int> > > block_col_type;
+  /*! pair< pair<static, forward>, pair<backward,mixed>> */
+  vector<pair< pair<int, int>, pair<int, int>>> block_col_type;
 
   //! List for each variable its block number and its maximum lag and lead inside the block
-  vector<pair<int, pair<int, int> > > variable_block_lead_lag;
+  vector<pair<int, pair<int, int>>> variable_block_lead_lag;
   //! List for each equation its block number
   vector<int> equation_block;
 
   //!Maximum lead and lag for each block on endogenous of the block, endogenous of the previous blocks, exogenous and deterministic exogenous
-  vector<pair<int, int> > endo_max_leadlag_block, other_endo_max_leadlag_block, exo_max_leadlag_block, exo_det_max_leadlag_block, max_leadlag_block;
+  vector<pair<int, int>> endo_max_leadlag_block, other_endo_max_leadlag_block, exo_max_leadlag_block, exo_det_max_leadlag_block, max_leadlag_block;
 
   //! Helper functions for writeStaticModel
   void writeStaticModelHelper(const string &name, const string &retvalname,
diff --git a/src/SteadyStateModel.cc b/src/SteadyStateModel.cc
index 8af236963fb39ce0bf3338b977096e9442bfb13a..8de976a6caf8de32a4859cdd20ef4abc4749a0a9 100644
--- a/src/SteadyStateModel.cc
+++ b/src/SteadyStateModel.cc
@@ -274,7 +274,7 @@ SteadyStateModel::writeJsonSteadyStateFile(ostream &output, bool transformComput
   if (def_table.size() == 0)
     return;
 
-  vector<pair<string, string> > eqtags;
+  vector<pair<string, string>> eqtags;
 
   output << "{\"steady_state_model\": [";
 
diff --git a/src/SteadyStateModel.hh b/src/SteadyStateModel.hh
index 2c3a23c5f7e6a441e8d24d389f869173dfb80e16..977765049e9aa2b4ba3dba0c8192df1870e57246 100644
--- a/src/SteadyStateModel.hh
+++ b/src/SteadyStateModel.hh
@@ -29,7 +29,7 @@ class SteadyStateModel : public DataTree
 {
 private:
   //! Associates a set of symbol IDs (the variable(s) assigned in a given statement) to an expression (their assigned value)
-  vector<pair<vector<int>, expr_t> > def_table;
+  vector<pair<vector<int>, expr_t>> def_table;
 
   //! Reference to static model (for writing auxiliary equations)
   const StaticModel &static_model;
diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc
index 143b92dc9514a39521ce862d39e90463103bb507..f9f21917a371ce18c1f4650850ec46bdae48ccf5 100644
--- a/src/SymbolTable.cc
+++ b/src/SymbolTable.cc
@@ -191,10 +191,10 @@ SymbolTable::getID(SymbolType type, int tsid) const noexcept(false)
     }
 }
 
-map<string, map<int, string> >
+map<string, map<int, string>>
 SymbolTable::getPartitionsForType(enum SymbolType st) const noexcept(false)
 {
-  map<string, map<int, string> > partitions;
+  map<string, map<int, string>> partitions;
   for (const auto & it : partition_value_map)
     if (getType(it.first) == st)
       for (auto it1 = it.second.begin();
@@ -222,8 +222,8 @@ SymbolTable::writeOutput(ostream &output) const noexcept(false)
         output << "M_.exo_names(" << id+1 << ") = {'" << getName(exo_ids[id]) << "'};" << endl
                << "M_.exo_names_tex(" << id+1 << ") = {'" << getTeXName(exo_ids[id]) << "'};" << endl
                << "M_.exo_names_long(" << id+1 << ") = {'" << getLongName(exo_ids[id]) << "'};" << endl;
-      map<string, map<int, string> > partitions = getPartitionsForType(eExogenous);
-      for (map<string, map<int, string> >::const_iterator it = partitions.begin();
+      map<string, map<int, string>> partitions = getPartitionsForType(eExogenous);
+      for (map<string, map<int, string>>::const_iterator it = partitions.begin();
            it != partitions.end(); it++)
         if (it->first != "long_name")
           {
@@ -251,8 +251,8 @@ SymbolTable::writeOutput(ostream &output) const noexcept(false)
                << "M_.exo_det_names_tex(" << id+1 << ") = {'" << getTeXName(exo_det_ids[id]) << "'};" << endl
                << "M_.exo_det_names_long(" << id+1 << ") = {'" << getLongName(exo_det_ids[id]) << "'};" << endl;
       output << "M_.exo_det_partitions = struct();" << endl;
-      map<string, map<int, string> > partitions = getPartitionsForType(eExogenousDet);
-      for (map<string, map<int, string> >::const_iterator it = partitions.begin();
+      map<string, map<int, string>> partitions = getPartitionsForType(eExogenousDet);
+      for (map<string, map<int, string>>::const_iterator it = partitions.begin();
            it != partitions.end(); it++)
         if (it->first != "long_name")
           {
@@ -280,8 +280,8 @@ SymbolTable::writeOutput(ostream &output) const noexcept(false)
                << "M_.endo_names_tex(" << id+1 << ") = {'" << getTeXName(endo_ids[id]) << "'};" << endl
                << "M_.endo_names_long(" << id+1 << ") = {'" << getLongName(endo_ids[id]) << "'};" << endl;
       output << "M_.endo_partitions = struct();" << endl;
-      map<string, map<int, string> > partitions = getPartitionsForType(eEndogenous);
-      for (map<string, map<int, string> >::const_iterator it = partitions.begin();
+      map<string, map<int, string>> partitions = getPartitionsForType(eEndogenous);
+      for (map<string, map<int, string>>::const_iterator it = partitions.begin();
            it != partitions.end(); it++)
         if (it->first != "long_name")
           {
@@ -313,8 +313,8 @@ SymbolTable::writeOutput(ostream &output) const noexcept(false)
             output << "options_.dsge_var = 1;" << endl;
         }
       output << "M_.param_partitions = struct();" << endl;
-      map<string, map<int, string> > partitions = getPartitionsForType(eParameter);
-      for (map<string, map<int, string> >::const_iterator it = partitions.begin();
+      map<string, map<int, string>> partitions = getPartitionsForType(eParameter);
+      for (map<string, map<int, string>>::const_iterator it = partitions.begin();
            it != partitions.end(); it++)
         if (it->first != "long_name")
           {
diff --git a/src/SymbolTable.hh b/src/SymbolTable.hh
index dc7291e77d608632a4d79c4e38d7d57f2521da87..aa0d669a0ec10e9308aaecc3f144d4af81133b73 100644
--- a/src/SymbolTable.hh
+++ b/src/SymbolTable.hh
@@ -127,7 +127,7 @@ private:
   //! Maps IDs to string names of variables
   vector<string> long_name_table;
   //! Maps IDs to a pair containing the partition and the partition value
-  map<int, map<string, string> > partition_value_map;
+  map<int, map<string, string>> partition_value_map;
   //! Maps IDs to types
   vector<SymbolType> type_table;
 
@@ -315,7 +315,7 @@ public:
   //! Returns true if the partition name is the first encountered for the type of variable represented by id
   bool isFirstOfPartitionForType(int id) const noexcept(false);
   //! Returns a list of partitions and symbols that belong to that partition
-  map<string, map<int, string> > getPartitionsForType(enum SymbolType st) const noexcept(false);
+  map<string, map<int, string>> getPartitionsForType(enum SymbolType st) const noexcept(false);
   //! Get type (by ID)
   inline SymbolType getType(int id) const noexcept(false);
   //! Get type (by name)
diff --git a/src/macro/MacroDriver.hh b/src/macro/MacroDriver.hh
index 9becac35d14bb5abb76f39d3c3bc6ef6882c3455..f54524707916ab657681aa00cb3a85d063d257bf 100644
--- a/src/macro/MacroDriver.hh
+++ b/src/macro/MacroDriver.hh
@@ -163,7 +163,7 @@ private:
 
   //! Stack used to keep track of (possibly nested) loops
   //! First element is loop variable name, second is the array over which iteration is done, and third is subscript to be used by next call of iter_loop() (beginning with 0) */
-  stack<pair<string, pair<const MacroValue *, int> > > loop_stack;
+  stack<pair<string, pair<const MacroValue *, int>>> loop_stack;
 public:
   //! Exception thrown when value of an unknown variable is requested
   class UnknownVariable