sig
  module Kf :
    sig
      type t = Cil_types.kernel_function
      val syntax : Syntax.t
      val of_json : Data.json -> t
      val to_json : t -> Data.json
      module Joption :
        sig
          type t = t option
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
      module Jlist :
        sig
          type t = t list
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
      module Jarray :
        sig
          type t = t array
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
    end
  module Ki :
    sig
      type t = Cil_types.kinstr
      val syntax : Syntax.t
      val of_json : Data.json -> t
      val to_json : t -> Data.json
      module Joption :
        sig
          type t = t option
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
      module Jlist :
        sig
          type t = t list
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
      module Jarray :
        sig
          type t = t array
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
    end
  module Stmt :
    sig
      type t = Cil_types.stmt
      val syntax : Syntax.t
      val of_json : Data.json -> t
      val to_json : t -> Data.json
      module Joption :
        sig
          type t = t option
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
      module Jlist :
        sig
          type t = t list
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
      module Jarray :
        sig
          type t = t array
          val syntax : Syntax.t
          val of_json : Data.json -> t
          val to_json : t -> Data.json
        end
    end
  module Marker :
    sig
      type t = Printer_tag.localizable
      val syntax : Syntax.t
      val of_json : Data.json -> t
      val to_json : t -> Data.json
      val create : t -> string
      val lookup : string -> t
    end
  module Printer : Printer_tag.S_pp
end