this repo has no description
1open Types
2module O = Codefmt
3open O.Infix
4
5module ML = Generator.Make (struct
6 module Obj = struct
7 let close_tag_closed = " >"
8
9 let close_tag_extendable = ".. >"
10
11 let field_separator = "; "
12
13 let open_tag_closed = "< "
14
15 let open_tag_extendable = "< "
16 end
17
18 module Type = struct
19 let annotation_separator = " : "
20
21 let handle_params name args = O.span (args ++ O.sp ++ name)
22
23 let handle_constructor_params = handle_params
24
25 let handle_substitution_params name args = O.span (args ++ O.txt " " ++ name)
26
27 let handle_format_params p = p
28
29 let type_def_semicolon = false
30
31 let private_keyword = "private"
32
33 let parenthesize_constructor = false
34
35 module Variant = struct
36 let parenthesize_params = false
37 end
38
39 module Tuple = struct
40 let element_separator = O.sp ++ O.txt "* "
41
42 let always_parenthesize = false
43 end
44
45 module Record = struct
46 let field_separator = ";"
47 end
48
49 let var_prefix = "'"
50
51 let any = "_"
52
53 let arrow = O.span ~attr:"arrow" (O.entity "#45" ++ O.entity "gt")
54
55 module Exception = struct
56 let semicolon = false
57 end
58
59 module GADT = struct
60 let arrow = arrow
61 end
62
63 module External = struct
64 let semicolon = false
65
66 let handle_primitives prims =
67 List.map (fun p -> inline @@ Text ("\"" ^ p ^ "\" ")) prims
68 end
69 end
70
71 module Mod = struct
72 let open_tag = O.keyword "sig"
73
74 let close_tag = O.keyword "end"
75
76 let close_tag_semicolon = false
77
78 let include_semicolon = false
79
80 let functor_keyword = true
81
82 let functor_contraction = true
83 end
84
85 module Class = struct
86 let open_tag = O.keyword "object"
87
88 let close_tag = O.keyword "end"
89 end
90
91 module Value = struct
92 let variable_keyword = "val"
93
94 let semicolon = false
95 end
96
97 module Comment = struct
98 let markers = ("(*", "*)")
99 end
100end)
101
102include ML