docs: def to_dictionary(self, key_selector=identity, value_selector=identity):
          """Build a dictionary from the source sequence.
  
          Args:
              key_selector: A unary callable to extract a key from each item.
                  By default the key is the item itself.
  
              value_selector: A unary callable to extract a value from each item.
                  By default the value is the item itself.
  
          Note: This method uses immediate execution.
  
          Raises:
              ValueError: If the Queryable is closed.
              TypeError: If key_selector is not callable.
              TypeError: If value_selector is not callable.
          """
          if self.closed():
              raise ValueError("Attempt to call to_dictionary() on a closed Queryable.")
  
          if not is_callable(key_selector):
              raise TypeError("to_dictionary() parameter key_selector={key_selector} is not callable".format(
                      key_selector=repr(key_selector)))
  
          if not is_callable(value_selector):
              raise TypeError("to_dictionary() parameter value_selector={value_selector} is not callable".format(
                      value_selector=repr(value_selector)))
  
          dictionary = {}
          for key, value in self.select(lambda x: (key_selector(x), value_selector(x))):
              dictionary[key] = value
          return dictionary