code: def prepare(self, node):
          
          super(ArgumentReadOnce, self).prepare(node)
          # global functions init
          for n in self.global_declarations.values():
              fe = ArgumentReadOnce.FunctionEffects(n)
              self.node_to_functioneffect[n] = fe
              self.result.add(fe)
  
          # Pythonic functions init
          def save_effect(module):
              """ Recursively save read once effect for Pythonic functions. """
              for intr in module.values():
                  if isinstance(intr, dict):  # Submodule case
                      save_effect(intr)
                  else:
                      fe = ArgumentReadOnce.FunctionEffects(intr)
                      self.node_to_functioneffect[intr] = fe
                      self.result.add(fe)
                      if isinstance(intr, intrinsic.Class):  # Class case
                          save_effect(intr.fields)
  
          for module in MODULES.values():
              save_effect(module)
docs: Initialise arguments effects as this analysis in inter-procedural.
  
          Initialisation done for Pythonic functions and default values set for
          user defined functions.