目前我正在尝试使用Batteries
和ppx_deriving.show
或类似的东西。
我想知道如何有用地将它们结合起来使用。
对于创建转储函数,我觉得ppx_deriving.show很有用。
但是,像下面这样一起使用时,我遇到了一些麻烦。
open Batteries
type t = { a: (int,int) Map.t }
[@@deriving show]
现在未定义Map.pp
,因此无法编译。
我的临时解决方法是创建module Map
,其中包含Batteries.Map
并定义函数pp
。
open Batteries
module Map = struct
include Map
let pp f g fmt t = ... (* create dump function by man hand *)
end
type t = { a: (int,int) Map.t }
[@@deriving show]
它能工作,但是我适应所有数据结构很痛苦...
使用带有 ppx_deriving.sexp
的 Core
是另一种选择,但我更喜欢带有 ppx_deriving.show
的 Batteries
。
有人知道如何解决这个问题吗?