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
type eval_mode =
| Text_mode
| TeX_mode
[@@deriving show, repr]
type binding_info =
| Strict
| Lazy
[@@deriving show, repr]
type 'a binding = binding_info * 'a
[@@deriving show, repr]
type delim =
Braces | Squares | Parens
[@@deriving show, repr]
let delim_to_strings = function
| Braces -> "{", "}"
| Squares -> "[", "]"
| Parens -> "(", ")"
type math_mode =
| Inline
| Display
[@@deriving show, repr]
type visibility =
Private | Public
[@@deriving show, repr]
type identity =
| Anonymous
| URI of URI.t
[@@deriving show]
let identity_to_uri = function
| URI uri -> Some uri
| Anonymous -> None
type origin =
| Physical of
(Lsp.Text_document.t [@printer fun ppf doc ->
Format.pp_print_string
ppf
(Lsp.(Uri.to_path @@ Text_document.documentUri doc))])
| Subtree of {parent: identity}
| Undefined
[@@deriving show]