我正在关注Real World OCaml以开始使用该语言,并且在某一时刻,我将在模块签名中使用s 表达式。这是我的mli
文件:
open Core.Std
(** Configuration type for query handlers *)
type config with sexp
(** Name of the query handler *)
val name : string
(** Query handler abstract type *)
type t
(** Create a query handler from an existing [config] *)
val create : config -> t
(** Evaluate a query, where both input and output an s-expressions. *)
val eval : t -> Sexp.t -> Sexp.t Or_error.t
但是,在编译该接口的实现时,我收到以下错误:
File "Query_Handler.mli", line 4, characters 12-16:
Error: Syntax error
Command exited with code 2.
所以我开始utop
尝试with sexp
一个更简单的例子:
module type Test = sig
type t with sexp
end;;
但我收到以下错误:
Error: Parse Error: "end" expected after [sig_items] (in [module type])
但是,sexplib
已安装,并且本书和我在 Internet 上的搜索均未提及使用此语法的任何“先决条件”。
我觉得我错过了什么。任何的想法?:(