1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
open Base
open Forester_prelude
type node =
| Text of string
| Verbatim of string
| Group of delim * t
| Math of math_mode * t
| Link of {dest : t; title : t option}
| Subtree of string option * tree
| Fun of Symbol.t binding list * t
| Var of Symbol.t
| Sym of Symbol.t
| Put of t * t * t
| Default of t * t * t
| Get of t
| Xml_tag of xml_resolved_qname * (xml_resolved_qname * t) list * t
| TeX_cs of TeX_cs.t
| Prim of Prim.t
| Object of {self : Symbol.t; methods: (string * t) list}
| Patch of {obj : t; self : Symbol.t; super : Symbol.t; methods : (string * t) list}
| Call of t * string
| Query_polarity of Query.polarity
| Query_mode of Query.mode
| Query_tree
| Query_rel
| Query_isect
| Query_union
| Query_compl
| Query_isect_fam
| Query_union_fam
| Query_isect_fam_rel
| Query_union_fam_rel
| Query_builtin of [`Taxon | `Author | `Tag]
| Transclude
| Embed_tex
| Ref
| Title
| Parent
| Taxon
| Meta
| Author
| Contributor
| Tag
| Date
| Number
[@@deriving show]
and t = node Range.located list
[@@deriving show]
and tree = t