使用sexplib语法扩展自动生成一个类型的序列化代码,如网上很多简单例子所示:
open Sexplib
type t = { foo : int; bar : string; } with sexp
let v = { foo = 3; bar = "baz"; } in
sexp_of_t v
Run Code Online (Sandbox Code Playgroud)
无法编译,使用Error: Unbound value int_of_sexp.
在最新版本的 sexplib 中,您需要首先open Sexplib.Std,它在生成的代码的命名空间中包含标准类型序列化例程。
所以:
open Sexplib
open Sexplib.Std (* newly essential import *)
type t = { foo : int; bar : string; } with sexp
let v = { foo = 3; bar = "baz"; } in
sexp_of_t v
Run Code Online (Sandbox Code Playgroud)
作品。