code: def __init__(
      self,
      f: Callable[..., Expression],
      param_types: Sequence[HailType],
      ret_type: HailType,
      name: str,
      type_args: Tuple[HailType, ...] = (),
  ):
      self._f = f
      self._name = name
      self._type_args = type_args
      self._param_types = param_types
      self._ret_type = ret_type
  
file_path: hail/hail/python/hail/experimental/function.py
imports: from typing import Optional, Tuple, Sequence, Callable
  from hail.expr.expressions import construct_expr, expr_any, unify_all, Expression
  from hail.expr.types import hail_type, HailType
  from hail.ir import Apply, Ref
  from hail.typecheck import typecheck, nullable, tupleof, anytype
  from hail.utils.java import Env
label_desc: Use image node_id 1 to create a new Function object  with example: obj = Function(f, param_types, ret_type, name, type_args)