json.urs 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. (** The JSON text-based serialization format *)
  2. class json
  3. val toJson : a ::: Type -> json a -> a -> string
  4. val fromJson : a ::: Type -> json a -> string -> a
  5. val fromJson' : a ::: Type -> json a -> string -> a * string
  6. val mkJson : a ::: Type -> {ToJson : a -> string,
  7. FromJson : string -> a * string} -> json a
  8. val json_string : json string
  9. val json_int : json int
  10. val json_float : json float
  11. val json_bool : json bool
  12. val json_option : a ::: Type -> json a -> json (option a)
  13. val json_list : a ::: Type -> json a -> json (list a)
  14. val json_record : ts ::: {Type} -> folder ts -> $(map json ts) -> $(map (fn _ => string) ts) -> json $ts
  15. val json_variant : ts ::: {Type} -> folder ts -> $(map json ts) -> $(map (fn _ => string) ts) -> json (variant ts)
  16. val json_unit : json unit
  17. functor Recursive (M : sig
  18. con t :: Type -> Type
  19. val json_t : a ::: Type -> json a -> json (t a)
  20. end) : sig
  21. datatype r = Rec of M.t r
  22. val json_r : json r
  23. end