class_docstr: An object representing an immutable dictionary.
  
  >>> my_frozen_dict = hl.utils.frozendict({1:2, 7:5})
  
  To get a normal python dictionary with the same elements from a `frozendict`:
  
  >>> dict(frozendict({'a': 1, 'b': 2}))
  
  Note
  ----
  This object refers to the Python value returned by taking or collecting
  Hail expressions, e.g. ``mt.my_dict.take(5)``. This is rare; it is much
  more common to manipulate the :class:`.DictExpression` object, which is
  constructed using :func:`.dict`. This class is necessary because hail
  supports using dicts as keys to other dicts or as elements in sets, while
  python does not.
code: def __hash__(self) -> int:
      return hash(frozenset(self.items()))
  
file_path: hail/hail/python/hailtop/frozendict.py
imports: from typing import TypeVar, Dict, Generic
  from collections.abc import Mapping
label_desc: Use image node_id 3 for calling the frozendict obj's underlying member method code with example usage: obj.__hash__() and returns: hash