code: def defined_entry_fields(mt: MatrixTable, sample=None) -> Set[str]:
      if sample is not None:
          mt = mt.head(sample)
      used = mt.aggregate_entries(
          hl.struct(
              **{
                  k: hl.agg.any(hl.is_defined(v))
                  for k, v in mt.entry.items()
              }
          )
      )
      return set(k for k in mt.entry if used[k])
  
imports: import math
  from typing import Collection, Optional, Set, Union, List, Tuple, Dict
  import hail
  from hail import MatrixTable, Table
  from hail.experimental.function import Function
  from hail.expr import StructExpression, unify_all, construct_expr
  from hail.expr.expressions import expr_bool, expr_str
  from hail.genetics.reference_genome import reference_genome_type
  from hail.ir import Apply, TableMapRows
  from hail.typecheck import oneof, sequenceof, typecheck
  from ..variant_dataset import VariantDataset
label_desc: Use image node_id 2 for calling a global function with example usage: defined_entry_fields(mt, sample) and returns: set