code: def get_overall_binding_key_to_binding_maps(bindings_lists):
  
      
      binding_key_to_binding = {}
      collided_binding_key_to_bindings = {}
  
      for index, bindings in enumerate(bindings_lists):
          is_final_index = (index == (len(bindings_lists) - 1))
          handle_binding_collision_fn = {
              True: _handle_explicit_binding_collision,
              False: _handle_implicit_binding_collision}[is_final_index]
          this_binding_key_to_binding, this_collided_binding_key_to_bindings = (
              _get_binding_key_to_binding_maps(
                  bindings, handle_binding_collision_fn))
          for good_binding_key in this_binding_key_to_binding:
              collided_binding_key_to_bindings.pop(good_binding_key, None)
          binding_key_to_binding.update(this_binding_key_to_binding)
          collided_binding_key_to_bindings.update(
              this_collided_binding_key_to_bindings)
  
      return binding_key_to_binding, collided_binding_key_to_bindings
docs: bindings_lists from lowest to highest priority.  Last item in
      bindings_lists is assumed explicit.