functor (A : S) (B : S) (C : S->
  sig
    type t = A.t * B.t * C.t
    val jtype : Package.jtype
    val of_json : json -> t
    val to_json : t -> json
  end