functor (A : S) -> sig type t = A.t option val syntax : Syntax.t val of_json : json -> t val to_json : t -> json end