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