code: def _foldl(
      fn,
      elems,
      initializer=None,
      parallel_iterations=10,  # pylint: disable=unused-argument
      back_prop=True,
      swap_memory=False,
      name=None,
  ):  # pylint: disable=unused-argument
      """tf.foldl, in numpy."""
      elems_flat = nest.flatten(elems)
      if initializer is None:
          initializer = nest.map_structure(lambda el: el[0], elems)
          elems_flat = [el[1:] for el in elems_flat]
      if len({len(el) for el in elems_flat}) != 1:
          raise ValueError(
              "Mismatched element sizes: {}".format(
                  nest.map_structure(len, elems)
              )
          )
      carry = initializer
      for el in zip(*elems_flat):
          carry = fn(carry, nest.pack_sequence_as(elems, el))
      return carry
  
file_path: probability/tensorflow_probability/python/internal/backend/numpy/functional_ops.py
imports: import numpy
  from tensorflow_probability.python.internal.backend.numpy import _utils
  from tensorflow_probability.python.internal.backend.numpy import nest
label_desc: Use image node_id 2 for calling a global function with example usage: _foldl(fn, elems, initializer, parallel_iterations, back_prop, swap_memory, name) and returns: carry