sig
  type overload_result =
      int * Flx_types.btypecode_t * Flx_types.btypecode_t *
      (int * Flx_types.btypecode_t) list * Flx_types.btypecode_t list
  val overload :
    Flx_mtypes2.sym_state_t ->
    (Flx_ast.range_srcref ->
     int -> Flx_ast.typecode_t -> Flx_types.btypecode_t) ->
    (int ->
     Flx_ast.qualified_name_t ->
     Flx_types.entry_set_t * Flx_ast.typecode_t list) ->
    Flx_ast.range_srcref ->
    Flx_types.entry_kind_t list ->
    string ->
    Flx_types.btypecode_t list ->
    Flx_types.btypecode_t list -> Flx_overload.overload_result option
  exception OverloadKindError of Flx_ast.range_srcref * string
end