nodes: 0, module; 1, function_definition; 2, function_name:function_dict; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, for_statement; 9, return_statement; 10, comment:"""
          Equivalent to ``self.model_dict``, but with all variables replaced by
          functions if applicable. Sorted by the evaluation order according to
          ``self.ordered_symbols``, not alphabetical like ``self.model_dict``!
          """; 11, assignment; 12, pattern_list; 13, call; 14, block; 15, identifier:func_dict; 16, identifier:func_dict; 17, call; 18, identifier:var; 19, identifier:func; 20, attribute; 21, argument_list; 22, expression_statement; 23, expression_statement; 24, identifier:OrderedDict; 25, argument_list; 26, attribute; 27, identifier:items; 28, assignment; 29, assignment; 30, identifier:self; 31, identifier:vars_as_functions; 32, identifier:expr; 33, call; 34, subscript; 35, identifier:expr; 36, attribute; 37, argument_list; 38, identifier:func_dict; 39, identifier:func; 40, subscript; 41, identifier:xreplace; 42, attribute; 43, attribute; 44, identifier:var; 45, identifier:self; 46, identifier:vars_as_functions; 47, identifier:self; 48, identifier:model_dict
code: def function_dict(self):
          """
          Equivalent to ``self.model_dict``, but with all variables replaced by
          functions if applicable. Sorted by the evaluation order according to
          ``self.ordered_symbols``, not alphabetical like ``self.model_dict``!
          """
          func_dict = OrderedDict()
          for var, func in self.vars_as_functions.items():
              expr = self.model_dict[var].xreplace(self.vars_as_functions)
              func_dict[func] = expr
          return func_dict