code: def read_expression(path, _assert_type=None):
      """Read an :class:`~.Expression` written with :func:`.experimental.write_expression`.
  
      Example
      -------
      >>> hl.experimental.write_expression(hl.array([1, 2]), 'output/test_expression.he')
      >>> expression = hl.experimental.read_expression('output/test_expression.he')
      >>> hl.eval(expression)
  
      Parameters
      ----------
  
      path : :class:`str`
          File to read.
  
      Returns
      -------
      :class:`~.Expression`
      """
      _assert_table_type = None
      _load_refs = True
      if _assert_type:
          _assert_table_type = ttable(
              hl.tstruct(expr=_assert_type),
              row_type=hl.tstruct(),
              row_key=[],
          )
          _load_refs = False
      return (
          hl.read_table(
              path,
              _assert_type=_assert_table_type,
              _load_refs=_load_refs,
          )
          .index_globals()
          .expr
      )
  
imports: import hail
  from hail.expr.expressions import expr_any, analyze
  from hail.expr.types import hail_type
  from hail.expr.table_type import ttable
  from hail.typecheck import typecheck, nullable
label_desc: Use image node_id 2 for calling a global function with example usage: read_expression(path, _assert_type) and returns: hl