#[doc = "The document model"]; type ast_id = int; type cratedoc = ~{ topmod: moddoc, }; type moddoc = ~{ id: ast_id, name: str, brief: option, desc: option, mods: modlist, fns: fnlist }; type fndoc = ~{ id: ast_id, name: str, brief: option, desc: option, args: [argdoc], return: option }; type argdoc = ~{ name: str, desc: option, ty: option }; type retdoc = { desc: option, ty: option }; // Just to break the structural recursive types tag modlist = [moddoc]; tag fnlist = [fndoc];