请解释此OCaml类型定义

请解释此OCaml类型定义,ocaml,Ocaml,记录定义: type t = {name: string} 变量定义: type thing = Thing1 | Thing2; 有人能举例说明以下代码段定义了什么吗? type ('a, 'b) t = Blah : ((('a, 'b) Tea_result.t -> unit) -> unit) -> ('a, 'b) t 更一般地说,这种结构: type t = Blah : xxx 任何见解都将不胜感激。这是广义代数数据类型-请查看

记录定义:

type t = {name: string}
变量定义:

type thing = Thing1 | Thing2;
有人能举例说明以下代码段定义了什么吗?

type ('a, 'b) t =
   Blah : ((('a, 'b) Tea_result.t -> unit) -> unit) -> ('a, 'b) t
更一般地说,这种结构:

type t = Blah : xxx

任何见解都将不胜感激。

这是广义代数数据类型-请查看