Mercurial > meta
view json.urs @ 22:8de201d70b91
Implement JSON typeclass for polymorphic variants.
author | Edward Z. Yang <ezyang@mit.edu> |
---|---|
date | Wed, 02 May 2012 11:47:37 -0400 |
parents | 943410267fad |
children | 9d6b931fbd13 |
line wrap: on
line source
(** The JSON text-based serialization format *) class json val toJson : a ::: Type -> json a -> a -> string val fromJson : a ::: Type -> json a -> string -> a val mkJson : a ::: Type -> {ToJson : a -> string, FromJson : string -> a * string} -> json a val json_string : json string val json_int : json int val json_float : json float val json_bool : json bool val json_option : a ::: Type -> json a -> json (option a) val json_list : a ::: Type -> json a -> json (list a) val json_record : ts ::: {Type} -> folder ts -> $(map json ts) -> $(map (fn _ => string) ts) -> json $ts val json_variant : ts ::: {Type} -> folder ts -> $(map json ts) -> $(map (fn _ => string) ts) -> json (variant ts) val json_unit : json unit