message: refactor: function_type helper now can take Module instead of Instance
diff: @@ -273,17 +273,17 @@ void branch(uint32_t label_idx, LabelStack& labels, Stack<uint64_t>& stack, cons
  stack.resize(label.stack_height);
  }
  -const FuncType& function_type(const Instance& instance, FuncIdx idx)
  +const FuncType& function_type(const Module& module, FuncIdx idx)
  {
  - assert(idx < instance.imported_functions.size() + instance.module.funcsec.size());
  + assert(idx < module.imported_function_types.size() + module.funcsec.size());
  - if (idx < instance.imported_functions.size())
  - return instance.imported_functions[idx].type;
  + if (idx < module.imported_function_types.size())
  + return module.imported_function_types[idx];
  - const auto type_idx = instance.module.funcsec[idx - instance.imported_functions.size()];
  - assert(type_idx < instance.module.typesec.size());
  + const auto type_idx = module.funcsec[idx - module.imported_function_types.size()];
  + assert(type_idx < module.typesec.size());
  - return instance.module.typesec[type_idx];
  + return module.typesec[type_idx];
  }
  template <class F>
  @@ -595,7 +595,7 @@ std::unique_ptr<Instance> instantiate(Module module,
  return execute(instance_ref, idx, std::move(args), depth);
  };
  - *it_table++ = ExternalFunction{std::move(func), function_type(*instance, idx)};
  + *it_table++ = ExternalFunction{std::move(func), function_type(instance->module, idx)};
  }
  }
  @@ -787,7 +787,7 @@ execution_result execute(
  case Instr::call:
  {
  const auto called_func_idx = read<uint32_t>(immediates);
  - const auto& func_type = function_type(instance, called_func_idx);
  + const auto& func_type = function_type(instance.module, called_func_idx);
  if (!invoke_function(func_type, called_func_idx, instance, stack, depth))
  {
  @@ -1599,7 +1599,7 @@ std::optional<ExternalFunction> find_exported_function(Instance& instance, std::
  return execute(instance, idx, std::move(args), depth);
  };
  - return ExternalFunction{std::move(func), function_type(instance, idx)};
  + return ExternalFunction{std::move(func), function_type(instance.module, idx)};
  }
  std::optional<ExternalGlobal> find_exported_global(Instance& instance, std::string_view name)
  