functor (A : IdentifiedType->
  sig
    type t = A.t
    val syntax : Syntax.t
    val of_json : json -> t
    val to_json : t -> json
    module Joption :
      sig
        type t = t option
        val syntax : Syntax.t
        val of_json : json -> t
        val to_json : t -> json
      end
    module Jlist :
      sig
        type t = t list
        val syntax : Syntax.t
        val of_json : json -> t
        val to_json : t -> json
      end
    module Jarray :
      sig
        type t = t array
        val syntax : Syntax.t
        val of_json : json -> t
        val to_json : t -> json
      end
    val get : t -> int
    val find : int -> t
    val clear : unit -> unit
  end