sig
  module K :
    sig
      val literal : Kojson.json -> Kojson.jin -> unit
      val convert : string -> (Kojson.json -> 'a) -> Kojson.jin -> 'a
      val any : Kojson.jin -> Kojson.json
      val null : Kojson.jin -> unit
      val bool : Kojson.jin -> bool
      val int : Kojson.jin -> int
      val float : Kojson.jin -> float
      val string : Kojson.jin -> string
      val string_enum : (string * 'a) list -> Kojson.jin -> 'a
      val list : (Kojson.jin -> 'a) -> Kojson.jin -> 'a list
      val array : (Kojson.jin -> 'a) -> Kojson.jin -> 'a array
      val assoc : (Kojson.jain -> 'a) -> Kojson.jin -> 'a
      val assoc_or_null : (Kojson.jain -> 'a) -> Kojson.jin -> 'a
      val first : (Kojson.jin -> 'a) list -> Kojson.jin -> 'a
    end
  module Ka :
    sig
      val any : Kojson.jain -> (string * Kojson.json) list
      val drop : string list -> Kojson.jain -> Kojson.jain
      val empty : '-> Kojson.jain -> 'a
      val stop : '-> Kojson.jain -> 'a
      val fold :
        (string -> Kojson.jin -> '-> 'a) -> Kojson.jain -> '-> 'a
      val iter : (string -> Kojson.jin -> unit) -> Kojson.jain -> unit
      val map : (string -> Kojson.jin -> 'a) -> Kojson.jain -> 'a list
      val first : (Kojson.jain -> 'a) list -> Kojson.jain -> 'a
    end
  val ( ^: ) :
    string -> (Kojson.jin -> Kojson.jain -> 'a) -> Kojson.jain -> 'a
  val ( ^?: ) :
    string -> (Kojson.jin option -> Kojson.jain -> 'a) -> Kojson.jain -> 'a
end