struct 关键字如何用于模块定义中的 OCaml 兼容性?

How is the struct keyword used for OCaml compatibility in module definitions?

假设我有这样的类型:

type Sprite =
  {
    Position : struct (int * int)
  }

Ionidestruct 的悬停文本说:

struct

Description

Used to declare a structure type. Also used in generic parameter constraints.

Used for OCaml compatibility in module definitions.

我很好奇,这部分是什么意思?

Used for OCaml compatibility in module definitions.

基本的 OCaml 模块定义具有语法

module Module = struct
  ...
end

F# 最初是 OCaml 的一个端口,但此时已经更改了很多语法,但仍然有很多东西可以向后兼容。如果您在 F# 程序中使用此语法,您将看到以下警告:

This construct is for ML compatibility. The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end'.