code: def parse_allele_specific_fields(
      info: hl.StructExpression,
      has_non_ref: Union[bool, hl.BooleanExpression],
  ) -> hl.StructExpression:
      def parse_field(field: str) -> hl.Expression:
          if parse := _allele_specific_field_parsers.get(field):
              return parse(info[field], has_non_ref)
          return info[field]
  
      return hl.struct(**{f: parse_field(f) for f in info})
  
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 15 for calling a global function with example usage: parse_allele_specific_fields(info, has_non_ref) and returns: hl, info, parse