On 3 Oct 2009, at 18:27, blue storm wrote: > On Sat, Oct 3, 2009 at 2:16 PM, Anil Madhavapeddy > wrote: >> The only thing I haven't quite worked out yet is the quotation to >> pattern-match type applications to detect things like "(string, unit) >> Hashtbl.t" the way the current json-static does via the grammar >> extension. >> -anil > > Below are two patches (from `git log -u`) adding the relevant > features. > (snip) > - > + | <:ctyp< assoc $t$ >> as assoc -> > + (match t with > + | <:ctyp< (string * $t$) >> -> Assoc (_loc, process_td _loc t) > + | _ -> failwith "must be of the form (string * ...) assoc") > | <:ctyp< < $cs$ > >> -> Object (process_fields _loc cs) > | <:ctyp< { $cs$ } >> -> Record (process_fields _loc cs) Thanks; my goal is to avoid putting in special types into type-conv generators though ('assoc' here), so they can be used alongside other generators too. It seems reasonable to just special-case "Hashtbl.t string $t$" and "list ( string * $t$ )", since JSON objects must have a string as the key. I've pushed a patch which does that to my tree, along with some of your other changes. -anil