this repo has no description

latex backend: add flag to shorten submodules documentation

authored by

Florian Angeletti and committed by jon.recoil.org 6d4075e3 5ec452b8

+363 -410
+113 -70
src/latex/generator.ml
··· 3 3 module Doctree = Odoc_document.Doctree 4 4 module Url = Odoc_document.Url 5 5 6 + type config = { 7 + with_children : bool; 8 + shorten_beyond_depth : int option; 9 + remove_functor_arg_link : bool; 10 + } 11 + 6 12 module Link = struct 7 13 let rec flatten_path ppf (x : Odoc_document.Url.Path.t) = 8 14 let pp_parent ppf = function ··· 19 25 let label (x : Odoc_document.Url.t) = 20 26 match x.anchor with "" -> page x.page | a -> anchor x.page a 21 27 22 - let rec is_class_or_module_path (url : Odoc_document.Url.Path.t) = 23 - match url.kind with 24 - | `Module | `LeafPage | `Class | `Page -> ( 25 - match url.parent with 26 - | None -> true 27 - | Some url -> is_class_or_module_path url) 28 - | _ -> false 28 + let rec is_inside_param (x : Odoc_document.Url.Path.t) = 29 + match (x.kind, x.parent) with 30 + | `Parameter _, _ -> true 31 + | _, None -> false 32 + | _, Some p -> is_inside_param p 29 33 30 - let should_inline status url = 31 - match status with 32 - | `Inline | `Open -> true 33 - | `Closed -> false 34 - | `Default -> not @@ is_class_or_module_path url 34 + let ref config (x : Odoc_document.Url.t) = 35 + if config.remove_functor_arg_link && is_inside_param x.page then "" 36 + else label x 35 37 36 38 let get_dir_and_file url = 37 39 let open Odoc_document in ··· 48 50 if add_ext then Fpath.add_ext "tex" file else file 49 51 end 50 52 53 + module Expansion = struct 54 + let is_class_or_module (url : Odoc_document.Url.Path.t) = 55 + match url.kind with 56 + | `Module | `LeafPage | `Class | `Page -> true 57 + | _ -> false 58 + 59 + let shortened config status url = 60 + let depth x = List.length Odoc_document.Url.(Path.to_list x) in 61 + match (config.shorten_beyond_depth, status) with 62 + | None, _ | _, (`Inline | `Open | `Closed) -> false 63 + | Some d, `Default -> depth url >= d 64 + 65 + let should_inline status url = 66 + match status with 67 + | `Inline | `Open -> true 68 + | `Closed -> false 69 + | `Default -> 70 + (* we don't inline contents that should appear in their own page.*) 71 + not (is_class_or_module url) 72 + 73 + let remove_subpage config status url = 74 + shortened config status url || should_inline status url 75 + end 76 + 51 77 let style = function 52 78 | `Emphasis | `Italic -> Raw.emph 53 79 | `Bold -> Raw.bold ··· 67 93 in 68 94 Raw.hyperref s pp ppf content 69 95 70 - let label = function 71 - | None -> [] 72 - | Some x (* {Odoc_document.Url.Anchor.anchor ; page; _ }*) -> 73 - [ Label (Link.label x) ] 96 + let label = function None -> [] | Some x -> [ Label (Link.label x) ] 74 97 75 98 let level_macro = function 76 99 | 0 -> Raw.section ··· 220 243 and tokens t = Odoc_utils.List.concat_map token t in 221 244 tokens t 222 245 223 - let rec internalref ~verbatim ~in_source (t : Target.internal) (c : Inline.t) = 246 + let rec internalref ~config ~verbatim ~in_source (t : Target.internal) 247 + (c : Inline.t) = 224 248 let target = 225 249 match t with 226 - | Target.Resolved uri -> Link.label uri 250 + | Target.Resolved uri -> Link.ref config uri 227 251 | Unresolved -> "xref-unresolved" 228 252 in 229 - let text = Some (inline ~verbatim ~in_source c) in 253 + let text = inline ~config ~verbatim ~in_source c in 230 254 let short = in_source in 231 - Internal_ref { short; target; text } 255 + Internal_ref { short; target; text = Some text } 232 256 233 - and inline ~in_source ~verbatim (l : Inline.t) = 257 + and inline ~config ~in_source ~verbatim (l : Inline.t) = 234 258 let one (t : Inline.one) = 235 259 match t.desc with 236 260 | Text _s -> assert false 237 261 | Linebreak -> [ Break Line ] 238 - | Styled (style, c) -> [ Style (style, inline ~verbatim ~in_source c) ] 262 + | Styled (style, c) -> 263 + [ Style (style, inline ~config ~verbatim ~in_source c) ] 239 264 | Link { target = External ext; content = c; _ } -> 240 - let content = inline ~verbatim:false ~in_source:false c in 265 + let content = inline ~config ~verbatim:false ~in_source:false c in 241 266 [ External_ref (ext, Some content) ] 242 267 | Link { target = Internal ref_; content = c; _ } -> 243 - [ internalref ~in_source ~verbatim ref_ c ] 268 + [ internalref ~config ~in_source ~verbatim ref_ c ] 244 269 | Source c -> 245 - [ Inlined_code (source (inline ~verbatim:false ~in_source:true) c) ] 270 + [ 271 + Inlined_code 272 + (source (inline ~config ~verbatim:false ~in_source:true) c); 273 + ] 246 274 | Math s -> [ Raw (Format.asprintf "%a" Raw.math s) ] 247 275 | Raw_markup r -> raw_markup r 248 276 | Entity s -> [ entity ~in_source ~verbatim s ] ··· 264 292 in 265 293 prettify l 266 294 267 - let heading p (h : Heading.t) = 268 - let content = inline ~in_source:false ~verbatim:false h.title in 295 + let heading ~config p (h : Heading.t) = 296 + let content = inline ~config ~in_source:false ~verbatim:false h.title in 269 297 [ 270 298 Section 271 299 { label = Option.map (Link.anchor p) h.label; level = h.level; content }; 272 300 Break Aesthetic; 273 301 ] 274 302 275 - let non_empty_block_code c = 276 - let s = source (inline ~verbatim:true ~in_source:true) c in 303 + let non_empty_block_code ~config c = 304 + let s = source (inline ~config ~verbatim:true ~in_source:true) c in 277 305 match s with 278 306 | [] -> [] 279 307 | _ :: _ as l -> [ Break Separation; Code_block l; Break Separation ] 280 308 281 - let non_empty_code_fragment c = 282 - let s = source (inline ~verbatim:false ~in_source:true) c in 309 + let non_empty_code_fragment ~config c = 310 + let s = source (inline ~config ~verbatim:false ~in_source:true) c in 283 311 match s with [] -> [] | _ :: _ as l -> [ Code_fragment l ] 284 312 285 313 let alt_text ~in_source (target : Target.t) alt = ··· 299 327 [ Image fpath ] 300 328 | _ -> alt_text ~in_source (Internal (Resolved internal_url)) alt 301 329 302 - let rec block ~in_source (l : Block.t) = 330 + let rec block ~config ~in_source (l : Block.t) = 303 331 let one (t : Block.one) = 304 332 match t.desc with 305 - | Inline i -> inline ~verbatim:false ~in_source:false i 333 + | Inline i -> inline ~config ~verbatim:false ~in_source:false i 306 334 | Image (Internal (Resolved x), alt) -> image ~in_source x alt 307 335 | Image (t, alt) | Audio (t, alt) | Video (t, alt) -> 308 336 alt_text ~in_source t alt 309 337 | Paragraph i -> 310 - inline ~in_source:false ~verbatim:false i 338 + inline ~config ~in_source:false ~verbatim:false i 311 339 @ if in_source then [] else [ Break Paragraph ] 312 340 | List (typ, l) -> 313 - [ List { typ; items = List.map (block ~in_source:false) l } ] 314 - | Table t -> table_block t 341 + [ List { typ; items = List.map (block ~config ~in_source:false) l } ] 342 + | Table t -> table_block ~config t 315 343 | Description l -> 316 344 [ 317 345 (let item i = 318 - ( inline ~in_source ~verbatim:false i.Description.key, 319 - block ~in_source i.Description.definition ) 346 + ( inline ~config ~in_source ~verbatim:false i.Description.key, 347 + block ~config ~in_source i.Description.definition ) 320 348 in 321 349 Description (List.map item l)); 322 350 ] 323 351 | Raw_markup r -> raw_markup r 324 352 | Verbatim s -> [ Verbatim s ] 325 - | Source (_, c) -> non_empty_block_code c 353 + | Source (_, c) -> non_empty_block_code ~config c 326 354 | Math s -> 327 355 [ 328 356 Break Paragraph; ··· 332 360 in 333 361 Odoc_utils.List.concat_map one l 334 362 335 - and table_block { Table.data; align } = 363 + and table_block ~config { Table.data; align } = 336 364 let data = 337 365 List.map 338 366 (List.map (fun (cell, cell_type) -> 339 - let content = block ~in_source:false cell in 367 + let content = block ~config ~in_source:false cell in 340 368 match cell_type with 341 369 | `Header -> [ Style (`Bold, content) ] 342 370 | `Data -> content)) ··· 352 380 in 353 381 List.for_all is_text l 354 382 355 - let rec documentedSrc (t : DocumentedSrc.t) = 383 + let rec documentedSrc ~config (t : DocumentedSrc.t) = 356 384 let open DocumentedSrc in 357 385 let rec to_latex t = 358 386 match t with ··· 364 392 | _ -> Stop_and_keep) 365 393 in 366 394 let code, _, rest = take_code t in 367 - non_empty_code_fragment code @ to_latex rest 395 + non_empty_code_fragment ~config code @ to_latex rest 368 396 | Alternative (Expansion e) :: rest -> 369 - (if Link.should_inline e.status e.url then to_latex e.expansion 370 - else non_empty_code_fragment e.summary) 371 - @ to_latex rest 397 + let elt = 398 + (* In the [should_inline] or [shortened], we are replacing the 399 + independent page by the inlined contents, thus we need to redirect 400 + the links to the missing page to the inlined contents. 401 + redirect the *) 402 + if Expansion.should_inline e.status e.url then 403 + Label (Link.page e.url) :: to_latex e.expansion 404 + else if Expansion.shortened config e.status e.url then 405 + Label (Link.page e.url) :: non_empty_code_fragment ~config e.summary 406 + else non_empty_code_fragment ~config e.summary 407 + in 408 + elt @ to_latex rest 372 409 | Subpage subp :: rest -> 373 - Indented (items subp.content.url subp.content.items) :: to_latex rest 410 + Indented (items ~config subp.content.url subp.content.items) 411 + :: to_latex rest 374 412 | (Documented _ | Nested _) :: _ -> 375 413 let take_descr l = 376 414 Doctree.Take.until l ~classify:(function ··· 402 440 let one dsrc = 403 441 let content = 404 442 match dsrc.code with 405 - | `D code -> inline ~verbatim:false ~in_source:true code 443 + | `D code -> inline ~config ~verbatim:false ~in_source:true code 406 444 | `N n -> to_latex n 407 445 in 408 - let doc = [ block ~in_source:true dsrc.doc ] in 446 + let doc = [ block ~config ~in_source:true dsrc.doc ] in 409 447 (content @ label dsrc.anchor) :: doc 410 448 in 411 449 layout_table (List.map one l) @ to_latex rest 412 450 in 413 451 to_latex t 414 452 415 - and items page_url l = 453 + and items ~config page_url l = 416 454 let rec walk_items ~page_url ~only_text acc (t : Item.t list) = 417 455 let continue_with rest elts = 418 456 walk_items ~page_url ~only_text (List.rev_append elts acc) rest ··· 425 463 | Item.Text text -> Accum text 426 464 | _ -> Stop_and_keep) 427 465 in 428 - let content = block ~in_source:false text in 466 + let content = block ~config ~in_source:false text in 429 467 let elts = content in 430 468 elts |> continue_with rest 431 - | Heading h :: rest -> heading page_url h |> continue_with rest 469 + | Heading h :: rest -> heading ~config page_url h |> continue_with rest 432 470 | Include 433 471 { 434 472 attr = _; ··· 439 477 } 440 478 :: rest -> 441 479 let included = items page_url content in 442 - let docs = block ~in_source:true doc in 443 - let summary = source (inline ~verbatim:false ~in_source:true) summary in 480 + let docs = block ~config ~in_source:true doc in 481 + let summary = 482 + source (inline ~config ~verbatim:false ~in_source:true) summary 483 + in 444 484 let content = included in 445 485 label anchor @ docs @ summary @ content |> continue_with rest 446 486 | Declaration { Item.attr = _; source_anchor = _; anchor; content; doc } 447 487 :: rest -> 448 - let content = label anchor @ documentedSrc content in 488 + let content = label anchor @ documentedSrc ~config content in 449 489 let elts = 450 490 match doc with 451 491 | [] -> content @ [ Break Line ] 452 492 | docs -> 453 493 content 454 - @ [ Indented (block ~in_source:true docs); Break Separation ] 494 + @ [ 495 + Indented (block ~config ~in_source:true docs); 496 + Break Separation; 497 + ] 455 498 in 456 499 continue_with rest elts 457 500 and items page_url l = ··· 466 509 in 467 510 Fmt.list input_child ppf children 468 511 469 - let make ~with_children url content children = 512 + let make ~config url content children = 470 513 let filename = Link.filename url in 471 514 let label = Label (Link.page url) in 472 515 let content = ··· 476 519 | q -> label :: q 477 520 in 478 521 let children_input ppf = 479 - if with_children then link_children ppf children else () 522 + if config.with_children then link_children ppf children else () 480 523 in 481 524 let content ppf = Fmt.pf ppf "@[<v>%a@,%t@]@." pp content children_input in 482 525 { Odoc_document.Renderer.filename; content; children; path = url } ··· 485 528 module Page = struct 486 529 let on_sub = function `Page _ -> Some 1 | `Include _ -> None 487 530 488 - let rec subpage ~with_children (p : Subpage.t) = 489 - if Link.should_inline p.status p.content.url then [] 490 - else [ page ~with_children p.content ] 531 + let rec subpage ~config (p : Subpage.t) = 532 + if Expansion.remove_subpage config p.status p.content.url then [] 533 + else [ page ~config p.content ] 491 534 492 - and subpages ~with_children subpages = 493 - List.flatten @@ List.map (subpage ~with_children) subpages 535 + and subpages ~config subpages = 536 + List.flatten @@ List.map (subpage ~config) subpages 494 537 495 - and page ~with_children p = 538 + and page ~config p = 496 539 let { Page.items = i; url; _ } = 497 540 Doctree.Labels.disambiguate_page ~enter_subpages:true p 498 - and subpages = subpages ~with_children @@ Doctree.Subpages.compute p in 541 + and subpages = subpages ~config @@ Doctree.Subpages.compute p in 499 542 let i = Doctree.Shift.compute ~on_sub i in 500 543 let header, preamble = Doctree.PageTitle.render_title p in 501 - let header = items url (header @ preamble) in 502 - let content = items url i in 503 - let page = Doc.make ~with_children url (header @ content) subpages in 544 + let header = items ~config url (header @ preamble) in 545 + let content = items ~config url i in 546 + let page = Doc.make ~config url (header @ content) subpages in 504 547 page 505 548 end 506 549 507 - let render ~with_children = function 508 - | Document.Page page -> [ Page.page ~with_children page ] 550 + let render ~config = function 551 + | Document.Page page -> [ Page.page ~config page ] 509 552 | Source_page _ -> [] 510 553 511 554 let filepath url = Link.filename ~add_ext:false url
+7 -1
src/latex/generator.mli
··· 2 2 val label : Odoc_document.Url.t -> string 3 3 end 4 4 5 + type config = { 6 + with_children : bool; 7 + shorten_beyond_depth : int option; 8 + remove_functor_arg_link : bool; 9 + } 10 + 5 11 val render : 6 - with_children:bool -> 12 + config:config -> 7 13 Odoc_document.Types.Document.t -> 8 14 Odoc_document.Renderer.page list 9 15
+18 -2
src/odoc/bin/main.ml
··· 1404 1404 let doc = "Include children at the end of the page." in 1405 1405 Arg.(value & opt bool true & info ~docv:"BOOL" ~doc [ "with-children" ]) 1406 1406 1407 + let shorten_beyond_depth = 1408 + let doc = "Shorten items beyond the given depth." in 1409 + Arg.( 1410 + value 1411 + & opt (some' int) None 1412 + & info ~docv:"INT" ~doc [ "shorten-beyond-depth" ]) 1413 + 1414 + let remove_functor_arg_link = 1415 + let doc = "Remove link to functor argument." in 1416 + Arg.( 1417 + value & opt bool false 1418 + & info ~docv:"BOOL" ~doc [ "remove-functor-arg-link" ]) 1419 + 1407 1420 let extra_args = 1408 - let f with_children = { Latex.with_children } in 1409 - Term.(const f $ with_children) 1421 + let f with_children shorten_beyond_depth remove_functor_arg_link = 1422 + { Latex.with_children; shorten_beyond_depth; remove_functor_arg_link } 1423 + in 1424 + Term.( 1425 + const f $ with_children $ shorten_beyond_depth $ remove_functor_arg_link) 1410 1426 end) 1411 1427 1412 1428 module Depends = struct
+6 -3
src/odoc/latex.ml
··· 1 1 open Odoc_document 2 2 3 - type args = { with_children : bool } 3 + type args = Odoc_latex.Generator.config = { 4 + with_children : bool; 5 + shorten_beyond_depth : int option; 6 + remove_functor_arg_link : bool; 7 + } 4 8 5 - let render args _sidebar page = 6 - Odoc_latex.Generator.render ~with_children:args.with_children page 9 + let render args _sidebar page = Odoc_latex.Generator.render ~config:args page 7 10 8 11 let filepath _args url = Odoc_latex.Generator.filepath url 9 12
+1 -1
test/generators/latex/Alerts.tex
··· 14 14 \item[{deprecated}]{}\end{description}% 15 15 \end{ocamlindent}% 16 16 \medbreak 17 - \label{Alerts--module-Top1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Alerts-Top1]{\ocamlinlinecode{Top1}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 17 + \label{Alerts--module-Top1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Alerts-Top1]{\ocamlinlinecode{Top1}}}\label{Alerts-Top1}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 18 18 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 19 19 \label{Alerts--val-d}\ocamlcodefragment{\ocamltag{keyword}{val} d : int}\begin{ocamlindent}\begin{description}\kern-\topsep 20 20 \makeatletter\advance\@topsepadd-\topsep\makeatother% topsep is hardcoded
+1 -1
test/generators/latex/Bugs_post_406.tex
··· 1 1 \section{Module \ocamlinlinecode{Bugs\_\allowbreak{}post\_\allowbreak{}406}}\label{Bugs_post_406}% 2 2 Let-open in class types, https://github.com/ocaml/odoc/issues/543 This was added to the language in 4.06 3 3 4 - \label{Bugs_post_406--class-type-let_open}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Bugs_post_406-class-type-let_open]{\ocamlinlinecode{let\_\allowbreak{}open}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 4 + \label{Bugs_post_406--class-type-let_open}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Bugs_post_406-class-type-let_open]{\ocamlinlinecode{let\_\allowbreak{}open}}}\label{Bugs_post_406-class-type-let_open}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \label{Bugs_post_406--class-let_open'}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Bugs_post_406-class-let_open']{\ocamlinlinecode{let\_\allowbreak{}open'}}}\ocamlcodefragment{ : \ocamltag{keyword}{object} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 7 7
+5 -5
test/generators/latex/Class.tex
··· 1 1 \section{Module \ocamlinlinecode{Class}}\label{Class}% 2 - \label{Class--class-type-empty}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Class-class-type-empty]{\ocamlinlinecode{empty}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 2 + \label{Class--class-type-empty}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Class-class-type-empty]{\ocamlinlinecode{empty}}}\label{Class-class-type-empty}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 3 3 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 4 - \label{Class--class-type-mutually}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Class-class-type-mutually]{\ocamlinlinecode{mutually}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 4 + \label{Class--class-type-mutually}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Class-class-type-mutually]{\ocamlinlinecode{mutually}}}\label{Class-class-type-mutually}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 - \label{Class--class-type-recursive}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Class-class-type-recursive]{\ocamlinlinecode{recursive}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 6 + \label{Class--class-type-recursive}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Class-class-type-recursive]{\ocamlinlinecode{recursive}}}\label{Class-class-type-recursive}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 7 7 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 8 8 \label{Class--class-mutually'}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Class-class-mutually']{\ocamlinlinecode{mutually'}}}\ocamlcodefragment{ : \hyperref[Class-class-type-mutually]{\ocamlinlinecode{mutually}}}\\ 9 9 \label{Class--class-recursive'}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Class-class-recursive']{\ocamlinlinecode{recursive'}}}\ocamlcodefragment{ : \hyperref[Class-class-type-recursive]{\ocamlinlinecode{recursive}}}\\ 10 - \label{Class--class-type-empty_virtual}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \ocamltag{keyword}{virtual} \hyperref[Class-class-type-empty_virtual]{\ocamlinlinecode{empty\_\allowbreak{}virtual}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 10 + \label{Class--class-type-empty_virtual}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \ocamltag{keyword}{virtual} \hyperref[Class-class-type-empty_virtual]{\ocamlinlinecode{empty\_\allowbreak{}virtual}}}\label{Class-class-type-empty_virtual}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 11 11 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 12 12 \label{Class--class-empty_virtual'}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{virtual} \hyperref[Class-class-empty_virtual']{\ocamlinlinecode{empty\_\allowbreak{}virtual'}}}\ocamlcodefragment{ : \hyperref[Class-class-type-empty]{\ocamlinlinecode{empty}}}\\ 13 - \label{Class--class-type-polymorphic}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} 'a \hyperref[Class-class-type-polymorphic]{\ocamlinlinecode{polymorphic}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 13 + \label{Class--class-type-polymorphic}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} 'a \hyperref[Class-class-type-polymorphic]{\ocamlinlinecode{polymorphic}}}\label{Class-class-type-polymorphic}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 14 14 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 15 15 \label{Class--class-polymorphic'}\ocamlcodefragment{\ocamltag{keyword}{class} 'a \hyperref[Class-class-polymorphic']{\ocamlinlinecode{polymorphic'}}}\ocamlcodefragment{ : \ocamltag{type-var}{'a} \hyperref[Class-class-type-polymorphic]{\ocamlinlinecode{polymorphic}}}\\ 16 16
+1 -1
test/generators/latex/Functor.F1.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor.\allowbreak{}F1}}\label{Functor-F1}% 2 2 \subsection{Parameters\label{Functor-F1--parameters}}% 3 - \label{Functor-F1--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F1-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F1-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 + \label{Functor-F1--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F1-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Functor-F1-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F1-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Functor-F1--signature}}%
+1 -1
test/generators/latex/Functor.F2.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor.\allowbreak{}F2}}\label{Functor-F2}% 2 2 \subsection{Parameters\label{Functor-F2--parameters}}% 3 - \label{Functor-F2--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F2-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F2-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 + \label{Functor-F2--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F2-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Functor-F2-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F2-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Functor-F2--signature}}%
+1 -1
test/generators/latex/Functor.F3.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor.\allowbreak{}F3}}\label{Functor-F3}% 2 2 \subsection{Parameters\label{Functor-F3--parameters}}% 3 - \label{Functor-F3--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F3-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F3-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 + \label{Functor-F3--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F3-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Functor-F3-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F3-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Functor-F3--signature}}%
+1 -1
test/generators/latex/Functor.F4.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor.\allowbreak{}F4}}\label{Functor-F4}% 2 2 \subsection{Parameters\label{Functor-F4--parameters}}% 3 - \label{Functor-F4--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F4-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F4-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 + \label{Functor-F4--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-F4-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Functor-F4-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-F4-argument-1-Arg--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Functor-F4--signature}}%
+3 -3
test/generators/latex/Functor.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor}}\label{Functor}% 2 - \label{Functor--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 2 + \label{Functor--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor-module-type-S]{\ocamlinlinecode{S}}}\label{Functor-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 3 \end{ocamlindent}% 4 4 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 5 - \label{Functor--module-type-S1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor-module-type-S1]{\ocamlinlinecode{S1}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Functor-module-type-S1--parameters}}% 6 - \label{Functor-module-type-S1--argument-1-_}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-module-type-S1-argument-1-_]{\ocamlinlinecode{\_\allowbreak{}}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-module-type-S1-argument-1-_--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 5 + \label{Functor--module-type-S1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor-module-type-S1]{\ocamlinlinecode{S1}}}\label{Functor-module-type-S1}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Functor-module-type-S1--parameters}}% 6 + \label{Functor-module-type-S1--argument-1-_}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor-module-type-S1-argument-1-_]{\ocamlinlinecode{\_\allowbreak{}}}}\label{Functor-module-type-S1-argument-1-_}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor-module-type-S1-argument-1-_--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 7 7 \end{ocamlindent}% 8 8 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 9 9 \subsubsection{Signature\label{Functor-module-type-S1--signature}}%
+2 -2
test/generators/latex/Functor2.X.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor2.\allowbreak{}X}}\label{Functor2-X}% 2 2 \subsection{Parameters\label{Functor2-X--parameters}}% 3 - \label{Functor2-X--argument-1-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-X-argument-1-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-X-argument-1-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 + \label{Functor2-X--argument-1-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-X-argument-1-Y]{\ocamlinlinecode{Y}}}\label{Functor2-X-argument-1-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-X-argument-1-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 - \label{Functor2-X--argument-2-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-X-argument-2-Z]{\ocamlinlinecode{Z}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-X-argument-2-Z--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 6 + \label{Functor2-X--argument-2-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-X-argument-2-Z]{\ocamlinlinecode{Z}}}\label{Functor2-X-argument-2-Z}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-X-argument-2-Z--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 7 7 \end{ocamlindent}% 8 8 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 9 9 \subsection{Signature\label{Functor2-X--signature}}%
+4 -4
test/generators/latex/Functor2.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor2}}\label{Functor2}% 2 - \label{Functor2--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor2-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 2 + \label{Functor2--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor2-module-type-S]{\ocamlinlinecode{S}}}\label{Functor2-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 3 \end{ocamlindent}% 4 4 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 5 5 \label{Functor2--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ (\hyperref[Functor2-X-argument-1-Y]{\ocamlinlinecode{Y}} : \hyperref[Functor2-module-type-S]{\ocamlinlinecode{S}}) (\hyperref[Functor2-X-argument-2-Z]{\ocamlinlinecode{Z}} : \hyperref[Functor2-module-type-S]{\ocamlinlinecode{S}}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 6 - \label{Functor2--module-type-XF}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor2-module-type-XF]{\ocamlinlinecode{XF}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Functor2-module-type-XF--parameters_2}}% 7 - \label{Functor2-module-type-XF--argument-1-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-module-type-XF-argument-1-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-module-type-XF-argument-1-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 6 + \label{Functor2--module-type-XF}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Functor2-module-type-XF]{\ocamlinlinecode{XF}}}\label{Functor2-module-type-XF}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Functor2-module-type-XF--parameters_2}}% 7 + \label{Functor2-module-type-XF--argument-1-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-module-type-XF-argument-1-Y]{\ocamlinlinecode{Y}}}\label{Functor2-module-type-XF-argument-1-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-module-type-XF-argument-1-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 8 8 \end{ocamlindent}% 9 9 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 10 - \label{Functor2-module-type-XF--argument-2-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-module-type-XF-argument-2-Z]{\ocamlinlinecode{Z}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-module-type-XF-argument-2-Z--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 10 + \label{Functor2-module-type-XF--argument-2-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor2-module-type-XF-argument-2-Z]{\ocamlinlinecode{Z}}}\label{Functor2-module-type-XF-argument-2-Z}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor2-module-type-XF-argument-2-Z--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 11 11 \end{ocamlindent}% 12 12 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 13 13 \subsubsection{Signature\label{Functor2-module-type-XF--signature_2}}%
+1 -1
test/generators/latex/Functor_ml.Foo'.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor\_\allowbreak{}ml.\allowbreak{}Foo'}}\label{Functor_ml-Foo'}% 2 2 \subsection{Parameters\label{Functor_ml-Foo'--parameters}}% 3 - \label{Functor_ml-Foo'--argument-1-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor_ml-Foo'-argument-1-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor_ml-Foo'-argument-1-X--val-foo}\ocamlcodefragment{\ocamltag{keyword}{val} foo : int}\\ 3 + \label{Functor_ml-Foo'--argument-1-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor_ml-Foo'-argument-1-X]{\ocamlinlinecode{X}}}\label{Functor_ml-Foo'-argument-1-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor_ml-Foo'-argument-1-X--val-foo}\ocamlcodefragment{\ocamltag{keyword}{val} foo : int}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Functor_ml-Foo'--signature}}%
+1 -1
test/generators/latex/Functor_ml.tex
··· 1 1 \section{Module \ocamlinlinecode{Functor\_\allowbreak{}ml}}\label{Functor_ml}% 2 2 \label{Functor_ml--module-Foo}\ocamlcodefragment{\ocamltag{keyword}{module} Foo (\hyperref[Functor_ml-Foo-argument-1-X]{\ocamlinlinecode{X}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[xref-unresolved]{\ocamlinlinecode{Stdlib}}.\allowbreak{}String}\\ 3 - \label{Functor_ml--module-Bar}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor_ml-Bar]{\ocamlinlinecode{Bar}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor_ml-Bar--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 + \label{Functor_ml--module-Bar}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor_ml-Bar]{\ocamlinlinecode{Bar}}}\label{Functor_ml-Bar}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Functor_ml-Bar--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \label{Functor_ml--module-Foo'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Functor_ml-Foo']{\ocamlinlinecode{Foo'}}}\ocamlcodefragment{ (\hyperref[Functor_ml-Foo'-argument-1-X]{\ocamlinlinecode{X}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\
+6 -6
test/generators/latex/Include.tex
··· 1 1 \section{Module \ocamlinlinecode{Include}}\label{Include}% 2 - \label{Include--module-type-Not_inlined}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Not_inlined]{\ocamlinlinecode{Not\_\allowbreak{}inlined}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Not_inlined--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 2 + \label{Include--module-type-Not_inlined}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Not_inlined]{\ocamlinlinecode{Not\_\allowbreak{}inlined}}}\label{Include-module-type-Not_inlined}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Not_inlined--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 3 \end{ocamlindent}% 4 4 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 5 5 \ocamltag{keyword}{include} \hyperref[Include-module-type-Not_inlined]{\ocamlinlinecode{Not\_\allowbreak{}inlined}}\label{Include--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 6 - \label{Include--module-type-Inlined}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Inlined]{\ocamlinlinecode{Inlined}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Inlined--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 6 + \label{Include--module-type-Inlined}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Inlined]{\ocamlinlinecode{Inlined}}}\label{Include-module-type-Inlined}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Inlined--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 7 7 \end{ocamlindent}% 8 8 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 9 9 \ocamltag{keyword}{include} \hyperref[Include-module-type-Inlined]{\ocamlinlinecode{Inlined}}\label{Include--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 10 - \label{Include--module-type-Not_inlined_and_closed}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Not_inlined_and_closed]{\ocamlinlinecode{Not\_\allowbreak{}inlined\_\allowbreak{}and\_\allowbreak{}closed}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Not_inlined_and_closed--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} v}\\ 10 + \label{Include--module-type-Not_inlined_and_closed}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Not_inlined_and_closed]{\ocamlinlinecode{Not\_\allowbreak{}inlined\_\allowbreak{}and\_\allowbreak{}closed}}}\label{Include-module-type-Not_inlined_and_closed}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Not_inlined_and_closed--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} v}\\ 11 11 \end{ocamlindent}% 12 12 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 13 13 \ocamltag{keyword}{include} \hyperref[Include-module-type-Not_inlined_and_closed]{\ocamlinlinecode{Not\_\allowbreak{}inlined\_\allowbreak{}and\_\allowbreak{}closed}}\label{Include--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} v}\\ 14 - \label{Include--module-type-Not_inlined_and_opened}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Not_inlined_and_opened]{\ocamlinlinecode{Not\_\allowbreak{}inlined\_\allowbreak{}and\_\allowbreak{}opened}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Not_inlined_and_opened--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} w}\\ 14 + \label{Include--module-type-Not_inlined_and_opened}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Not_inlined_and_opened]{\ocamlinlinecode{Not\_\allowbreak{}inlined\_\allowbreak{}and\_\allowbreak{}opened}}}\label{Include-module-type-Not_inlined_and_opened}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Not_inlined_and_opened--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} w}\\ 15 15 \end{ocamlindent}% 16 16 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 17 17 \ocamltag{keyword}{include} \hyperref[Include-module-type-Not_inlined_and_opened]{\ocamlinlinecode{Not\_\allowbreak{}inlined\_\allowbreak{}and\_\allowbreak{}opened}}\label{Include--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} w}\\ 18 - \label{Include--module-type-Inherent_Module}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Inherent_Module]{\ocamlinlinecode{Inherent\_\allowbreak{}Module}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Inherent_Module--val-a}\ocamlcodefragment{\ocamltag{keyword}{val} a : \hyperref[Include--type-t]{\ocamlinlinecode{t}}}\\ 18 + \label{Include--module-type-Inherent_Module}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Inherent_Module]{\ocamlinlinecode{Inherent\_\allowbreak{}Module}}}\label{Include-module-type-Inherent_Module}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include-module-type-Inherent_Module--val-a}\ocamlcodefragment{\ocamltag{keyword}{val} a : \hyperref[Include--type-t]{\ocamlinlinecode{t}}}\\ 19 19 \end{ocamlindent}% 20 20 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 21 - \ocamltag{keyword}{include} \hyperref[Include-module-type-Inherent_Module]{\ocamlinlinecode{Inherent\_\allowbreak{}Module}}\label{Include--module-type-Dorminant_Module}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Dorminant_Module]{\ocamlinlinecode{Dorminant\_\allowbreak{}Module}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Include-module-type-Inherent_Module]{\ocamlinlinecode{Inherent\_\allowbreak{}Module}}\label{Include-module-type-Dorminant_Module--val-a}\ocamlcodefragment{\ocamltag{keyword}{val} a : \hyperref[Include--type-u]{\ocamlinlinecode{u}}}\\ 21 + \ocamltag{keyword}{include} \hyperref[Include-module-type-Inherent_Module]{\ocamlinlinecode{Inherent\_\allowbreak{}Module}}\label{Include--module-type-Dorminant_Module}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include-module-type-Dorminant_Module]{\ocamlinlinecode{Dorminant\_\allowbreak{}Module}}}\label{Include-module-type-Dorminant_Module}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Include-module-type-Inherent_Module]{\ocamlinlinecode{Inherent\_\allowbreak{}Module}}\label{Include-module-type-Dorminant_Module--val-a}\ocamlcodefragment{\ocamltag{keyword}{val} a : \hyperref[Include--type-u]{\ocamlinlinecode{u}}}\\ 22 22 \end{ocamlindent}% 23 23 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 24 24 \ocamltag{keyword}{include} \hyperref[Include-module-type-Dorminant_Module]{\ocamlinlinecode{Dorminant\_\allowbreak{}Module}}\ocamltag{keyword}{include} \hyperref[Include-module-type-Inherent_Module]{\ocamlinlinecode{Inherent\_\allowbreak{}Module}}\label{Include--val-a}\ocamlcodefragment{\ocamltag{keyword}{val} a : \hyperref[Include--type-u]{\ocamlinlinecode{u}}}\\
+4 -4
test/generators/latex/Include2.tex
··· 1 1 \section{Module \ocamlinlinecode{Include2}}\label{Include2}% 2 - \label{Include2--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include2-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 2 + \label{Include2--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-X]{\ocamlinlinecode{X}}}\label{Include2-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include2-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 3 3 \end{ocamlindent}% 4 4 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Comment about X that should not appear when including X below.\end{ocamlindent}% 5 5 \medbreak 6 6 \ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \ocamltag{keyword}{struct} \ocamltag{keyword}{include} \hyperref[Include2-X]{\ocamlinlinecode{X}} \ocamltag{keyword}{end}\label{Include2--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 7 - \label{Include2--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include2-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 7 + \label{Include2--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-Y]{\ocamlinlinecode{Y}}}\label{Include2-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include2-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 8 8 \end{ocamlindent}% 9 9 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Top-comment of Y.\end{ocamlindent}% 10 10 \medbreak 11 - \label{Include2--module-Y_include_synopsis}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-Y_include_synopsis]{\ocamlinlinecode{Y\_\allowbreak{}include\_\allowbreak{}synopsis}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \ocamltag{keyword}{struct} \ocamltag{keyword}{include} \hyperref[Include2-Y]{\ocamlinlinecode{Y}} \ocamltag{keyword}{end}\label{Include2-Y_include_synopsis--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Include2-Y--type-t]{\ocamlinlinecode{Y.\allowbreak{}t}}}\\ 11 + \label{Include2--module-Y_include_synopsis}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-Y_include_synopsis]{\ocamlinlinecode{Y\_\allowbreak{}include\_\allowbreak{}synopsis}}}\label{Include2-Y_include_synopsis}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \ocamltag{keyword}{struct} \ocamltag{keyword}{include} \hyperref[Include2-Y]{\ocamlinlinecode{Y}} \ocamltag{keyword}{end}\label{Include2-Y_include_synopsis--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Include2-Y--type-t]{\ocamlinlinecode{Y.\allowbreak{}t}}}\\ 12 12 \end{ocamlindent}% 13 13 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}The \ocamlinlinecode{include Y} below should have the synopsis from \ocamlinlinecode{Y}'s top-comment attached to it.\end{ocamlindent}% 14 14 \medbreak 15 - \label{Include2--module-Y_include_doc}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-Y_include_doc]{\ocamlinlinecode{Y\_\allowbreak{}include\_\allowbreak{}doc}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}Doc attached to \ocamlinlinecode{include Y}. \ocamlinlinecode{Y}'s top-comment shouldn't appear here.\ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \ocamltag{keyword}{struct} \ocamltag{keyword}{include} \hyperref[Include2-Y]{\ocamlinlinecode{Y}} \ocamltag{keyword}{end}\label{Include2-Y_include_doc--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Include2-Y--type-t]{\ocamlinlinecode{Y.\allowbreak{}t}}}\\ 15 + \label{Include2--module-Y_include_doc}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Include2-Y_include_doc]{\ocamlinlinecode{Y\_\allowbreak{}include\_\allowbreak{}doc}}}\label{Include2-Y_include_doc}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}Doc attached to \ocamlinlinecode{include Y}. \ocamlinlinecode{Y}'s top-comment shouldn't appear here.\ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \ocamltag{keyword}{struct} \ocamltag{keyword}{include} \hyperref[Include2-Y]{\ocamlinlinecode{Y}} \ocamltag{keyword}{end}\label{Include2-Y_include_doc--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Include2-Y--type-t]{\ocamlinlinecode{Y.\allowbreak{}t}}}\\ 16 16 \end{ocamlindent}% 17 17 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 18 18
+1 -1
test/generators/latex/Include_sections.tex
··· 1 1 \section{Module \ocamlinlinecode{Include\_\allowbreak{}sections}}\label{Include_sections}% 2 - \label{Include_sections--module-type-Something}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include_sections-module-type-Something]{\ocamlinlinecode{Something}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include_sections-module-type-Something--val-something}\ocamlcodefragment{\ocamltag{keyword}{val} something : unit}\\ 2 + \label{Include_sections--module-type-Something}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Include_sections-module-type-Something]{\ocamlinlinecode{Something}}}\label{Include_sections-module-type-Something}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Include_sections-module-type-Something--val-something}\ocamlcodefragment{\ocamltag{keyword}{val} something : unit}\\ 3 3 \subsubsection{Something 1\label{Include_sections-module-type-Something--something-1}}% 4 4 foo 5 5
+3 -3
test/generators/latex/Labels.tex
··· 1 1 \section{Module \ocamlinlinecode{Labels}}\label{Labels}% 2 2 \subsection{Attached to unit\label{Labels--L1}}% 3 3 \subsection{Attached to nothing\label{Labels--L2}}% 4 - \label{Labels--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Labels-A]{\ocamlinlinecode{A}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Attached to module\label{Labels-A--L3}}% 4 + \label{Labels--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Labels-A]{\ocamlinlinecode{A}}}\label{Labels-A}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Attached to module\label{Labels-A--L3}}% 5 5 \end{ocamlindent}% 6 6 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 7 7 \label{Labels--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\begin{ocamlindent}Attached to type\end{ocamlindent}% ··· 10 10 \medbreak 11 11 \label{Labels--val-e}\ocamlcodefragment{\ocamltag{keyword}{val} e : unit \ocamltag{arrow}{$\rightarrow$} \hyperref[Labels--type-t]{\ocamlinlinecode{t}}}\begin{ocamlindent}Attached to external\end{ocamlindent}% 12 12 \medbreak 13 - \label{Labels--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Labels-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Attached to module type\label{Labels-module-type-S--L6}}% 13 + \label{Labels--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Labels-module-type-S]{\ocamlinlinecode{S}}}\label{Labels-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Attached to module type\label{Labels-module-type-S--L6}}% 14 14 \end{ocamlindent}% 15 15 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 16 16 \label{Labels--class-c}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Labels-class-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ : \ocamltag{keyword}{object} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 17 - \label{Labels--class-type-cs}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Labels-class-type-cs]{\ocamlinlinecode{cs}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\subsubsection{Attached to class type\label{Labels-class-type-cs--L8}}% 17 + \label{Labels--class-type-cs}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Labels-class-type-cs]{\ocamlinlinecode{cs}}}\label{Labels-class-type-cs}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\subsubsection{Attached to class type\label{Labels-class-type-cs--L8}}% 18 18 \end{ocamlindent}% 19 19 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 20 20 \label{Labels--exception-E}\ocamlcodefragment{\ocamltag{keyword}{exception} \ocamltag{exception}{E}}\begin{ocamlindent}Attached to exception\end{ocamlindent}%
+2 -2
test/generators/latex/Markup.tex
··· 253 253 \medbreak 254 254 Some modules to support references. 255 255 256 - \label{Markup--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Markup-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 256 + \label{Markup--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Markup-X]{\ocamlinlinecode{X}}}\label{Markup-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 257 257 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 258 - \label{Markup--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Markup-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 258 + \label{Markup--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Markup-Y]{\ocamlinlinecode{Y}}}\label{Markup-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 259 259 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 260 260 261 261
+16 -16
test/generators/latex/Module.tex
··· 3 3 4 4 \label{Module--val-foo}\ocamlcodefragment{\ocamltag{keyword}{val} foo : unit}\begin{ocamlindent}The module needs at least one signature item, otherwise a bug causes the compiler to drop the module comment (above). See \href{https://caml.inria.fr/mantis/view.php?id=7701}{https://caml.inria.fr/mantis/view.php?id=7701}\footnote{\url{https://caml.inria.fr/mantis/view.php?id=7701}}.\end{ocamlindent}% 5 5 \medbreak 6 - \label{Module--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 6 + \label{Module--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S]{\ocamlinlinecode{S}}}\label{Module-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 7 7 \label{Module-module-type-S--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 8 8 \label{Module-module-type-S--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} 'a v}\\ 9 9 \label{Module-module-type-S--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} ('a,\allowbreak{} 'b) w}\\ 10 - \label{Module-module-type-S--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 10 + \label{Module-module-type-S--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S-M]{\ocamlinlinecode{M}}}\label{Module-module-type-S-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 11 11 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 12 12 \end{ocamlindent}% 13 13 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 14 14 \label{Module--module-type-S1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S1}\\ 15 15 \label{Module--module-type-S2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S2 = \hyperref[Module-module-type-S]{\ocamlinlinecode{S}}}\\ 16 - \label{Module--module-type-S3}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S3]{\ocamlinlinecode{S3}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S3--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 16 + \label{Module--module-type-S3}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S3]{\ocamlinlinecode{S3}}}\label{Module-module-type-S3}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S3--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 17 17 \label{Module-module-type-S3--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u = string}\\ 18 18 \label{Module-module-type-S3--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} 'a v}\\ 19 19 \label{Module-module-type-S3--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} ('a,\allowbreak{} 'b) w}\\ 20 - \label{Module-module-type-S3--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S3-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 20 + \label{Module-module-type-S3--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S3-M]{\ocamlinlinecode{M}}}\label{Module-module-type-S3-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 21 21 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 22 22 \end{ocamlindent}% 23 23 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 24 - \label{Module--module-type-S4}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S4]{\ocamlinlinecode{S4}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S4--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 24 + \label{Module--module-type-S4}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S4]{\ocamlinlinecode{S4}}}\label{Module-module-type-S4}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S4--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 25 25 \label{Module-module-type-S4--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} 'a v}\\ 26 26 \label{Module-module-type-S4--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} ('a,\allowbreak{} 'b) w}\\ 27 - \label{Module-module-type-S4--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S4-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 27 + \label{Module-module-type-S4--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S4-M]{\ocamlinlinecode{M}}}\label{Module-module-type-S4-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 28 28 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 29 29 \end{ocamlindent}% 30 30 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 31 - \label{Module--module-type-S5}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S5]{\ocamlinlinecode{S5}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S5--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 31 + \label{Module--module-type-S5}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S5]{\ocamlinlinecode{S5}}}\label{Module-module-type-S5}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S5--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 32 32 \label{Module-module-type-S5--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 33 33 \label{Module-module-type-S5--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} ('a,\allowbreak{} 'b) w}\\ 34 - \label{Module-module-type-S5--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S5-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 34 + \label{Module-module-type-S5--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S5-M]{\ocamlinlinecode{M}}}\label{Module-module-type-S5-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 35 35 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 36 36 \end{ocamlindent}% 37 37 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 38 38 \label{Module--type-result}\ocamlcodefragment{\ocamltag{keyword}{type} ('a,\allowbreak{} 'b) result}\\ 39 - \label{Module--module-type-S6}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S6]{\ocamlinlinecode{S6}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S6--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 39 + \label{Module--module-type-S6}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S6]{\ocamlinlinecode{S6}}}\label{Module-module-type-S6}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S6--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 40 40 \label{Module-module-type-S6--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 41 41 \label{Module-module-type-S6--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} 'a v}\\ 42 - \label{Module-module-type-S6--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S6-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 42 + \label{Module-module-type-S6--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-module-type-S6-M]{\ocamlinlinecode{M}}}\label{Module-module-type-S6-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 43 43 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 44 44 \end{ocamlindent}% 45 45 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 46 - \label{Module--module-M'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-M']{\ocamlinlinecode{M'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 46 + \label{Module--module-M'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-M']{\ocamlinlinecode{M'}}}\label{Module-M'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 47 47 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 48 - \label{Module--module-type-S7}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S7]{\ocamlinlinecode{S7}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S7--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 48 + \label{Module--module-type-S7}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S7]{\ocamlinlinecode{S7}}}\label{Module-module-type-S7}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S7--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 49 49 \label{Module-module-type-S7--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 50 50 \label{Module-module-type-S7--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} 'a v}\\ 51 51 \label{Module-module-type-S7--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} ('a,\allowbreak{} 'b) w}\\ 52 52 \label{Module-module-type-S7--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} M = \hyperref[Module-M']{\ocamlinlinecode{M'}}}\\ 53 53 \end{ocamlindent}% 54 54 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 55 - \label{Module--module-type-S8}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S8]{\ocamlinlinecode{S8}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S8--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 55 + \label{Module--module-type-S8}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S8]{\ocamlinlinecode{S8}}}\label{Module-module-type-S8}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module-module-type-S8--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 56 56 \label{Module-module-type-S8--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 57 57 \label{Module-module-type-S8--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} 'a v}\\ 58 58 \label{Module-module-type-S8--type-w}\ocamlcodefragment{\ocamltag{keyword}{type} ('a,\allowbreak{} 'b) w}\\ 59 59 \end{ocamlindent}% 60 60 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 61 - \label{Module--module-type-S9}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S9]{\ocamlinlinecode{S9}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 61 + \label{Module--module-type-S9}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module-module-type-S9]{\ocamlinlinecode{S9}}}\label{Module-module-type-S9}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 62 62 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 63 - \label{Module--module-Mutually}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-Mutually]{\ocamlinlinecode{Mutually}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 63 + \label{Module--module-Mutually}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-Mutually]{\ocamlinlinecode{Mutually}}}\label{Module-Mutually}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 64 64 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 65 - \label{Module--module-Recursive}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-Recursive]{\ocamlinlinecode{Recursive}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 65 + \label{Module--module-Recursive}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module-Recursive]{\ocamlinlinecode{Recursive}}}\label{Module-Recursive}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 66 66 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 67 67 68 68
+8 -8
test/generators/latex/Module_type_alias.tex
··· 1 1 \section{Module \ocamlinlinecode{Module\_\allowbreak{}type\_\allowbreak{}alias}}\label{Module_type_alias}% 2 2 Module Type Aliases 3 3 4 - \label{Module_type_alias--module-type-A}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-A]{\ocamlinlinecode{A}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-A--type-a}\ocamlcodefragment{\ocamltag{keyword}{type} a}\\ 4 + \label{Module_type_alias--module-type-A}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-A]{\ocamlinlinecode{A}}}\label{Module_type_alias-module-type-A}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-A--type-a}\ocamlcodefragment{\ocamltag{keyword}{type} a}\\ 5 5 \end{ocamlindent}% 6 6 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 7 - \label{Module_type_alias--module-type-B}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-B]{\ocamlinlinecode{B}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Module_type_alias-module-type-B--parameters}}% 8 - \label{Module_type_alias-module-type-B--argument-1-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-B-argument-1-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-B-argument-1-C--type-c}\ocamlcodefragment{\ocamltag{keyword}{type} c}\\ 7 + \label{Module_type_alias--module-type-B}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-B]{\ocamlinlinecode{B}}}\label{Module_type_alias-module-type-B}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Module_type_alias-module-type-B--parameters}}% 8 + \label{Module_type_alias-module-type-B--argument-1-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-B-argument-1-C]{\ocamlinlinecode{C}}}\label{Module_type_alias-module-type-B-argument-1-C}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-B-argument-1-C--type-c}\ocamlcodefragment{\ocamltag{keyword}{type} c}\\ 9 9 \end{ocamlindent}% 10 10 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 11 11 \subsubsection{Signature\label{Module_type_alias-module-type-B--signature}}% ··· 13 13 \end{ocamlindent}% 14 14 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 15 15 \label{Module_type_alias--module-type-D}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} D = \hyperref[Module_type_alias-module-type-A]{\ocamlinlinecode{A}}}\\ 16 - \label{Module_type_alias--module-type-E}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-E]{\ocamlinlinecode{E}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Module_type_alias-module-type-E--parameters_2}}% 17 - \label{Module_type_alias-module-type-E--argument-1-F}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-E-argument-1-F]{\ocamlinlinecode{F}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-E-argument-1-F--type-f}\ocamlcodefragment{\ocamltag{keyword}{type} f}\\ 16 + \label{Module_type_alias--module-type-E}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-E]{\ocamlinlinecode{E}}}\label{Module_type_alias-module-type-E}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Module_type_alias-module-type-E--parameters_2}}% 17 + \label{Module_type_alias-module-type-E--argument-1-F}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-E-argument-1-F]{\ocamlinlinecode{F}}}\label{Module_type_alias-module-type-E-argument-1-F}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-E-argument-1-F--type-f}\ocamlcodefragment{\ocamltag{keyword}{type} f}\\ 18 18 \end{ocamlindent}% 19 19 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 20 - \label{Module_type_alias-module-type-E--argument-2-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-E-argument-2-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-E-argument-2-C--type-c}\ocamlcodefragment{\ocamltag{keyword}{type} c}\\ 20 + \label{Module_type_alias-module-type-E--argument-2-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-E-argument-2-C]{\ocamlinlinecode{C}}}\label{Module_type_alias-module-type-E-argument-2-C}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-E-argument-2-C--type-c}\ocamlcodefragment{\ocamltag{keyword}{type} c}\\ 21 21 \end{ocamlindent}% 22 22 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 23 23 \subsubsection{Signature\label{Module_type_alias-module-type-E--signature_2}}% 24 24 \label{Module_type_alias-module-type-E--type-b}\ocamlcodefragment{\ocamltag{keyword}{type} b}\\ 25 25 \end{ocamlindent}% 26 26 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 27 - \label{Module_type_alias--module-type-G}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-G]{\ocamlinlinecode{G}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Module_type_alias-module-type-G--parameters_3}}% 28 - \label{Module_type_alias-module-type-G--argument-1-H}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-G-argument-1-H]{\ocamlinlinecode{H}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-G-argument-1-H--type-h}\ocamlcodefragment{\ocamltag{keyword}{type} h}\\ 27 + \label{Module_type_alias--module-type-G}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_alias-module-type-G]{\ocamlinlinecode{G}}}\label{Module_type_alias-module-type-G}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Module_type_alias-module-type-G--parameters_3}}% 28 + \label{Module_type_alias-module-type-G--argument-1-H}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_alias-module-type-G-argument-1-H]{\ocamlinlinecode{H}}}\label{Module_type_alias-module-type-G-argument-1-H}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_alias-module-type-G-argument-1-H--type-h}\ocamlcodefragment{\ocamltag{keyword}{type} h}\\ 29 29 \end{ocamlindent}% 30 30 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 31 31 \subsubsection{Signature\label{Module_type_alias-module-type-G--signature_3}}%
+1 -1
test/generators/latex/Module_type_of.T.tex
··· 1 1 \section{Module \ocamlinlinecode{Module\_\allowbreak{}type\_\allowbreak{}of.\allowbreak{}T}}\label{Module_type_of-T}% 2 - \label{Module_type_of-T--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_of-T-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-T-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 2 + \label{Module_type_of-T--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_of-T-module-type-T]{\ocamlinlinecode{T}}}\label{Module_type_of-T-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-T-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 3 \end{ocamlindent}% 4 4 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 5 5 \label{Module_type_of-T--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} M = \hyperref[Module_type_of-X]{\ocamlinlinecode{X}}}\\
+4 -8
test/generators/latex/Module_type_of.tex
··· 1 1 \section{Module \ocamlinlinecode{Module\_\allowbreak{}type\_\allowbreak{}of}}\label{Module_type_of}% 2 - \label{Module_type_of--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_of-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-module-type-S--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_of-module-type-S-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-module-type-S-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 3 - \end{ocamlindent}% 4 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 5 - \label{Module_type_of-module-type-S--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_of-module-type-S-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-module-type-S-M--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 6 - \end{ocamlindent}% 7 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 8 - \label{Module_type_of-module-type-S--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_of-module-type-S-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-module-type-S-N--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Module_type_of-module-type-S-M--type-t]{\ocamlinlinecode{M.\allowbreak{}t}}}\\ 2 + \label{Module_type_of--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_of-module-type-S]{\ocamlinlinecode{S}}}\label{Module_type_of-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-module-type-S--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_of-module-type-S-module-type-T]{\ocamlinlinecode{T}}}\label{Module_type_of-module-type-S-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-module-type-S-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 9 3 \end{ocamlindent}% 10 4 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 5 + \label{Module_type_of-module-type-S--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_of-module-type-S-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \hyperref[Module_type_of-module-type-S-module-type-T]{\ocamlinlinecode{T}}}\\ 6 + \label{Module_type_of-module-type-S--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_of-module-type-S-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \ocamltag{keyword}{struct} \ocamltag{keyword}{include} \hyperref[Module_type_of-module-type-S-M]{\ocamlinlinecode{M}} \ocamltag{keyword}{end}}\\ 11 7 \end{ocamlindent}% 12 8 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 13 - \label{Module_type_of--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_of-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 9 + \label{Module_type_of--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_of-X]{\ocamlinlinecode{X}}}\label{Module_type_of-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_of-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 14 10 \label{Module_type_of-X--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 15 11 \end{ocamlindent}% 16 12 \ocamlcodefragment{\ocamltag{keyword}{end}}\\
+18 -22
test/generators/latex/Module_type_subst.tex
··· 1 1 \section{Module \ocamlinlinecode{Module\_\allowbreak{}type\_\allowbreak{}subst}}\label{Module_type_subst}% 2 - \label{Module_type_subst--module-Local}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Local]{\ocamlinlinecode{Local}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Local--type-local}\ocamlcodefragment{\ocamltag{keyword}{type} local := int * int}\\ 3 - \label{Module_type_subst-Local--module-type-local}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Local-module-type-local]{\ocamlinlinecode{local}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Local-module-type-local--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Module_type_subst-Local--type-local]{\ocamlinlinecode{local}}}\\ 2 + \label{Module_type_subst--module-Local}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Local]{\ocamlinlinecode{Local}}}\label{Module_type_subst-Local}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Local--type-local}\ocamlcodefragment{\ocamltag{keyword}{type} local := int * int}\\ 3 + \label{Module_type_subst-Local--module-type-local}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Local-module-type-local]{\ocamlinlinecode{local}}}\label{Module_type_subst-Local-module-type-local}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Local-module-type-local--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Module_type_subst-Local--type-local]{\ocamlinlinecode{local}}}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \label{Module_type_subst-Local--module-type-w}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} w = \hyperref[Module_type_subst-Local-module-type-local]{\ocamlinlinecode{local}}}\\ 7 - \label{Module_type_subst-Local--module-type-s}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Local-module-type-s]{\ocamlinlinecode{s}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 7 + \label{Module_type_subst-Local--module-type-s}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Local-module-type-s]{\ocamlinlinecode{s}}}\label{Module_type_subst-Local-module-type-s}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 8 8 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 9 9 \end{ocamlindent}% 10 10 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 11 - \label{Module_type_subst--module-type-s}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 11 + \label{Module_type_subst--module-type-s}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\label{Module_type_subst-module-type-s}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 12 12 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 13 - \label{Module_type_subst--module-Basic}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic]{\ocamlinlinecode{Basic}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic--module-type-u}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u]{\ocamlinlinecode{u}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-u--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 13 + \label{Module_type_subst--module-Basic}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic]{\ocamlinlinecode{Basic}}}\label{Module_type_subst-Basic}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic--module-type-u}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u]{\ocamlinlinecode{u}}}\label{Module_type_subst-Basic-module-type-u}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-u--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u-module-type-T]{\ocamlinlinecode{T}}}\label{Module_type_subst-Basic-module-type-u-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 14 14 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 15 15 \end{ocamlindent}% 16 16 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 17 - \label{Module_type_subst-Basic--module-type-with_}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-with_]{\ocamlinlinecode{with\_\allowbreak{}}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-with_--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T = \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\ 17 + \label{Module_type_subst-Basic--module-type-with_}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-with_]{\ocamlinlinecode{with\_\allowbreak{}}}}\label{Module_type_subst-Basic-module-type-with_}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-with_--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T = \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\ 18 18 \end{ocamlindent}% 19 19 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 20 - \label{Module_type_subst-Basic--module-type-u2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u2]{\ocamlinlinecode{u2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-u2--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u2-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 21 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 22 - \label{Module_type_subst-Basic-module-type-u2--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-u2-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 20 + \label{Module_type_subst-Basic--module-type-u2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u2]{\ocamlinlinecode{u2}}}\label{Module_type_subst-Basic-module-type-u2}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-u2--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-u2-module-type-T]{\ocamlinlinecode{T}}}\label{Module_type_subst-Basic-module-type-u2-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 23 21 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 22 + \label{Module_type_subst-Basic-module-type-u2--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-u2-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \hyperref[Module_type_subst-Basic-module-type-u2-module-type-T]{\ocamlinlinecode{T}}}\\ 24 23 \end{ocamlindent}% 25 24 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 26 - \label{Module_type_subst-Basic--module-type-with_2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-with_2]{\ocamlinlinecode{with\_\allowbreak{}2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-with_2--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-with_2-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 27 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 28 - \label{Module_type_subst-Basic-module-type-with_2--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-with_2-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 25 + \label{Module_type_subst-Basic--module-type-with_2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-with_2]{\ocamlinlinecode{with\_\allowbreak{}2}}}\label{Module_type_subst-Basic-module-type-with_2}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-with_2--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-with_2-module-type-T]{\ocamlinlinecode{T}}}\label{Module_type_subst-Basic-module-type-with_2-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 29 26 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 27 + \label{Module_type_subst-Basic-module-type-with_2--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-with_2-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \hyperref[Module_type_subst-Basic-module-type-with_2-module-type-T]{\ocamlinlinecode{T}}}\\ 30 28 \end{ocamlindent}% 31 29 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 32 - \label{Module_type_subst-Basic--module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-a]{\ocamlinlinecode{a}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-a--module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} b = \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\ 33 - \label{Module_type_subst-Basic-module-type-a--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-a-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 34 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 30 + \label{Module_type_subst-Basic--module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-a]{\ocamlinlinecode{a}}}\label{Module_type_subst-Basic-module-type-a}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-a--module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} b = \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\ 31 + \label{Module_type_subst-Basic-module-type-a--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-a-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{b}}}\\ 35 32 \end{ocamlindent}% 36 33 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 37 - \label{Module_type_subst-Basic--module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-c--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-c-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 38 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 34 + \label{Module_type_subst-Basic--module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Basic-module-type-c]{\ocamlinlinecode{c}}}\label{Module_type_subst-Basic-module-type-c}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Basic-module-type-c--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Basic-module-type-c-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\ 39 35 \end{ocamlindent}% 40 36 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 41 37 \end{ocamlindent}% 42 38 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 43 - \label{Module_type_subst--module-Nested}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested]{\ocamlinlinecode{Nested}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested--module-type-nested}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-nested]{\ocamlinlinecode{nested}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-nested--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested-module-type-nested-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-nested-N--module-type-t}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-nested-N-module-type-t]{\ocamlinlinecode{t}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 39 + \label{Module_type_subst--module-Nested}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested]{\ocamlinlinecode{Nested}}}\label{Module_type_subst-Nested}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested--module-type-nested}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-nested]{\ocamlinlinecode{nested}}}\label{Module_type_subst-Nested-module-type-nested}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-nested--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested-module-type-nested-N]{\ocamlinlinecode{N}}}\label{Module_type_subst-Nested-module-type-nested-N}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-nested-N--module-type-t}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-nested-N-module-type-t]{\ocamlinlinecode{t}}}\label{Module_type_subst-Nested-module-type-nested-N-module-type-t}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 44 40 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 45 41 \end{ocamlindent}% 46 42 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 47 43 \end{ocamlindent}% 48 44 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 49 - \label{Module_type_subst-Nested--module-type-with_}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-with_]{\ocamlinlinecode{with\_\allowbreak{}}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-with_--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested-module-type-with_-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-with_-N--module-type-t}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} t = \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\ 45 + \label{Module_type_subst-Nested--module-type-with_}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-with_]{\ocamlinlinecode{with\_\allowbreak{}}}}\label{Module_type_subst-Nested-module-type-with_}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-with_--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested-module-type-with_-N]{\ocamlinlinecode{N}}}\label{Module_type_subst-Nested-module-type-with_-N}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-with_-N--module-type-t}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} t = \hyperref[Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\ 50 46 \end{ocamlindent}% 51 47 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 52 48 \end{ocamlindent}% 53 49 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 54 - \label{Module_type_subst-Nested--module-type-with_subst}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-with_subst]{\ocamlinlinecode{with\_\allowbreak{}subst}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-with_subst--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested-module-type-with_subst-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 50 + \label{Module_type_subst-Nested--module-type-with_subst}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Nested-module-type-with_subst]{\ocamlinlinecode{with\_\allowbreak{}subst}}}\label{Module_type_subst-Nested-module-type-with_subst}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Nested-module-type-with_subst--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Nested-module-type-with_subst-N]{\ocamlinlinecode{N}}}\label{Module_type_subst-Nested-module-type-with_subst-N}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 55 51 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 56 52 \end{ocamlindent}% 57 53 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 58 54 \end{ocamlindent}% 59 55 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 60 - \label{Module_type_subst--module-Structural}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Structural]{\ocamlinlinecode{Structural}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural--module-type-u}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u]{\ocamlinlinecode{u}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u--module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u-module-type-a]{\ocamlinlinecode{a}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u-module-type-a--module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u-module-type-a-module-type-b]{\ocamlinlinecode{b}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u-module-type-a-module-type-b--module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u-module-type-a-module-type-b-module-type-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u-module-type-a-module-type-b-module-type-c--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 56 + \label{Module_type_subst--module-Structural}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Module_type_subst-Structural]{\ocamlinlinecode{Structural}}}\label{Module_type_subst-Structural}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural--module-type-u}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u]{\ocamlinlinecode{u}}}\label{Module_type_subst-Structural-module-type-u}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u--module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u-module-type-a]{\ocamlinlinecode{a}}}\label{Module_type_subst-Structural-module-type-u-module-type-a}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u-module-type-a--module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u-module-type-a-module-type-b]{\ocamlinlinecode{b}}}\label{Module_type_subst-Structural-module-type-u-module-type-a-module-type-b}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u-module-type-a-module-type-b--module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-u-module-type-a-module-type-b-module-type-c]{\ocamlinlinecode{c}}}\label{Module_type_subst-Structural-module-type-u-module-type-a-module-type-b-module-type-c}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-u-module-type-a-module-type-b-module-type-c--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 61 57 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{constructor}{A} \ocamltag{keyword}{of} \hyperref[Module_type_subst-Structural-module-type-u-module-type-a-module-type-b-module-type-c--type-t]{\ocamlinlinecode{t}}}\label{Module_type_subst-Structural-module-type-u-module-type-a-module-type-b-module-type-c--type-t.A}\\ 62 58 \end{ocamltabular}% 63 59 \\ ··· 69 65 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 70 66 \end{ocamlindent}% 71 67 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 72 - \label{Module_type_subst-Structural--module-type-w}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w]{\ocamlinlinecode{w}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w--module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w-module-type-a]{\ocamlinlinecode{a}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w-module-type-a--module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w-module-type-a-module-type-b]{\ocamlinlinecode{b}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w-module-type-a-module-type-b--module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w-module-type-a-module-type-b-module-type-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w-module-type-a-module-type-b-module-type-c--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 68 + \label{Module_type_subst-Structural--module-type-w}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w]{\ocamlinlinecode{w}}}\label{Module_type_subst-Structural-module-type-w}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w--module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w-module-type-a]{\ocamlinlinecode{a}}}\label{Module_type_subst-Structural-module-type-w-module-type-a}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w-module-type-a--module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w-module-type-a-module-type-b]{\ocamlinlinecode{b}}}\label{Module_type_subst-Structural-module-type-w-module-type-a-module-type-b}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w-module-type-a-module-type-b--module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Module_type_subst-Structural-module-type-w-module-type-a-module-type-b-module-type-c]{\ocamlinlinecode{c}}}\label{Module_type_subst-Structural-module-type-w-module-type-a-module-type-b-module-type-c}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Module_type_subst-Structural-module-type-w-module-type-a-module-type-b-module-type-c--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 73 69 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{constructor}{A} \ocamltag{keyword}{of} \hyperref[Module_type_subst-Structural-module-type-w-module-type-a-module-type-b-module-type-c--type-t]{\ocamlinlinecode{t}}}\label{Module_type_subst-Structural-module-type-w-module-type-a-module-type-b-module-type-c--type-t.A}\\ 74 70 \end{ocamltabular}% 75 71 \\
+2 -2
test/generators/latex/Nested.F.tex
··· 4 4 Some additional comments. 5 5 6 6 \subsection{Parameters\label{Nested-F--parameters}}% 7 - \label{Nested-F--argument-1-Arg1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Nested-F-argument-1-Arg1]{\ocamlinlinecode{Arg1}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-F-argument-1-Arg1--type}}% 7 + \label{Nested-F--argument-1-Arg1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Nested-F-argument-1-Arg1]{\ocamlinlinecode{Arg1}}}\label{Nested-F-argument-1-Arg1}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-F-argument-1-Arg1--type}}% 8 8 \label{Nested-F-argument-1-Arg1--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\begin{ocamlindent}Some type.\end{ocamlindent}% 9 9 \medbreak 10 10 \subsubsection{Values\label{Nested-F-argument-1-Arg1--values}}% ··· 12 12 \medbreak 13 13 \end{ocamlindent}% 14 14 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 15 - \label{Nested-F--argument-2-Arg2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Nested-F-argument-2-Arg2]{\ocamlinlinecode{Arg2}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-F-argument-2-Arg2--type_2}}% 15 + \label{Nested-F--argument-2-Arg2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Nested-F-argument-2-Arg2]{\ocamlinlinecode{Arg2}}}\label{Nested-F-argument-2-Arg2}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-F-argument-2-Arg2--type_2}}% 16 16 \label{Nested-F-argument-2-Arg2--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\begin{ocamlindent}Some type.\end{ocamlindent}% 17 17 \medbreak 18 18 \end{ocamlindent}%
+2 -2
test/generators/latex/Nested.tex
··· 2 2 This comment needs to be here before \#235 is fixed. 3 3 4 4 \subsection{Module\label{Nested--module}}% 5 - \label{Nested--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Nested-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-X--type}}% 5 + \label{Nested--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Nested-X]{\ocamlinlinecode{X}}}\label{Nested-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-X--type}}% 6 6 \label{Nested-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\begin{ocamlindent}Some type.\end{ocamlindent}% 7 7 \medbreak 8 8 \subsubsection{Values\label{Nested-X--values}}% ··· 12 12 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This is module X.\end{ocamlindent}% 13 13 \medbreak 14 14 \subsection{Module type\label{Nested--module-type}}% 15 - \label{Nested--module-type-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Nested-module-type-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-module-type-Y--type_2}}% 15 + \label{Nested--module-type-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Nested-module-type-Y]{\ocamlinlinecode{Y}}}\label{Nested-module-type-Y}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Type\label{Nested-module-type-Y--type_2}}% 16 16 \label{Nested-module-type-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\begin{ocamlindent}Some type.\end{ocamlindent}% 17 17 \medbreak 18 18 \subsubsection{Values\label{Nested-module-type-Y--values_2}}%
+1 -1
test/generators/latex/Ocamlary.Dep12.tex
··· 1 1 \section{Module \ocamlinlinecode{Ocamlary.\allowbreak{}Dep12}}\label{Ocamlary-Dep12}% 2 2 \subsection{Parameters\label{Ocamlary-Dep12--parameters}}% 3 - \label{Ocamlary-Dep12--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep12-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep12-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 3 + \label{Ocamlary-Dep12--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep12-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Ocamlary-Dep12-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep12-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Ocamlary-Dep12--signature}}%
+3 -3
test/generators/latex/Ocamlary.Dep2.tex
··· 1 1 \section{Module \ocamlinlinecode{Ocamlary.\allowbreak{}Dep2}}\label{Ocamlary-Dep2}% 2 2 \subsection{Parameters\label{Ocamlary-Dep2--parameters}}% 3 - \label{Ocamlary-Dep2--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep2-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep2-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 4 - \label{Ocamlary-Dep2-argument-1-Arg--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep2-argument-1-Arg-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep2-argument-1-Arg-X--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} Y : \hyperref[Ocamlary-Dep2-argument-1-Arg--module-type-S]{\ocamlinlinecode{S}}}\\ 3 + \label{Ocamlary-Dep2--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep2-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Ocamlary-Dep2-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep2-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 4 + \label{Ocamlary-Dep2-argument-1-Arg--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep2-argument-1-Arg-X]{\ocamlinlinecode{X}}}\label{Ocamlary-Dep2-argument-1-Arg-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep2-argument-1-Arg-X--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} Y : \hyperref[Ocamlary-Dep2-argument-1-Arg--module-type-S]{\ocamlinlinecode{S}}}\\ 5 5 \end{ocamlindent}% 6 6 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 7 7 \end{ocamlindent}% 8 8 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 9 9 \subsection{Signature\label{Ocamlary-Dep2--signature}}% 10 - \label{Ocamlary-Dep2--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep2-A]{\ocamlinlinecode{A}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep2-A--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} Y : \hyperref[Ocamlary-Dep2-argument-1-Arg--module-type-S]{\ocamlinlinecode{Arg.\allowbreak{}S}}}\\ 10 + \label{Ocamlary-Dep2--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep2-A]{\ocamlinlinecode{A}}}\label{Ocamlary-Dep2-A}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep2-A--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} Y : \hyperref[Ocamlary-Dep2-argument-1-Arg--module-type-S]{\ocamlinlinecode{Arg.\allowbreak{}S}}}\\ 11 11 \end{ocamlindent}% 12 12 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 13 13 \label{Ocamlary-Dep2--module-B}\ocamlcodefragment{\ocamltag{keyword}{module} B = \hyperref[Ocamlary-Dep2-A--module-Y]{\ocamlinlinecode{A.\allowbreak{}Y}}}\\
+3 -3
test/generators/latex/Ocamlary.Dep5.tex
··· 1 1 \section{Module \ocamlinlinecode{Ocamlary.\allowbreak{}Dep5}}\label{Ocamlary-Dep5}% 2 2 \subsection{Parameters\label{Ocamlary-Dep5--parameters}}% 3 - \label{Ocamlary-Dep5--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep5-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep5-argument-1-Arg--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T}\\ 4 - \label{Ocamlary-Dep5-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep5-argument-1-Arg-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep5-argument-1-Arg-module-type-S--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} X : \hyperref[Ocamlary-Dep5-argument-1-Arg--module-type-T]{\ocamlinlinecode{T}}}\\ 5 - \label{Ocamlary-Dep5-argument-1-Arg-module-type-S--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep5-argument-1-Arg-module-type-S-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 3 + \label{Ocamlary-Dep5--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep5-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Ocamlary-Dep5-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep5-argument-1-Arg--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T}\\ 4 + \label{Ocamlary-Dep5-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep5-argument-1-Arg-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-Dep5-argument-1-Arg-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep5-argument-1-Arg-module-type-S--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} X : \hyperref[Ocamlary-Dep5-argument-1-Arg--module-type-T]{\ocamlinlinecode{T}}}\\ 5 + \label{Ocamlary-Dep5-argument-1-Arg-module-type-S--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep5-argument-1-Arg-module-type-S-Y]{\ocamlinlinecode{Y}}}\label{Ocamlary-Dep5-argument-1-Arg-module-type-S-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 6 6 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 7 7 \end{ocamlindent}% 8 8 \ocamlcodefragment{\ocamltag{keyword}{end}}\\
+3 -6
test/generators/latex/Ocamlary.Dep7.tex
··· 1 1 \section{Module \ocamlinlinecode{Ocamlary.\allowbreak{}Dep7}}\label{Ocamlary-Dep7}% 2 2 \subsection{Parameters\label{Ocamlary-Dep7--parameters}}% 3 - \label{Ocamlary-Dep7--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep7-argument-1-Arg]{\ocamlinlinecode{Arg}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep7-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 4 - \label{Ocamlary-Dep7-argument-1-Arg--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep7-argument-1-Arg-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep7-argument-1-Arg-module-type-T--module-type-R}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} R = \hyperref[Ocamlary-Dep7-argument-1-Arg--module-type-S]{\ocamlinlinecode{S}}}\\ 3 + \label{Ocamlary-Dep7--argument-1-Arg}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep7-argument-1-Arg]{\ocamlinlinecode{Arg}}}\label{Ocamlary-Dep7-argument-1-Arg}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep7-argument-1-Arg--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 4 + \label{Ocamlary-Dep7-argument-1-Arg--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep7-argument-1-Arg-module-type-T]{\ocamlinlinecode{T}}}\label{Ocamlary-Dep7-argument-1-Arg-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep7-argument-1-Arg-module-type-T--module-type-R}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} R = \hyperref[Ocamlary-Dep7-argument-1-Arg--module-type-S]{\ocamlinlinecode{S}}}\\ 5 5 \label{Ocamlary-Dep7-argument-1-Arg-module-type-T--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} Y : \hyperref[Ocamlary-Dep7-argument-1-Arg--module-type-S]{\ocamlinlinecode{R}}}\\ 6 6 \end{ocamlindent}% 7 7 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 8 - \label{Ocamlary-Dep7-argument-1-Arg--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep7-argument-1-Arg-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep7-argument-1-Arg-X--module-type-R}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} R = \hyperref[Ocamlary-Dep7-argument-1-Arg--module-type-S]{\ocamlinlinecode{S}}}\\ 9 - \label{Ocamlary-Dep7-argument-1-Arg-X--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} Y : \hyperref[Ocamlary-Dep7-argument-1-Arg--module-type-S]{\ocamlinlinecode{R}}}\\ 10 - \end{ocamlindent}% 11 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 8 + \label{Ocamlary-Dep7-argument-1-Arg--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep7-argument-1-Arg-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \hyperref[Ocamlary-Dep7-argument-1-Arg-module-type-T]{\ocamlinlinecode{T}}}\\ 12 9 \end{ocamlindent}% 13 10 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 14 11 \subsection{Signature\label{Ocamlary-Dep7--signature}}%
+1 -1
test/generators/latex/Ocamlary.Dep9.tex
··· 1 1 \section{Module \ocamlinlinecode{Ocamlary.\allowbreak{}Dep9}}\label{Ocamlary-Dep9}% 2 2 \subsection{Parameters\label{Ocamlary-Dep9--parameters}}% 3 - \label{Ocamlary-Dep9--argument-1-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep9-argument-1-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep9-argument-1-X--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T}\\ 3 + \label{Ocamlary-Dep9--argument-1-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep9-argument-1-X]{\ocamlinlinecode{X}}}\label{Ocamlary-Dep9-argument-1-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep9-argument-1-X--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Ocamlary-Dep9--signature}}%
+4 -4
test/generators/latex/Ocamlary.FunctorTypeOf.tex
··· 2 2 This comment is for \ocamlinlinecode{FunctorTypeOf}. 3 3 4 4 \subsection{Parameters\label{Ocamlary-FunctorTypeOf--parameters}}% 5 - \label{Ocamlary-FunctorTypeOf--argument-1-Collection}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection]{\ocamlinlinecode{Collection}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 5 + \label{Ocamlary-FunctorTypeOf--argument-1-Collection}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection]{\ocamlinlinecode{Collection}}}\label{Ocamlary-FunctorTypeOf-argument-1-Collection}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 6 6 \medbreak 7 7 \label{Ocamlary-FunctorTypeOf-argument-1-Collection--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 8 - \label{Ocamlary-FunctorTypeOf-argument-1-Collection--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 8 + \label{Ocamlary-FunctorTypeOf-argument-1-Collection--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 9 9 \medbreak 10 - \label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 10 + \label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-InnerModuleA'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 11 11 \medbreak 12 12 \end{ocamlindent}% 13 13 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 14 14 \medbreak 15 - \label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 15 + \label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-module-type-InnerModuleTypeA'}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 16 16 \medbreak 17 17 \end{ocamlindent}% 18 18 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}%
+7 -7
test/generators/latex/Ocamlary.Recollection.tex
··· 2 2 This comment is for \ocamlinlinecode{CollectionModule}. 3 3 4 4 \subsection{Parameters\label{Ocamlary-Recollection--parameters}}% 5 - \label{Ocamlary-Recollection--argument-1-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-argument-1-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 5 + \label{Ocamlary-Recollection--argument-1-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-argument-1-C]{\ocamlinlinecode{C}}}\label{Ocamlary-Recollection-argument-1-C}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 6 6 \medbreak 7 7 \label{Ocamlary-Recollection-argument-1-C--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 8 - \label{Ocamlary-Recollection-argument-1-C--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection-argument-1-C--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 8 + \label{Ocamlary-Recollection-argument-1-C--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection-argument-1-C--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 9 9 \medbreak 10 - \label{Ocamlary-Recollection-argument-1-C-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 10 + \label{Ocamlary-Recollection-argument-1-C-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA-InnerModuleA'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 11 11 \medbreak 12 12 \end{ocamlindent}% 13 13 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 14 14 \medbreak 15 - \label{Ocamlary-Recollection-argument-1-C-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 15 + \label{Ocamlary-Recollection-argument-1-C-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA-module-type-InnerModuleTypeA'}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-argument-1-C-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection-argument-1-C-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 16 16 \medbreak 17 17 \end{ocamlindent}% 18 18 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% ··· 28 28 \label{Ocamlary-Recollection--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection = \hyperref[Ocamlary-Recollection-argument-1-C--type-element]{\ocamlinlinecode{C.\allowbreak{}element}} list}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 29 29 \medbreak 30 30 \label{Ocamlary-Recollection--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element = \hyperref[Ocamlary-Recollection-argument-1-C--type-collection]{\ocamlinlinecode{C.\allowbreak{}collection}}}\\ 31 - \label{Ocamlary-Recollection--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 31 + \label{Ocamlary-Recollection--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\label{Ocamlary-Recollection-InnerModuleA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 32 32 \medbreak 33 - \label{Ocamlary-Recollection-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 33 + \label{Ocamlary-Recollection-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Recollection-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\label{Ocamlary-Recollection-InnerModuleA-InnerModuleA'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 34 34 \medbreak 35 35 \end{ocamlindent}% 36 36 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 37 37 \medbreak 38 - \label{Ocamlary-Recollection-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Recollection-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 38 + \label{Ocamlary-Recollection-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Recollection-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\label{Ocamlary-Recollection-InnerModuleA-module-type-InnerModuleTypeA'}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Recollection-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-Recollection-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 39 39 \medbreak 40 40 \end{ocamlindent}% 41 41 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}%
+1 -1
test/generators/latex/Ocamlary.With7.tex
··· 1 1 \section{Module \ocamlinlinecode{Ocamlary.\allowbreak{}With7}}\label{Ocamlary-With7}% 2 2 \subsection{Parameters\label{Ocamlary-With7--parameters}}% 3 - \label{Ocamlary-With7--argument-1-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With7-argument-1-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With7-argument-1-X--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T}\\ 3 + \label{Ocamlary-With7--argument-1-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With7-argument-1-X]{\ocamlinlinecode{X}}}\label{Ocamlary-With7-argument-1-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With7-argument-1-X--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T}\\ 4 4 \end{ocamlindent}% 5 5 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 6 6 \subsection{Signature\label{Ocamlary-With7--signature}}%
+80 -179
test/generators/latex/Ocamlary.tex
··· 56 56 \subsubsection{Level 3\label{Ocamlary--level-3}}% 57 57 \subsubsection{Level 4\label{Ocamlary--level-4}}% 58 58 \subsubsection{Basic module stuff\label{Ocamlary--basic-module-stuff}}% 59 - \label{Ocamlary--module-Empty}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Empty]{\ocamlinlinecode{Empty}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 59 + \label{Ocamlary--module-Empty}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Empty]{\ocamlinlinecode{Empty}}}\label{Ocamlary-Empty}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 60 60 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}A plain, empty module\end{ocamlindent}% 61 61 \medbreak 62 - \label{Ocamlary--module-type-Empty}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-Empty]{\ocamlinlinecode{Empty}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-Empty--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 62 + \label{Ocamlary--module-type-Empty}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-Empty]{\ocamlinlinecode{Empty}}}\label{Ocamlary-module-type-Empty}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-Empty--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 63 63 \end{ocamlindent}% 64 64 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}An ambiguous, misnamed module type\end{ocamlindent}% 65 65 \medbreak 66 - \label{Ocamlary--module-type-MissingComment}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-MissingComment]{\ocamlinlinecode{MissingComment}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MissingComment--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 66 + \label{Ocamlary--module-type-MissingComment}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-MissingComment]{\ocamlinlinecode{MissingComment}}}\label{Ocamlary-module-type-MissingComment}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MissingComment--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 67 67 \end{ocamlindent}% 68 68 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}An ambiguous, misnamed module type\end{ocamlindent}% 69 69 \medbreak ··· 71 71 \label{Ocamlary--module-EmptyAlias}\ocamlcodefragment{\ocamltag{keyword}{module} EmptyAlias = \hyperref[Ocamlary-Empty]{\ocamlinlinecode{Empty}}}\begin{ocamlindent}A plain module alias of \ocamlinlinecode{Empty}\end{ocamlindent}% 72 72 \medbreak 73 73 \subsubsection{EmptySig\label{Ocamlary--emptySig}}% 74 - \label{Ocamlary--module-type-EmptySig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-EmptySig]{\ocamlinlinecode{EmptySig}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 74 + \label{Ocamlary--module-type-EmptySig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-EmptySig]{\ocamlinlinecode{EmptySig}}}\label{Ocamlary-module-type-EmptySig}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 75 75 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}A plain, empty module signature\end{ocamlindent}% 76 76 \medbreak 77 77 \label{Ocamlary--module-type-EmptySigAlias}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} EmptySigAlias = \hyperref[Ocamlary-module-type-EmptySig]{\ocamlinlinecode{EmptySig}}}\begin{ocamlindent}A plain, empty module signature alias of\end{ocamlindent}% ··· 80 80 \medbreak 81 81 \label{Ocamlary--module-ModuleWithSignatureAlias}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-ModuleWithSignatureAlias]{\ocamlinlinecode{ModuleWithSignatureAlias}}}\ocamlcodefragment{ : \hyperref[Ocamlary-module-type-EmptySig]{\ocamlinlinecode{EmptySigAlias}}}\begin{ocamlindent}A plain module with an alias signature\end{ocamlindent}% 82 82 \medbreak 83 - \label{Ocamlary--module-One}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-One]{\ocamlinlinecode{One}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-One--type-one}\ocamlcodefragment{\ocamltag{keyword}{type} one}\\ 83 + \label{Ocamlary--module-One}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-One]{\ocamlinlinecode{One}}}\label{Ocamlary-One}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-One--type-one}\ocamlcodefragment{\ocamltag{keyword}{type} one}\\ 84 84 \end{ocamlindent}% 85 85 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 86 - \label{Ocamlary--module-type-SigForMod}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SigForMod]{\ocamlinlinecode{SigForMod}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SigForMod--module-Inner}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-SigForMod-Inner]{\ocamlinlinecode{Inner}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SigForMod-Inner--module-type-Empty}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SigForMod-Inner-module-type-Empty]{\ocamlinlinecode{Empty}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 86 + \label{Ocamlary--module-type-SigForMod}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SigForMod]{\ocamlinlinecode{SigForMod}}}\label{Ocamlary-module-type-SigForMod}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SigForMod--module-Inner}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-SigForMod-Inner]{\ocamlinlinecode{Inner}}}\label{Ocamlary-module-type-SigForMod-Inner}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SigForMod-Inner--module-type-Empty}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SigForMod-Inner-module-type-Empty]{\ocamlinlinecode{Empty}}}\label{Ocamlary-module-type-SigForMod-Inner-module-type-Empty}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 87 87 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 88 88 \end{ocamlindent}% 89 89 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 90 90 \end{ocamlindent}% 91 91 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}There's a signature in a module in this signature.\end{ocamlindent}% 92 92 \medbreak 93 - \label{Ocamlary--module-type-SuperSig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig]{\ocamlinlinecode{SuperSig}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig--module-type-SubSigA}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigA]{\ocamlinlinecode{SubSigA}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{A Labeled Section Header Inside of a Signature\label{Ocamlary-module-type-SuperSig-module-type-SubSigA--subSig}}% 93 + \label{Ocamlary--module-type-SuperSig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig]{\ocamlinlinecode{SuperSig}}}\label{Ocamlary-module-type-SuperSig}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig--module-type-SubSigA}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigA]{\ocamlinlinecode{SubSigA}}}\label{Ocamlary-module-type-SuperSig-module-type-SubSigA}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{A Labeled Section Header Inside of a Signature\label{Ocamlary-module-type-SuperSig-module-type-SubSigA--subSig}}% 94 94 \label{Ocamlary-module-type-SuperSig-module-type-SubSigA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 95 - \label{Ocamlary-module-type-SuperSig-module-type-SubSigA--module-SubSigAMod}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigA-SubSigAMod]{\ocamlinlinecode{SubSigAMod}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig-module-type-SubSigA-SubSigAMod--type-sub_sig_a_mod}\ocamlcodefragment{\ocamltag{keyword}{type} sub\_\allowbreak{}sig\_\allowbreak{}a\_\allowbreak{}mod}\\ 95 + \label{Ocamlary-module-type-SuperSig-module-type-SubSigA--module-SubSigAMod}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigA-SubSigAMod]{\ocamlinlinecode{SubSigAMod}}}\label{Ocamlary-module-type-SuperSig-module-type-SubSigA-SubSigAMod}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig-module-type-SubSigA-SubSigAMod--type-sub_sig_a_mod}\ocamlcodefragment{\ocamltag{keyword}{type} sub\_\allowbreak{}sig\_\allowbreak{}a\_\allowbreak{}mod}\\ 96 96 \end{ocamlindent}% 97 97 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 98 98 \end{ocamlindent}% 99 99 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 100 - \label{Ocamlary-module-type-SuperSig--module-type-SubSigB}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigB]{\ocamlinlinecode{SubSigB}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Another Labeled Section Header Inside of a Signature\label{Ocamlary-module-type-SuperSig-module-type-SubSigB--subSig_2}}% 100 + \label{Ocamlary-module-type-SuperSig--module-type-SubSigB}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigB]{\ocamlinlinecode{SubSigB}}}\label{Ocamlary-module-type-SuperSig-module-type-SubSigB}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Another Labeled Section Header Inside of a Signature\label{Ocamlary-module-type-SuperSig-module-type-SubSigB--subSig_2}}% 101 101 \label{Ocamlary-module-type-SuperSig-module-type-SubSigB--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 102 102 \end{ocamlindent}% 103 103 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 104 - \label{Ocamlary-module-type-SuperSig--module-type-EmptySig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-EmptySig]{\ocamlinlinecode{EmptySig}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig-module-type-EmptySig--type-not_actually_empty}\ocamlcodefragment{\ocamltag{keyword}{type} not\_\allowbreak{}actually\_\allowbreak{}empty}\\ 104 + \label{Ocamlary-module-type-SuperSig--module-type-EmptySig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-EmptySig]{\ocamlinlinecode{EmptySig}}}\label{Ocamlary-module-type-SuperSig-module-type-EmptySig}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig-module-type-EmptySig--type-not_actually_empty}\ocamlcodefragment{\ocamltag{keyword}{type} not\_\allowbreak{}actually\_\allowbreak{}empty}\\ 105 105 \end{ocamlindent}% 106 106 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 107 - \label{Ocamlary-module-type-SuperSig--module-type-One}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-One]{\ocamlinlinecode{One}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig-module-type-One--type-two}\ocamlcodefragment{\ocamltag{keyword}{type} two}\\ 107 + \label{Ocamlary-module-type-SuperSig--module-type-One}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-One]{\ocamlinlinecode{One}}}\label{Ocamlary-module-type-SuperSig-module-type-One}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-SuperSig-module-type-One--type-two}\ocamlcodefragment{\ocamltag{keyword}{type} two}\\ 108 108 \end{ocamlindent}% 109 109 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 110 - \label{Ocamlary-module-type-SuperSig--module-type-SuperSig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-SuperSig]{\ocamlinlinecode{SuperSig}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 110 + \label{Ocamlary-module-type-SuperSig--module-type-SuperSig}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-SuperSig-module-type-SuperSig]{\ocamlinlinecode{SuperSig}}}\label{Ocamlary-module-type-SuperSig-module-type-SuperSig}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 111 111 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 112 112 \end{ocamlindent}% 113 113 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 114 114 For a good time, see \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigA--subSig]{\ocamlinlinecode{A Labeled Section Header Inside of a Signature}[p\pageref*{Ocamlary-module-type-SuperSig-module-type-SubSigA--subSig}]} or \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigB--subSig]{\ocamlinlinecode{Another Labeled Section Header Inside of a Signature}[p\pageref*{Ocamlary-module-type-SuperSig-module-type-SubSigB--subSig}]} or \hyperref[Ocamlary-module-type-SuperSig-module-type-EmptySig]{\ocamlinlinecode{\ocamlinlinecode{SuperSig.\allowbreak{}EmptySig}}[p\pageref*{Ocamlary-module-type-SuperSig-module-type-EmptySig}]}. Section \hyperref[Ocamlary--s9000]{\ocamlinlinecode{Section 9000}[p\pageref*{Ocamlary--s9000}]} is also interesting. \hyperref[Ocamlary--emptySig]{\ocamlinlinecode{EmptySig}[p\pageref*{Ocamlary--emptySig}]} is the section and \hyperref[Ocamlary-module-type-EmptySig]{\ocamlinlinecode{\ocamlinlinecode{EmptySig}}[p\pageref*{Ocamlary-module-type-EmptySig}]} is the module signature. 115 115 116 - \label{Ocamlary--module-Buffer}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Buffer]{\ocamlinlinecode{Buffer}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Buffer--val-f}\ocamlcodefragment{\ocamltag{keyword}{val} f : int \ocamltag{arrow}{$\rightarrow$} unit}\\ 116 + \label{Ocamlary--module-Buffer}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Buffer]{\ocamlinlinecode{Buffer}}}\label{Ocamlary-Buffer}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Buffer--val-f}\ocamlcodefragment{\ocamltag{keyword}{val} f : int \ocamltag{arrow}{$\rightarrow$} unit}\\ 117 117 \end{ocamlindent}% 118 118 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}References are resolved after everything, so \ocamlinlinecode{\{!Buffer.\allowbreak{}t\}} won't resolve.\end{ocamlindent}% 119 119 \medbreak ··· 202 202 \label{Ocamlary--val-(=)}\ocamlcodefragment{\ocamltag{keyword}{val} (=) : unit}\\ 203 203 \label{Ocamlary--val-(land)}\ocamlcodefragment{\ocamltag{keyword}{val} (land) : unit}\\ 204 204 \subsubsection{Advanced Module Stuff\label{Ocamlary--advanced-module-stuff}}% 205 - \label{Ocamlary--module-CollectionModule}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CollectionModule]{\ocamlinlinecode{CollectionModule}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 205 + \label{Ocamlary--module-CollectionModule}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CollectionModule]{\ocamlinlinecode{CollectionModule}}}\label{Ocamlary-CollectionModule}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 206 206 \medbreak 207 207 \label{Ocamlary-CollectionModule--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 208 - \label{Ocamlary-CollectionModule--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CollectionModule-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-CollectionModule--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 208 + \label{Ocamlary-CollectionModule--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CollectionModule-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\label{Ocamlary-CollectionModule-InnerModuleA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-CollectionModule--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 209 209 \medbreak 210 - \label{Ocamlary-CollectionModule-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CollectionModule-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 210 + \label{Ocamlary-CollectionModule-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CollectionModule-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\label{Ocamlary-CollectionModule-InnerModuleA-InnerModuleA'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 211 211 \medbreak 212 212 \end{ocamlindent}% 213 213 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 214 214 \medbreak 215 - \label{Ocamlary-CollectionModule-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-CollectionModule-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-CollectionModule-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 215 + \label{Ocamlary-CollectionModule-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-CollectionModule-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\label{Ocamlary-CollectionModule-InnerModuleA-module-type-InnerModuleTypeA'}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CollectionModule-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-CollectionModule-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 216 216 \medbreak 217 217 \end{ocamlindent}% 218 218 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% ··· 225 225 \end{ocamlindent}% 226 226 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 227 227 \medbreak 228 - \label{Ocamlary--module-type-COLLECTION}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-COLLECTION]{\ocamlinlinecode{COLLECTION}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 228 + \label{Ocamlary--module-type-COLLECTION}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-COLLECTION]{\ocamlinlinecode{COLLECTION}}}\label{Ocamlary-module-type-COLLECTION}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 229 229 \medbreak 230 230 \label{Ocamlary-module-type-COLLECTION--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 231 - \label{Ocamlary-module-type-COLLECTION--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-COLLECTION--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 231 + \label{Ocamlary-module-type-COLLECTION--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\label{Ocamlary-module-type-COLLECTION-InnerModuleA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-COLLECTION--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 232 232 \medbreak 233 - \label{Ocamlary-module-type-COLLECTION-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 233 + \label{Ocamlary-module-type-COLLECTION-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\label{Ocamlary-module-type-COLLECTION-InnerModuleA-InnerModuleA'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 234 234 \medbreak 235 235 \end{ocamlindent}% 236 236 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 237 237 \medbreak 238 - \label{Ocamlary-module-type-COLLECTION-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 238 + \label{Ocamlary-module-type-COLLECTION-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\label{Ocamlary-module-type-COLLECTION-InnerModuleA-module-type-InnerModuleTypeA'}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-COLLECTION-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-COLLECTION-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 239 239 \medbreak 240 240 \end{ocamlindent}% 241 241 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% ··· 254 254 \ocamltag{keyword}{with} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-COLLECTION--type-collection]{\ocamlinlinecode{collection}} = \hyperref[Ocamlary-Recollection-argument-1-C--type-element]{\ocamlinlinecode{C.\allowbreak{}element}} list 255 255 \ocamltag{keyword}{and} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-COLLECTION--type-element]{\ocamlinlinecode{element}} = \hyperref[Ocamlary-Recollection-argument-1-C--type-collection]{\ocamlinlinecode{C.\allowbreak{}collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 256 256 \medbreak 257 - \label{Ocamlary--module-type-MMM}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-MMM]{\ocamlinlinecode{MMM}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MMM--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-MMM-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MMM-C--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 258 - \medbreak 259 - \label{Ocamlary-module-type-MMM-C--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 260 - \label{Ocamlary-module-type-MMM-C--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-MMM-C-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MMM-C-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-MMM-C--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 261 - \medbreak 262 - \label{Ocamlary-module-type-MMM-C-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-MMM-C-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MMM-C-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 263 - \medbreak 264 - \end{ocamlindent}% 265 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 266 - \medbreak 267 - \label{Ocamlary-module-type-MMM-C-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-MMM-C-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MMM-C-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-MMM-C-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 268 - \medbreak 269 - \end{ocamlindent}% 270 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% 271 - \medbreak 272 - \end{ocamlindent}% 273 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA}.\end{ocamlindent}% 274 - \medbreak 275 - \label{Ocamlary-module-type-MMM-C--module-type-InnerModuleTypeA}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} InnerModuleTypeA = \hyperref[Ocamlary-module-type-MMM-C-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleA.\allowbreak{}InnerModuleTypeA'}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA}.\end{ocamlindent}% 276 - \medbreak 277 - \end{ocamlindent}% 278 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 257 + \label{Ocamlary--module-type-MMM}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-MMM]{\ocamlinlinecode{MMM}}}\label{Ocamlary-module-type-MMM}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-MMM--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-MMM-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \hyperref[Ocamlary-module-type-COLLECTION]{\ocamlinlinecode{COLLECTION}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 279 258 \medbreak 280 259 \end{ocamlindent}% 281 260 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 282 - \label{Ocamlary--module-type-RECOLLECTION}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-RECOLLECTION]{\ocamlinlinecode{RECOLLECTION}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RECOLLECTION--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} C = \hyperref[Ocamlary-Recollection]{\ocamlinlinecode{Recollection(CollectionModule)}}}\\ 261 + \label{Ocamlary--module-type-RECOLLECTION}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-RECOLLECTION]{\ocamlinlinecode{RECOLLECTION}}}\label{Ocamlary-module-type-RECOLLECTION}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RECOLLECTION--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} C = \hyperref[Ocamlary-Recollection]{\ocamlinlinecode{Recollection(CollectionModule)}}}\\ 283 262 \end{ocamlindent}% 284 263 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 285 - \label{Ocamlary--module-type-RecollectionModule}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-RecollectionModule]{\ocamlinlinecode{RecollectionModule}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}\label{Ocamlary-module-type-RecollectionModule--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection = \hyperref[Ocamlary-CollectionModule--type-element]{\ocamlinlinecode{CollectionModule.\allowbreak{}element}} list}\\ 264 + \label{Ocamlary--module-type-RecollectionModule}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-RecollectionModule]{\ocamlinlinecode{RecollectionModule}}}\label{Ocamlary-module-type-RecollectionModule}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}\label{Ocamlary-module-type-RecollectionModule--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection = \hyperref[Ocamlary-CollectionModule--type-element]{\ocamlinlinecode{CollectionModule.\allowbreak{}element}} list}\\ 286 265 \label{Ocamlary-module-type-RecollectionModule--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element = \hyperref[Ocamlary-CollectionModule--type-collection]{\ocamlinlinecode{CollectionModule.\allowbreak{}collection}}}\\ 287 - \label{Ocamlary-module-type-RecollectionModule--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-RecollectionModule--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 266 + \label{Ocamlary-module-type-RecollectionModule--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-RecollectionModule--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 288 267 \medbreak 289 - \label{Ocamlary-module-type-RecollectionModule-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 268 + \label{Ocamlary-module-type-RecollectionModule-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA-InnerModuleA'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 290 269 \medbreak 291 270 \end{ocamlindent}% 292 271 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 293 272 \medbreak 294 - \label{Ocamlary-module-type-RecollectionModule-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 273 + \label{Ocamlary-module-type-RecollectionModule-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA-module-type-InnerModuleTypeA'}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-RecollectionModule-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-RecollectionModule-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 295 274 \medbreak 296 275 \end{ocamlindent}% 297 276 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% ··· 303 282 \medbreak 304 283 \end{ocamlindent}% 305 284 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 306 - \label{Ocamlary--module-type-A}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-A]{\ocamlinlinecode{A}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-A--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 307 - \label{Ocamlary-module-type-A--module-Q}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-A-Q]{\ocamlinlinecode{Q}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-A-Q--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 308 - \medbreak 309 - \label{Ocamlary-module-type-A-Q--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 310 - \label{Ocamlary-module-type-A-Q--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-A-Q-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-A-Q-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-A-Q--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 311 - \medbreak 312 - \label{Ocamlary-module-type-A-Q-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-A-Q-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-A-Q-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 313 - \medbreak 314 - \end{ocamlindent}% 315 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 316 - \medbreak 317 - \label{Ocamlary-module-type-A-Q-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-A-Q-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-A-Q-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-A-Q-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 318 - \medbreak 319 - \end{ocamlindent}% 320 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% 321 - \medbreak 322 - \end{ocamlindent}% 323 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA}.\end{ocamlindent}% 324 - \medbreak 325 - \label{Ocamlary-module-type-A-Q--module-type-InnerModuleTypeA}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} InnerModuleTypeA = \hyperref[Ocamlary-module-type-A-Q-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleA.\allowbreak{}InnerModuleTypeA'}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA}.\end{ocamlindent}% 326 - \medbreak 327 - \end{ocamlindent}% 328 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 285 + \label{Ocamlary--module-type-A}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-A]{\ocamlinlinecode{A}}}\label{Ocamlary-module-type-A}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-A--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 286 + \label{Ocamlary-module-type-A--module-Q}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-A-Q]{\ocamlinlinecode{Q}}}\ocamlcodefragment{ : \hyperref[Ocamlary-module-type-COLLECTION]{\ocamlinlinecode{COLLECTION}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 329 287 \medbreak 330 288 \end{ocamlindent}% 331 289 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 332 - \label{Ocamlary--module-type-B}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-B]{\ocamlinlinecode{B}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-B--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 333 - \label{Ocamlary-module-type-B--module-Q}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-B-Q]{\ocamlinlinecode{Q}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-B-Q--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 334 - \medbreak 335 - \label{Ocamlary-module-type-B-Q--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 336 - \label{Ocamlary-module-type-B-Q--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-B-Q-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-B-Q-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-B-Q--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 337 - \medbreak 338 - \label{Ocamlary-module-type-B-Q-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-B-Q-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-B-Q-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 339 - \medbreak 340 - \end{ocamlindent}% 341 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 342 - \medbreak 343 - \label{Ocamlary-module-type-B-Q-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-B-Q-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-B-Q-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-B-Q-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 344 - \medbreak 345 - \end{ocamlindent}% 346 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% 347 - \medbreak 348 - \end{ocamlindent}% 349 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA}.\end{ocamlindent}% 350 - \medbreak 351 - \label{Ocamlary-module-type-B-Q--module-type-InnerModuleTypeA}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} InnerModuleTypeA = \hyperref[Ocamlary-module-type-B-Q-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleA.\allowbreak{}InnerModuleTypeA'}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA}.\end{ocamlindent}% 352 - \medbreak 353 - \end{ocamlindent}% 354 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 290 + \label{Ocamlary--module-type-B}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-B]{\ocamlinlinecode{B}}}\label{Ocamlary-module-type-B}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-B--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 291 + \label{Ocamlary-module-type-B--module-Q}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-B-Q]{\ocamlinlinecode{Q}}}\ocamlcodefragment{ : \hyperref[Ocamlary-module-type-COLLECTION]{\ocamlinlinecode{COLLECTION}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 355 292 \medbreak 356 293 \end{ocamlindent}% 357 294 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 358 - \label{Ocamlary--module-type-C}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-A]{\ocamlinlinecode{A}}\label{Ocamlary-module-type-C--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 359 - \label{Ocamlary-module-type-C--module-Q}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-C-Q]{\ocamlinlinecode{Q}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-C-Q--type-collection}\ocamlcodefragment{\ocamltag{keyword}{type} collection}\begin{ocamlindent}This comment is for \ocamlinlinecode{collection}.\end{ocamlindent}% 360 - \medbreak 361 - \label{Ocamlary-module-type-C-Q--type-element}\ocamlcodefragment{\ocamltag{keyword}{type} element}\\ 362 - \label{Ocamlary-module-type-C-Q--module-InnerModuleA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-C-Q-InnerModuleA]{\ocamlinlinecode{InnerModuleA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-C-Q-InnerModuleA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-C-Q--type-collection]{\ocamlinlinecode{collection}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 363 - \medbreak 364 - \label{Ocamlary-module-type-C-Q-InnerModuleA--module-InnerModuleA'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-C-Q-InnerModuleA-InnerModuleA']{\ocamlinlinecode{InnerModuleA'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-C-Q-InnerModuleA-InnerModuleA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = (unit,\allowbreak{} unit) \hyperref[Ocamlary--type-a_function]{\ocamlinlinecode{a\_\allowbreak{}function}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 365 - \medbreak 366 - \end{ocamlindent}% 367 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA'}.\end{ocamlindent}% 368 - \medbreak 369 - \label{Ocamlary-module-type-C-Q-InnerModuleA--module-type-InnerModuleTypeA'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-C-Q-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleTypeA'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-C-Q-InnerModuleA-module-type-InnerModuleTypeA'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-module-type-C-Q-InnerModuleA-InnerModuleA'--type-t]{\ocamlinlinecode{InnerModuleA'.\allowbreak{}t}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{t}.\end{ocamlindent}% 370 - \medbreak 371 - \end{ocamlindent}% 372 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA'}.\end{ocamlindent}% 373 - \medbreak 374 - \end{ocamlindent}% 375 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleA}.\end{ocamlindent}% 376 - \medbreak 377 - \label{Ocamlary-module-type-C-Q--module-type-InnerModuleTypeA}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} InnerModuleTypeA = \hyperref[Ocamlary-module-type-C-Q-InnerModuleA-module-type-InnerModuleTypeA']{\ocamlinlinecode{InnerModuleA.\allowbreak{}InnerModuleTypeA'}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{InnerModuleTypeA}.\end{ocamlindent}% 378 - \medbreak 379 - \end{ocamlindent}% 380 - \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 295 + \label{Ocamlary--module-type-C}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-C]{\ocamlinlinecode{C}}}\label{Ocamlary-module-type-C}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-A]{\ocamlinlinecode{A}}\label{Ocamlary-module-type-C--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 296 + \label{Ocamlary-module-type-C--module-Q}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-C-Q]{\ocamlinlinecode{Q}}}\ocamlcodefragment{ : \hyperref[Ocamlary-module-type-COLLECTION]{\ocamlinlinecode{COLLECTION}}}\begin{ocamlindent}This comment is for \ocamlinlinecode{CollectionModule}.\end{ocamlindent}% 381 297 \medbreak 382 298 \ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-B]{\ocamlinlinecode{B}} \ocamltag{keyword}{with} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-B--type-t]{\ocamlinlinecode{t}} := \hyperref[Ocamlary-module-type-C--type-t]{\ocamlinlinecode{t}} \ocamltag{keyword}{and} \ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-B-Q]{\ocamlinlinecode{Q}} := \hyperref[Ocamlary-module-type-C-Q]{\ocamlinlinecode{Q}}\end{ocamlindent}% 383 299 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This module type includes two signatures.\end{ocamlindent}% ··· 386 302 (\hyperref[Ocamlary-FunctorTypeOf-argument-1-Collection]{\ocamlinlinecode{Collection}} : \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-CollectionModule]{\ocamlinlinecode{CollectionModule}}) : 387 303 \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{FunctorTypeOf}.\end{ocamlindent}% 388 304 \medbreak 389 - \label{Ocamlary--module-type-IncludeModuleType}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-IncludeModuleType]{\ocamlinlinecode{IncludeModuleType}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}This comment is for \ocamlinlinecode{include EmptySigAlias}.\ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-EmptySig]{\ocamlinlinecode{EmptySigAlias}}\end{ocamlindent}% 305 + \label{Ocamlary--module-type-IncludeModuleType}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-IncludeModuleType]{\ocamlinlinecode{IncludeModuleType}}}\label{Ocamlary-module-type-IncludeModuleType}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}This comment is for \ocamlinlinecode{include EmptySigAlias}.\ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-EmptySig]{\ocamlinlinecode{EmptySigAlias}}\end{ocamlindent}% 390 306 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}This comment is for \ocamlinlinecode{IncludeModuleType}.\end{ocamlindent}% 391 307 \medbreak 392 - \label{Ocamlary--module-type-ToInclude}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-ToInclude]{\ocamlinlinecode{ToInclude}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-ToInclude--module-IncludedA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-ToInclude-IncludedA]{\ocamlinlinecode{IncludedA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-ToInclude-IncludedA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 308 + \label{Ocamlary--module-type-ToInclude}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-ToInclude]{\ocamlinlinecode{ToInclude}}}\label{Ocamlary-module-type-ToInclude}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-ToInclude--module-IncludedA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-ToInclude-IncludedA]{\ocamlinlinecode{IncludedA}}}\label{Ocamlary-module-type-ToInclude-IncludedA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-ToInclude-IncludedA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 393 309 \end{ocamlindent}% 394 310 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 395 - \label{Ocamlary-module-type-ToInclude--module-type-IncludedB}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-ToInclude-module-type-IncludedB]{\ocamlinlinecode{IncludedB}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-ToInclude-module-type-IncludedB--type-s}\ocamlcodefragment{\ocamltag{keyword}{type} s}\\ 311 + \label{Ocamlary-module-type-ToInclude--module-type-IncludedB}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-ToInclude-module-type-IncludedB]{\ocamlinlinecode{IncludedB}}}\label{Ocamlary-module-type-ToInclude-module-type-IncludedB}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-ToInclude-module-type-IncludedB--type-s}\ocamlcodefragment{\ocamltag{keyword}{type} s}\\ 396 312 \end{ocamlindent}% 397 313 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 398 314 \end{ocamlindent}% 399 315 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 400 - \ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-ToInclude]{\ocamlinlinecode{ToInclude}}\label{Ocamlary--module-IncludedA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludedA]{\ocamlinlinecode{IncludedA}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-IncludedA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 316 + \ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-ToInclude]{\ocamlinlinecode{ToInclude}}\label{Ocamlary--module-IncludedA}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludedA]{\ocamlinlinecode{IncludedA}}}\label{Ocamlary-IncludedA}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-IncludedA--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 401 317 \end{ocamlindent}% 402 318 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 403 - \label{Ocamlary--module-type-IncludedB}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-IncludedB]{\ocamlinlinecode{IncludedB}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-IncludedB--type-s}\ocamlcodefragment{\ocamltag{keyword}{type} s}\\ 319 + \label{Ocamlary--module-type-IncludedB}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-IncludedB]{\ocamlinlinecode{IncludedB}}}\label{Ocamlary-module-type-IncludedB}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-IncludedB--type-s}\ocamlcodefragment{\ocamltag{keyword}{type} s}\\ 404 320 \end{ocamlindent}% 405 321 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 406 322 \subsubsection{Advanced Type Stuff\label{Ocamlary--advanced-type-stuff}}% ··· 582 498 \begin{ocamltabular}{p{0.500\textwidth}p{0.500\textwidth}}\ocamlcodefragment{| \ocamltag{extension}{Quux} \ocamltag{keyword}{of} \ocamltag{type-var}{'c}}\label{Ocamlary--extension-Quux}& 'c poly\_ext\\ 583 499 \end{ocamltabular}% 584 500 \\ 585 - \label{Ocamlary--module-ExtMod}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-ExtMod]{\ocamlinlinecode{ExtMod}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-ExtMod--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = .\allowbreak{}.\allowbreak{}}\\ 501 + \label{Ocamlary--module-ExtMod}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-ExtMod]{\ocamlinlinecode{ExtMod}}}\label{Ocamlary-ExtMod}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-ExtMod--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = .\allowbreak{}.\allowbreak{}}\\ 586 502 \label{Ocamlary-ExtMod--extension-decl-Leisureforce}\ocamlcodefragment{\ocamltag{keyword}{type} \hyperref[Ocamlary-ExtMod--type-t]{\ocamlinlinecode{t}} += }\\ 587 503 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{extension}{Leisureforce}}\label{Ocamlary-ExtMod--extension-Leisureforce}\\ 588 504 \end{ocamltabular}% ··· 607 523 \label{Ocamlary--class-param_class}\ocamlcodefragment{\ocamltag{keyword}{class} 'a \hyperref[Ocamlary-class-param_class]{\ocamlinlinecode{param\_\allowbreak{}class}}}\ocamlcodefragment{ : \ocamltag{type-var}{'a} \ocamltag{arrow}{$\rightarrow$} \ocamltag{keyword}{object} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 608 524 \label{Ocamlary--type-my_unit_object}\ocamlcodefragment{\ocamltag{keyword}{type} my\_\allowbreak{}unit\_\allowbreak{}object = unit \hyperref[Ocamlary-class-param_class]{\ocamlinlinecode{param\_\allowbreak{}class}}}\\ 609 525 \label{Ocamlary--type-my_unit_class}\ocamlcodefragment{\ocamltag{keyword}{type} 'a my\_\allowbreak{}unit\_\allowbreak{}class = unit \hyperref[Ocamlary-class-param_class]{\ocamlinlinecode{param\_\allowbreak{}class}} \ocamltag{keyword}{as} 'a}\\ 610 - \label{Ocamlary--module-Dep1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep1]{\ocamlinlinecode{Dep1}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep1--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep1-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep1-module-type-S--class-c}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Ocamlary-Dep1-module-type-S-class-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ : \ocamltag{keyword}{object}}\begin{ocamlindent}\label{Ocamlary-Dep1-module-type-S-class-c--method-m}\ocamlcodefragment{\ocamltag{keyword}{method} m : int}\\ 611 - \end{ocamlindent}% 612 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 526 + \label{Ocamlary--module-Dep1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep1]{\ocamlinlinecode{Dep1}}}\label{Ocamlary-Dep1}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep1--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep1-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-Dep1-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep1-module-type-S--class-c}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Ocamlary-Dep1-module-type-S-class-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ : \ocamltag{keyword}{object} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 613 527 \end{ocamlindent}% 614 528 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 615 - \label{Ocamlary-Dep1--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep1-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep1-X--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep1-X-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \hyperref[Ocamlary-Dep1-module-type-S]{\ocamlinlinecode{S}}}\\ 529 + \label{Ocamlary-Dep1--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep1-X]{\ocamlinlinecode{X}}}\label{Ocamlary-Dep1-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep1-X--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep1-X-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \hyperref[Ocamlary-Dep1-module-type-S]{\ocamlinlinecode{S}}}\\ 616 530 \end{ocamlindent}% 617 531 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 618 532 \end{ocamlindent}% 619 533 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 620 534 \label{Ocamlary--module-Dep2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep2]{\ocamlinlinecode{Dep2}}}\ocamlcodefragment{ (\hyperref[Ocamlary-Dep2-argument-1-Arg]{\ocamlinlinecode{Arg}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 621 535 \label{Ocamlary--type-dep1}\ocamlcodefragment{\ocamltag{keyword}{type} dep1 = \hyperref[Ocamlary-Dep1-module-type-S-class-c]{\ocamlinlinecode{Dep2(Dep1).\allowbreak{}B.\allowbreak{}c}}}\\ 622 - \label{Ocamlary--module-Dep3}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep3]{\ocamlinlinecode{Dep3}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep3--type-a}\ocamlcodefragment{\ocamltag{keyword}{type} a}\\ 623 - \end{ocamlindent}% 624 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 625 - \label{Ocamlary--module-Dep4}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep4]{\ocamlinlinecode{Dep4}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep4--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep4-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep4-module-type-T--type-b}\ocamlcodefragment{\ocamltag{keyword}{type} b}\\ 536 + \label{Ocamlary--module-Dep3}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep3]{\ocamlinlinecode{Dep3}}}\label{Ocamlary-Dep3}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep3--type-a}\ocamlcodefragment{\ocamltag{keyword}{type} a}\\ 626 537 \end{ocamlindent}% 627 538 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 628 - \label{Ocamlary-Dep4--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep4-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep4-module-type-S--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep4-module-type-S-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep4-module-type-S-X--type-b}\ocamlcodefragment{\ocamltag{keyword}{type} b}\\ 539 + \label{Ocamlary--module-Dep4}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep4]{\ocamlinlinecode{Dep4}}}\label{Ocamlary-Dep4}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep4--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep4-module-type-T]{\ocamlinlinecode{T}}}\label{Ocamlary-Dep4-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep4-module-type-T--type-b}\ocamlcodefragment{\ocamltag{keyword}{type} b}\\ 629 540 \end{ocamlindent}% 630 541 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 631 - \label{Ocamlary-Dep4-module-type-S--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep4-module-type-S-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 542 + \label{Ocamlary-Dep4--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep4-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-Dep4-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep4-module-type-S--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep4-module-type-S-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \hyperref[Ocamlary-Dep4-module-type-T]{\ocamlinlinecode{T}}}\\ 543 + \label{Ocamlary-Dep4-module-type-S--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep4-module-type-S-Y]{\ocamlinlinecode{Y}}}\label{Ocamlary-Dep4-module-type-S-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 632 544 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 633 545 \end{ocamlindent}% 634 546 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ ··· 638 550 \label{Ocamlary--module-Dep5}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep5]{\ocamlinlinecode{Dep5}}}\ocamlcodefragment{ (\hyperref[Ocamlary-Dep5-argument-1-Arg]{\ocamlinlinecode{Arg}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 639 551 \label{Ocamlary--type-dep2}\ocamlcodefragment{\ocamltag{keyword}{type} dep2 = \hyperref[Ocamlary-Dep4-module-type-T--type-b]{\ocamlinlinecode{Dep5(Dep4).\allowbreak{}Z.\allowbreak{}X.\allowbreak{}b}}}\\ 640 552 \label{Ocamlary--type-dep3}\ocamlcodefragment{\ocamltag{keyword}{type} dep3 = \hyperref[Ocamlary-Dep3--type-a]{\ocamlinlinecode{Dep5(Dep4).\allowbreak{}Z.\allowbreak{}Y.\allowbreak{}a}}}\\ 641 - \label{Ocamlary--module-Dep6}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep6]{\ocamlinlinecode{Dep6}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep6--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep6-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep6-module-type-S--type-d}\ocamlcodefragment{\ocamltag{keyword}{type} d}\\ 642 - \end{ocamlindent}% 643 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 644 - \label{Ocamlary-Dep6--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep6-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep6-module-type-T--module-type-R}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} R = \hyperref[Ocamlary-Dep6-module-type-S]{\ocamlinlinecode{S}}}\\ 645 - \label{Ocamlary-Dep6-module-type-T--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep6-module-type-T-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep6-module-type-T-Y--type-d}\ocamlcodefragment{\ocamltag{keyword}{type} d}\\ 553 + \label{Ocamlary--module-Dep6}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep6]{\ocamlinlinecode{Dep6}}}\label{Ocamlary-Dep6}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep6--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep6-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-Dep6-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep6-module-type-S--type-d}\ocamlcodefragment{\ocamltag{keyword}{type} d}\\ 646 554 \end{ocamlindent}% 647 555 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 556 + \label{Ocamlary-Dep6--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep6-module-type-T]{\ocamlinlinecode{T}}}\label{Ocamlary-Dep6-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep6-module-type-T--module-type-R}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} R = \hyperref[Ocamlary-Dep6-module-type-S]{\ocamlinlinecode{S}}}\\ 557 + \label{Ocamlary-Dep6-module-type-T--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep6-module-type-T-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \hyperref[Ocamlary-Dep6-module-type-S]{\ocamlinlinecode{R}}}\\ 648 558 \end{ocamlindent}% 649 559 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 650 560 \label{Ocamlary-Dep6--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep6-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \hyperref[Ocamlary-Dep6-module-type-T]{\ocamlinlinecode{T}}}\\ ··· 652 562 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 653 563 \label{Ocamlary--module-Dep7}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep7]{\ocamlinlinecode{Dep7}}}\ocamlcodefragment{ (\hyperref[Ocamlary-Dep7-argument-1-Arg]{\ocamlinlinecode{Arg}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 654 564 \label{Ocamlary--type-dep4}\ocamlcodefragment{\ocamltag{keyword}{type} dep4 = \hyperref[Ocamlary-Dep6-module-type-T-Y--type-d]{\ocamlinlinecode{Dep7(Dep6).\allowbreak{}M.\allowbreak{}Y.\allowbreak{}d}}}\\ 655 - \label{Ocamlary--module-Dep8}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep8]{\ocamlinlinecode{Dep8}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep8--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep8-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep8-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 565 + \label{Ocamlary--module-Dep8}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep8]{\ocamlinlinecode{Dep8}}}\label{Ocamlary-Dep8}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep8--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep8-module-type-T]{\ocamlinlinecode{T}}}\label{Ocamlary-Dep8-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep8-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 656 566 \end{ocamlindent}% 657 567 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 658 568 \end{ocamlindent}% 659 569 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 660 570 \label{Ocamlary--module-Dep9}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep9]{\ocamlinlinecode{Dep9}}}\ocamlcodefragment{ (\hyperref[Ocamlary-Dep9-argument-1-X]{\ocamlinlinecode{X}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 661 - \label{Ocamlary--module-type-Dep10}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-Dep10]{\ocamlinlinecode{Dep10}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-Dep10--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 662 - \end{ocamlindent}% 663 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 664 - \label{Ocamlary--module-Dep11}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep11]{\ocamlinlinecode{Dep11}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep11--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep11-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep11-module-type-S--class-c}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Ocamlary-Dep11-module-type-S-class-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ : \ocamltag{keyword}{object}}\begin{ocamlindent}\label{Ocamlary-Dep11-module-type-S-class-c--method-m}\ocamlcodefragment{\ocamltag{keyword}{method} m : int}\\ 571 + \label{Ocamlary--module-type-Dep10}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-Dep10]{\ocamlinlinecode{Dep10}}}\label{Ocamlary-module-type-Dep10}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-Dep10--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 665 572 \end{ocamlindent}% 666 573 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 574 + \label{Ocamlary--module-Dep11}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep11]{\ocamlinlinecode{Dep11}}}\label{Ocamlary-Dep11}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep11--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-Dep11-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-Dep11-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Dep11-module-type-S--class-c}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Ocamlary-Dep11-module-type-S-class-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ : \ocamltag{keyword}{object} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 667 575 \end{ocamlindent}% 668 576 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 669 577 \end{ocamlindent}% ··· 671 579 \label{Ocamlary--module-Dep12}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep12]{\ocamlinlinecode{Dep12}}}\ocamlcodefragment{ (\hyperref[Ocamlary-Dep12-argument-1-Arg]{\ocamlinlinecode{Arg}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 672 580 \label{Ocamlary--module-Dep13}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Dep13]{\ocamlinlinecode{Dep13}}}\ocamlcodefragment{ : \hyperref[Ocamlary-Dep11-module-type-S]{\ocamlinlinecode{Dep12(Dep11).\allowbreak{}T}}}\\ 673 581 \label{Ocamlary--type-dep5}\ocamlcodefragment{\ocamltag{keyword}{type} dep5 = \hyperref[Ocamlary-Dep11-module-type-S-class-c]{\ocamlinlinecode{Dep13.\allowbreak{}c}}}\\ 674 - \label{Ocamlary--module-type-With1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-With1]{\ocamlinlinecode{With1}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With1--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With1-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With1-M--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 582 + \label{Ocamlary--module-type-With1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-With1]{\ocamlinlinecode{With1}}}\label{Ocamlary-module-type-With1}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With1--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With1-M]{\ocamlinlinecode{M}}}\label{Ocamlary-module-type-With1-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With1-M--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 675 583 \end{ocamlindent}% 676 584 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 677 585 \label{Ocamlary-module-type-With1--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} N : \hyperref[Ocamlary-module-type-With1-M--module-type-S]{\ocamlinlinecode{M.\allowbreak{}S}}}\\ 678 586 \end{ocamlindent}% 679 587 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 680 - \label{Ocamlary--module-With2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With2]{\ocamlinlinecode{With2}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With2--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With2-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With2-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 588 + \label{Ocamlary--module-With2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With2]{\ocamlinlinecode{With2}}}\label{Ocamlary-With2}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With2--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With2-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-With2-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With2-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 681 589 \end{ocamlindent}% 682 590 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 683 591 \end{ocamlindent}% ··· 686 594 \label{Ocamlary--type-with1}\ocamlcodefragment{\ocamltag{keyword}{type} with1 = \hyperref[Ocamlary-With3-N--type-t]{\ocamlinlinecode{With3.\allowbreak{}N.\allowbreak{}t}}}\\ 687 595 \label{Ocamlary--module-With4}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With4]{\ocamlinlinecode{With4}}}\ocamlcodefragment{ : \hyperref[Ocamlary-module-type-With1]{\ocamlinlinecode{With1}} \ocamltag{keyword}{with} \ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With1-M]{\ocamlinlinecode{M}} := \hyperref[Ocamlary-With2]{\ocamlinlinecode{With2}}}\\ 688 596 \label{Ocamlary--type-with2}\ocamlcodefragment{\ocamltag{keyword}{type} with2 = \hyperref[Ocamlary-With4-N--type-t]{\ocamlinlinecode{With4.\allowbreak{}N.\allowbreak{}t}}}\\ 689 - \label{Ocamlary--module-With5}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With5]{\ocamlinlinecode{With5}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With5--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With5-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With5-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 597 + \label{Ocamlary--module-With5}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With5]{\ocamlinlinecode{With5}}}\label{Ocamlary-With5}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With5--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With5-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-With5-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With5-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 690 598 \end{ocamlindent}% 691 599 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 692 600 \label{Ocamlary-With5--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With5-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \hyperref[Ocamlary-With5-module-type-S]{\ocamlinlinecode{S}}}\\ 693 601 \end{ocamlindent}% 694 602 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 695 - \label{Ocamlary--module-With6}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With6]{\ocamlinlinecode{With6}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With6--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With6-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With6-module-type-T--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With6-module-type-T-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With6-module-type-T-M--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 603 + \label{Ocamlary--module-With6}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With6]{\ocamlinlinecode{With6}}}\label{Ocamlary-With6}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With6--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With6-module-type-T]{\ocamlinlinecode{T}}}\label{Ocamlary-With6-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With6-module-type-T--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With6-module-type-T-M]{\ocamlinlinecode{M}}}\label{Ocamlary-With6-module-type-T-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With6-module-type-T-M--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 696 604 \label{Ocamlary-With6-module-type-T-M--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} N : \hyperref[Ocamlary-With6-module-type-T-M--module-type-S]{\ocamlinlinecode{S}}}\\ 697 605 \end{ocamlindent}% 698 606 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ ··· 701 609 \end{ocamlindent}% 702 610 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 703 611 \label{Ocamlary--module-With7}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With7]{\ocamlinlinecode{With7}}}\ocamlcodefragment{ (\hyperref[Ocamlary-With7-argument-1-X]{\ocamlinlinecode{X}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 704 - \label{Ocamlary--module-type-With8}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-With8]{\ocamlinlinecode{With8}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With8--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With8-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With8-M--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S = \hyperref[Ocamlary-With5-module-type-S]{\ocamlinlinecode{With5.\allowbreak{}S}}}\\ 705 - \label{Ocamlary-module-type-With8-M--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With8-M-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With8-M-N--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[Ocamlary-With5-N--type-t]{\ocamlinlinecode{With5.\allowbreak{}N.\allowbreak{}t}}}\\ 706 - \end{ocamlindent}% 707 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 708 - \end{ocamlindent}% 709 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 612 + \label{Ocamlary--module-type-With8}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-With8]{\ocamlinlinecode{With8}}}\label{Ocamlary-module-type-With8}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With8--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With8-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \ocamltag{keyword}{struct} \ocamltag{keyword}{include} \hyperref[Ocamlary-With5]{\ocamlinlinecode{With5}} \ocamltag{keyword}{end} \ocamltag{keyword}{with} \ocamltag{keyword}{type} \hyperref[Ocamlary-With5-N--type-t]{\ocamlinlinecode{N.\allowbreak{}t}} = \hyperref[Ocamlary-With5-N--type-t]{\ocamlinlinecode{With5.\allowbreak{}N.\allowbreak{}t}}}\\ 710 613 \end{ocamlindent}% 711 614 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 712 - \label{Ocamlary--module-With9}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With9]{\ocamlinlinecode{With9}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With9--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With9-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With9-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 615 + \label{Ocamlary--module-With9}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With9]{\ocamlinlinecode{With9}}}\label{Ocamlary-With9}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With9--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With9-module-type-S]{\ocamlinlinecode{S}}}\label{Ocamlary-With9-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With9-module-type-S--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 713 616 \end{ocamlindent}% 714 617 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 715 618 \end{ocamlindent}% 716 619 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 717 - \label{Ocamlary--module-With10}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With10]{\ocamlinlinecode{With10}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With10--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With10-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With10-module-type-T--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With10-module-type-T-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With10-module-type-T-M--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 620 + \label{Ocamlary--module-With10}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With10]{\ocamlinlinecode{With10}}}\label{Ocamlary-With10}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With10--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-With10-module-type-T]{\ocamlinlinecode{T}}}\label{Ocamlary-With10-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With10-module-type-T--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-With10-module-type-T-M]{\ocamlinlinecode{M}}}\label{Ocamlary-With10-module-type-T-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-With10-module-type-T-M--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} S}\\ 718 621 \end{ocamlindent}% 719 622 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 720 623 \label{Ocamlary-With10-module-type-T--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} N : \hyperref[Ocamlary-With10-module-type-T-M--module-type-S]{\ocamlinlinecode{M.\allowbreak{}S}}}\\ ··· 723 626 \medbreak 724 627 \end{ocamlindent}% 725 628 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 726 - \label{Ocamlary--module-type-With11}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-With11]{\ocamlinlinecode{With11}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With11--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} M = \hyperref[Ocamlary-With9]{\ocamlinlinecode{With9}}}\\ 727 - \label{Ocamlary-module-type-With11--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With11-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With11-N--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int}\\ 728 - \end{ocamlindent}% 729 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 629 + \label{Ocamlary--module-type-With11}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-With11]{\ocamlinlinecode{With11}}}\label{Ocamlary-module-type-With11}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-With11--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} M = \hyperref[Ocamlary-With9]{\ocamlinlinecode{With9}}}\\ 630 + \label{Ocamlary-module-type-With11--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-module-type-With11-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \hyperref[Ocamlary-With9-module-type-S]{\ocamlinlinecode{M.\allowbreak{}S}} \ocamltag{keyword}{with} \ocamltag{keyword}{type} \hyperref[Ocamlary-With9-module-type-S--type-t]{\ocamlinlinecode{t}} = int}\\ 730 631 \end{ocamlindent}% 731 632 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 732 - \label{Ocamlary--module-type-NestedInclude1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-NestedInclude1]{\ocamlinlinecode{NestedInclude1}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-NestedInclude1--module-type-NestedInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-NestedInclude1-module-type-NestedInclude2]{\ocamlinlinecode{NestedInclude2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-NestedInclude1-module-type-NestedInclude2--type-nested_include}\ocamlcodefragment{\ocamltag{keyword}{type} nested\_\allowbreak{}include}\\ 633 + \label{Ocamlary--module-type-NestedInclude1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-NestedInclude1]{\ocamlinlinecode{NestedInclude1}}}\label{Ocamlary-module-type-NestedInclude1}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-NestedInclude1--module-type-NestedInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-NestedInclude1-module-type-NestedInclude2]{\ocamlinlinecode{NestedInclude2}}}\label{Ocamlary-module-type-NestedInclude1-module-type-NestedInclude2}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-NestedInclude1-module-type-NestedInclude2--type-nested_include}\ocamlcodefragment{\ocamltag{keyword}{type} nested\_\allowbreak{}include}\\ 733 634 \end{ocamlindent}% 734 635 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 735 636 \end{ocamlindent}% 736 637 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 737 - \ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-NestedInclude1]{\ocamlinlinecode{NestedInclude1}}\label{Ocamlary--module-type-NestedInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-NestedInclude2]{\ocamlinlinecode{NestedInclude2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-NestedInclude2--type-nested_include}\ocamlcodefragment{\ocamltag{keyword}{type} nested\_\allowbreak{}include}\\ 638 + \ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-NestedInclude1]{\ocamlinlinecode{NestedInclude1}}\label{Ocamlary--module-type-NestedInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-NestedInclude2]{\ocamlinlinecode{NestedInclude2}}}\label{Ocamlary-module-type-NestedInclude2}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-NestedInclude2--type-nested_include}\ocamlcodefragment{\ocamltag{keyword}{type} nested\_\allowbreak{}include}\\ 738 639 \end{ocamlindent}% 739 640 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 740 641 \ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-NestedInclude2]{\ocamlinlinecode{NestedInclude2}} \ocamltag{keyword}{with} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-NestedInclude2--type-nested_include]{\ocamlinlinecode{nested\_\allowbreak{}include}} = int\label{Ocamlary--type-nested_include}\ocamlcodefragment{\ocamltag{keyword}{type} nested\_\allowbreak{}include = int}\\ 741 - \label{Ocamlary--module-DoubleInclude1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude1]{\ocamlinlinecode{DoubleInclude1}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-DoubleInclude1--module-DoubleInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude1-DoubleInclude2]{\ocamlinlinecode{DoubleInclude2}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-DoubleInclude1-DoubleInclude2--type-double_include}\ocamlcodefragment{\ocamltag{keyword}{type} double\_\allowbreak{}include}\\ 642 + \label{Ocamlary--module-DoubleInclude1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude1]{\ocamlinlinecode{DoubleInclude1}}}\label{Ocamlary-DoubleInclude1}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-DoubleInclude1--module-DoubleInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude1-DoubleInclude2]{\ocamlinlinecode{DoubleInclude2}}}\label{Ocamlary-DoubleInclude1-DoubleInclude2}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-DoubleInclude1-DoubleInclude2--type-double_include}\ocamlcodefragment{\ocamltag{keyword}{type} double\_\allowbreak{}include}\\ 742 643 \end{ocamlindent}% 743 644 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 744 645 \end{ocamlindent}% 745 646 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 746 - \label{Ocamlary--module-DoubleInclude3}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude3]{\ocamlinlinecode{DoubleInclude3}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-DoubleInclude1]{\ocamlinlinecode{DoubleInclude1}}\label{Ocamlary-DoubleInclude3--module-DoubleInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude3-DoubleInclude2]{\ocamlinlinecode{DoubleInclude2}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-DoubleInclude3-DoubleInclude2--type-double_include}\ocamlcodefragment{\ocamltag{keyword}{type} double\_\allowbreak{}include}\\ 647 + \label{Ocamlary--module-DoubleInclude3}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude3]{\ocamlinlinecode{DoubleInclude3}}}\label{Ocamlary-DoubleInclude3}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-DoubleInclude1]{\ocamlinlinecode{DoubleInclude1}}\label{Ocamlary-DoubleInclude3--module-DoubleInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-DoubleInclude3-DoubleInclude2]{\ocamlinlinecode{DoubleInclude2}}}\label{Ocamlary-DoubleInclude3-DoubleInclude2}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-DoubleInclude3-DoubleInclude2--type-double_include}\ocamlcodefragment{\ocamltag{keyword}{type} double\_\allowbreak{}include}\\ 747 648 \end{ocamlindent}% 748 649 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 749 650 \end{ocamlindent}% 750 651 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 751 652 \ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-DoubleInclude3-DoubleInclude2]{\ocamlinlinecode{DoubleInclude3.\allowbreak{}DoubleInclude2}}\label{Ocamlary--type-double_include}\ocamlcodefragment{\ocamltag{keyword}{type} double\_\allowbreak{}include}\\ 752 - \label{Ocamlary--module-IncludeInclude1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludeInclude1]{\ocamlinlinecode{IncludeInclude1}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-IncludeInclude1--module-type-IncludeInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-IncludeInclude1-module-type-IncludeInclude2]{\ocamlinlinecode{IncludeInclude2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-IncludeInclude1-module-type-IncludeInclude2--type-include_include}\ocamlcodefragment{\ocamltag{keyword}{type} include\_\allowbreak{}include}\\ 653 + \label{Ocamlary--module-IncludeInclude1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludeInclude1]{\ocamlinlinecode{IncludeInclude1}}}\label{Ocamlary-IncludeInclude1}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-IncludeInclude1--module-type-IncludeInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-IncludeInclude1-module-type-IncludeInclude2]{\ocamlinlinecode{IncludeInclude2}}}\label{Ocamlary-IncludeInclude1-module-type-IncludeInclude2}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-IncludeInclude1-module-type-IncludeInclude2--type-include_include}\ocamlcodefragment{\ocamltag{keyword}{type} include\_\allowbreak{}include}\\ 753 654 \end{ocamlindent}% 754 655 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 755 - \label{Ocamlary-IncludeInclude1--module-IncludeInclude2_M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludeInclude1-IncludeInclude2_M]{\ocamlinlinecode{IncludeInclude2\_\allowbreak{}M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 656 + \label{Ocamlary-IncludeInclude1--module-IncludeInclude2_M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludeInclude1-IncludeInclude2_M]{\ocamlinlinecode{IncludeInclude2\_\allowbreak{}M}}}\label{Ocamlary-IncludeInclude1-IncludeInclude2_M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 756 657 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 757 658 \end{ocamlindent}% 758 659 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 759 - \ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-IncludeInclude1]{\ocamlinlinecode{IncludeInclude1}}\label{Ocamlary--module-type-IncludeInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-IncludeInclude2]{\ocamlinlinecode{IncludeInclude2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-IncludeInclude2--type-include_include}\ocamlcodefragment{\ocamltag{keyword}{type} include\_\allowbreak{}include}\\ 660 + \ocamltag{keyword}{include} \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-IncludeInclude1]{\ocamlinlinecode{IncludeInclude1}}\label{Ocamlary--module-type-IncludeInclude2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-IncludeInclude2]{\ocamlinlinecode{IncludeInclude2}}}\label{Ocamlary-module-type-IncludeInclude2}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-IncludeInclude2--type-include_include}\ocamlcodefragment{\ocamltag{keyword}{type} include\_\allowbreak{}include}\\ 760 661 \end{ocamlindent}% 761 662 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 762 - \label{Ocamlary--module-IncludeInclude2_M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludeInclude2_M]{\ocamlinlinecode{IncludeInclude2\_\allowbreak{}M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 663 + \label{Ocamlary--module-IncludeInclude2_M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-IncludeInclude2_M]{\ocamlinlinecode{IncludeInclude2\_\allowbreak{}M}}}\label{Ocamlary-IncludeInclude2_M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 763 664 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 764 665 \ocamltag{keyword}{include} \hyperref[Ocamlary-module-type-IncludeInclude2]{\ocamlinlinecode{IncludeInclude2}}\label{Ocamlary--type-include_include}\ocamlcodefragment{\ocamltag{keyword}{type} include\_\allowbreak{}include}\\ 765 666 \subsection{Trying the \{!modules: ...\} command.\label{Ocamlary--indexmodules}}% ··· 778 679 \item[{\hyperref[Ocamlary-IncludeInclude1-IncludeInclude2_M]{\ocamlinlinecode{\ocamlinlinecode{IncludeInclude1.\allowbreak{}IncludeInclude2\_\allowbreak{}M}}[p\pageref*{Ocamlary-IncludeInclude1-IncludeInclude2_M}]}}]{}% 779 680 \item[{\hyperref[Ocamlary-Dep4-X]{\ocamlinlinecode{\ocamlinlinecode{Dep4.\allowbreak{}X}}[p\pageref*{Ocamlary-Dep4-X}]}}]{}\end{description}% 780 681 \subsection{Playing with @canonical paths\label{Ocamlary--playing-with-@canonical-paths}}% 781 - \label{Ocamlary--module-CanonicalTest}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest]{\ocamlinlinecode{CanonicalTest}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CanonicalTest--module-Base}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base]{\ocamlinlinecode{Base}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CanonicalTest-Base--module-List}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base-List]{\ocamlinlinecode{List}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 682 + \label{Ocamlary--module-CanonicalTest}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest]{\ocamlinlinecode{CanonicalTest}}}\label{Ocamlary-CanonicalTest}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CanonicalTest--module-Base}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base]{\ocamlinlinecode{Base}}}\label{Ocamlary-CanonicalTest-Base}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CanonicalTest-Base--module-List}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base-List]{\ocamlinlinecode{List}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 782 683 \end{ocamlindent}% 783 684 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 784 - \label{Ocamlary-CanonicalTest--module-Base_Tests}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base_Tests]{\ocamlinlinecode{Base\_\allowbreak{}Tests}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CanonicalTest-Base_Tests--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base_Tests-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-CanonicalTest-Base-List]{\ocamlinlinecode{Base.\allowbreak{}List}}}\\ 685 + \label{Ocamlary-CanonicalTest--module-Base_Tests}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base_Tests]{\ocamlinlinecode{Base\_\allowbreak{}Tests}}}\label{Ocamlary-CanonicalTest-Base_Tests}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-CanonicalTest-Base_Tests--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-CanonicalTest-Base_Tests-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \ocamltag{keyword}{module} \ocamltag{keyword}{type} \ocamltag{keyword}{of} \hyperref[Ocamlary-CanonicalTest-Base-List]{\ocamlinlinecode{Base.\allowbreak{}List}}}\\ 785 686 \label{Ocamlary-CanonicalTest-Base_Tests--module-L}\ocamlcodefragment{\ocamltag{keyword}{module} L = \hyperref[Ocamlary-CanonicalTest-Base-List]{\ocamlinlinecode{Base.\allowbreak{}List}}}\\ 786 687 \label{Ocamlary-CanonicalTest-Base_Tests--val-foo}\ocamlcodefragment{\ocamltag{keyword}{val} foo : int \hyperref[Ocamlary-CanonicalTest-Base-List--type-t]{\ocamlinlinecode{L.\allowbreak{}t}} \ocamltag{arrow}{$\rightarrow$} float \hyperref[Ocamlary-CanonicalTest-Base-List--type-t]{\ocamlinlinecode{L.\allowbreak{}t}}}\\ 787 688 \label{Ocamlary-CanonicalTest-Base_Tests--val-bar}\ocamlcodefragment{\ocamltag{keyword}{val} bar : \ocamltag{type-var}{'a} \hyperref[Ocamlary-CanonicalTest-Base-List--type-t]{\ocamlinlinecode{Base.\allowbreak{}List.\allowbreak{}t}} \ocamltag{arrow}{$\rightarrow$} \ocamltag{type-var}{'a} \hyperref[Ocamlary-CanonicalTest-Base-List--type-t]{\ocamlinlinecode{Base.\allowbreak{}List.\allowbreak{}t}}}\\ ··· 794 695 Some ref to \hyperref[Ocamlary-CanonicalTest-Base_Tests-C--type-t]{\ocamlinlinecode{\ocamlinlinecode{CanonicalTest.\allowbreak{}Base\_\allowbreak{}Tests.\allowbreak{}C.\allowbreak{}t}}[p\pageref*{Ocamlary-CanonicalTest-Base_Tests-C--type-t}]} and \hyperref[Ocamlary-CanonicalTest-Base-List--val-id]{\ocamlinlinecode{\ocamlinlinecode{CanonicalTest.\allowbreak{}Base\_\allowbreak{}Tests.\allowbreak{}L.\allowbreak{}id}}[p\pageref*{Ocamlary-CanonicalTest-Base-List--val-id}]}. But also to \hyperref[Ocamlary-CanonicalTest-Base-List]{\ocamlinlinecode{\ocamlinlinecode{CanonicalTest.\allowbreak{}Base.\allowbreak{}List}}[p\pageref*{Ocamlary-CanonicalTest-Base-List}]} and \hyperref[Ocamlary-CanonicalTest-Base-List--type-t]{\ocamlinlinecode{\ocamlinlinecode{CanonicalTest.\allowbreak{}Base.\allowbreak{}List.\allowbreak{}t}}[p\pageref*{Ocamlary-CanonicalTest-Base-List--type-t}]} 795 696 796 697 \subsection{Aliases again\label{Ocamlary--aliases}}% 797 - \label{Ocamlary--module-Aliases}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases]{\ocamlinlinecode{Aliases}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases--module-Foo}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Foo]{\ocamlinlinecode{Foo}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-Foo--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Foo-A]{\ocamlinlinecode{A}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 698 + \label{Ocamlary--module-Aliases}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases]{\ocamlinlinecode{Aliases}}}\label{Ocamlary-Aliases}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases--module-Foo}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Foo]{\ocamlinlinecode{Foo}}}\label{Ocamlary-Aliases-Foo}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-Foo--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Foo-A]{\ocamlinlinecode{A}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 798 699 \label{Ocamlary-Aliases-Foo--module-B}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Foo-B]{\ocamlinlinecode{B}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 799 700 \label{Ocamlary-Aliases-Foo--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Foo-C]{\ocamlinlinecode{C}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 800 701 \label{Ocamlary-Aliases-Foo--module-D}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Foo-D]{\ocamlinlinecode{D}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ ··· 807 708 \label{Ocamlary-Aliases--type-tete}\ocamlcodefragment{\ocamltag{keyword}{type} tete}\\ 808 709 \label{Ocamlary-Aliases--type-tata'}\ocamlcodefragment{\ocamltag{keyword}{type} tata' = \hyperref[Ocamlary-Aliases-Foo-A--type-t]{\ocamlinlinecode{A'.\allowbreak{}t}}}\\ 809 710 \label{Ocamlary-Aliases--type-tete2}\ocamlcodefragment{\ocamltag{keyword}{type} tete2 = \hyperref[Ocamlary-Aliases-Foo-E--type-t]{\ocamlinlinecode{Foo.\allowbreak{}E.\allowbreak{}t}}}\\ 810 - \label{Ocamlary-Aliases--module-Std}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Std]{\ocamlinlinecode{Std}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-Std--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} A = \hyperref[Ocamlary-Aliases-Foo-A]{\ocamlinlinecode{Foo.\allowbreak{}A}}}\\ 711 + \label{Ocamlary-Aliases--module-Std}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-Std]{\ocamlinlinecode{Std}}}\label{Ocamlary-Aliases-Std}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-Std--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} A = \hyperref[Ocamlary-Aliases-Foo-A]{\ocamlinlinecode{Foo.\allowbreak{}A}}}\\ 811 712 \label{Ocamlary-Aliases-Std--module-B}\ocamlcodefragment{\ocamltag{keyword}{module} B = \hyperref[Ocamlary-Aliases-Foo-B]{\ocamlinlinecode{Foo.\allowbreak{}B}}}\\ 812 713 \label{Ocamlary-Aliases-Std--module-C}\ocamlcodefragment{\ocamltag{keyword}{module} C = \hyperref[Ocamlary-Aliases-Foo-C]{\ocamlinlinecode{Foo.\allowbreak{}C}}}\\ 813 714 \label{Ocamlary-Aliases-Std--module-D}\ocamlcodefragment{\ocamltag{keyword}{module} D = \hyperref[Ocamlary-Aliases-Foo-D]{\ocamlinlinecode{Foo.\allowbreak{}D}}}\\ ··· 826 727 \label{Ocamlary-Aliases--type-testa}\ocamlcodefragment{\ocamltag{keyword}{type} testa = \hyperref[Ocamlary-Aliases-Foo-A--type-t]{\ocamlinlinecode{A.\allowbreak{}t}}}\\ 827 728 And also, let's refer to \hyperref[Ocamlary-Aliases-Foo-A--type-t]{\ocamlinlinecode{\ocamlinlinecode{A.\allowbreak{}t}}[p\pageref*{Ocamlary-Aliases-Foo-A--type-t}]} and \hyperref[Ocamlary-Aliases-Foo-B--val-id]{\ocamlinlinecode{\ocamlinlinecode{Foo.\allowbreak{}B.\allowbreak{}id}}[p\pageref*{Ocamlary-Aliases-Foo-B--val-id}]} 828 729 829 - \label{Ocamlary-Aliases--module-P1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P1]{\ocamlinlinecode{P1}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-P1--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P1-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-P1-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 730 + \label{Ocamlary-Aliases--module-P1}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P1]{\ocamlinlinecode{P1}}}\label{Ocamlary-Aliases-P1}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-P1--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P1-Y]{\ocamlinlinecode{Y}}}\label{Ocamlary-Aliases-P1-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-P1-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 830 731 \label{Ocamlary-Aliases-P1-Y--val-id}\ocamlcodefragment{\ocamltag{keyword}{val} id : \hyperref[Ocamlary-Aliases-P1-Y--type-t]{\ocamlinlinecode{t}} \ocamltag{arrow}{$\rightarrow$} \hyperref[Ocamlary-Aliases-P1-Y--type-t]{\ocamlinlinecode{t}}}\\ 831 732 \end{ocamlindent}% 832 733 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 833 734 \end{ocamlindent}% 834 735 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 835 - \label{Ocamlary-Aliases--module-P2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P2]{\ocamlinlinecode{P2}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-P2--module-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P2-Z]{\ocamlinlinecode{Z}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 736 + \label{Ocamlary-Aliases--module-P2}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P2]{\ocamlinlinecode{P2}}}\label{Ocamlary-Aliases-P2}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Aliases-P2--module-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Aliases-P2-Z]{\ocamlinlinecode{Z}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 836 737 \end{ocamlindent}% 837 738 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 838 739 \label{Ocamlary-Aliases--module-X1}\ocamlcodefragment{\ocamltag{keyword}{module} X1 = \hyperref[Ocamlary-Aliases-P2-Z]{\ocamlinlinecode{P2.\allowbreak{}Z}}}\\ ··· 858 759 \item{\ocamlinlinecode{\{\{!section:SuperSig.\allowbreak{}SubSigA.\allowbreak{}subSig\}C\}} : \hyperref[Ocamlary-module-type-SuperSig-module-type-SubSigA--subSig]{\ocamlinlinecode{C}[p\pageref*{Ocamlary-module-type-SuperSig-module-type-SubSigA--subSig}]}}% 859 760 \item{\ocamlinlinecode{\{\{!Aliases.\allowbreak{}incl\}D\}} : \hyperref[Ocamlary-Aliases--incl]{\ocamlinlinecode{D}[p\pageref*{Ocamlary-Aliases--incl}]}}\end{itemize}% 860 761 \subsection{New reference syntax\label{Ocamlary--new-reference-syntax}}% 861 - \label{Ocamlary--module-type-M}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-M--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 762 + \label{Ocamlary--module-type-M}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-M]{\ocamlinlinecode{M}}}\label{Ocamlary-module-type-M}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-M--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 862 763 \end{ocamlindent}% 863 764 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 864 - \label{Ocamlary--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-M--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 765 + \label{Ocamlary--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-M]{\ocamlinlinecode{M}}}\label{Ocamlary-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-M--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 865 766 \end{ocamlindent}% 866 767 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 867 768 Here goes: 868 769 869 770 \begin{itemize}\item{\ocamlinlinecode{\{!module-M.\allowbreak{}t\}} : \hyperref[Ocamlary-M--type-t]{\ocamlinlinecode{\ocamlinlinecode{M.\allowbreak{}t}}[p\pageref*{Ocamlary-M--type-t}]}}% 870 771 \item{\ocamlinlinecode{\{!module-type-M.\allowbreak{}t\}} : \hyperref[Ocamlary-module-type-M--type-t]{\ocamlinlinecode{\ocamlinlinecode{M.\allowbreak{}t}}[p\pageref*{Ocamlary-module-type-M--type-t}]}}\end{itemize}% 871 - \label{Ocamlary--module-Only_a_module}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Only_a_module]{\ocamlinlinecode{Only\_\allowbreak{}a\_\allowbreak{}module}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Only_a_module--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 772 + \label{Ocamlary--module-Only_a_module}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Only_a_module]{\ocamlinlinecode{Only\_\allowbreak{}a\_\allowbreak{}module}}}\label{Ocamlary-Only_a_module}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Only_a_module--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 872 773 \end{ocamlindent}% 873 774 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 874 775 \begin{itemize}\item{\ocamlinlinecode{\{!Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}t\}} : \hyperref[Ocamlary-Only_a_module--type-t]{\ocamlinlinecode{\ocamlinlinecode{Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}t}}[p\pageref*{Ocamlary-Only_a_module--type-t}]}}% 875 776 \item{\ocamlinlinecode{\{!module-Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}t\}} : \hyperref[Ocamlary-Only_a_module--type-t]{\ocamlinlinecode{\ocamlinlinecode{Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}t}}[p\pageref*{Ocamlary-Only_a_module--type-t}]}}% 876 777 \item{\ocamlinlinecode{\{!module-Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}type-t\}} : \hyperref[Ocamlary-Only_a_module--type-t]{\ocamlinlinecode{\ocamlinlinecode{Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}t}}[p\pageref*{Ocamlary-Only_a_module--type-t}]}}% 877 778 \item{\ocamlinlinecode{\{!type:Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}t\}} : \hyperref[Ocamlary-Only_a_module--type-t]{\ocamlinlinecode{\ocamlinlinecode{Only\_\allowbreak{}a\_\allowbreak{}module.\allowbreak{}t}}[p\pageref*{Ocamlary-Only_a_module--type-t}]}}\end{itemize}% 878 - \label{Ocamlary--module-type-TypeExt}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-TypeExt]{\ocamlinlinecode{TypeExt}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-TypeExt--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = .\allowbreak{}.\allowbreak{}}\\ 779 + \label{Ocamlary--module-type-TypeExt}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-TypeExt]{\ocamlinlinecode{TypeExt}}}\label{Ocamlary-module-type-TypeExt}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-TypeExt--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = .\allowbreak{}.\allowbreak{}}\\ 879 780 \label{Ocamlary-module-type-TypeExt--extension-decl-C}\ocamlcodefragment{\ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-TypeExt--type-t]{\ocamlinlinecode{t}} += }\\ 880 781 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{extension}{C}}\label{Ocamlary-module-type-TypeExt--extension-C}\\ 881 782 \end{ocamltabular}% ··· 888 789 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{extension}{C}}\label{Ocamlary--extension-C}\\ 889 790 \end{ocamltabular}% 890 791 \\ 891 - \label{Ocamlary--module-type-TypeExtPruned}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-TypeExtPruned]{\ocamlinlinecode{TypeExtPruned}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-TypeExtPruned--extension-decl-C}\ocamlcodefragment{\ocamltag{keyword}{type} \hyperref[Ocamlary--type-new_t]{\ocamlinlinecode{new\_\allowbreak{}t}} += }\\ 792 + \label{Ocamlary--module-type-TypeExtPruned}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocamlary-module-type-TypeExtPruned]{\ocamlinlinecode{TypeExtPruned}}}\label{Ocamlary-module-type-TypeExtPruned}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-module-type-TypeExtPruned--extension-decl-C}\ocamlcodefragment{\ocamltag{keyword}{type} \hyperref[Ocamlary--type-new_t]{\ocamlinlinecode{new\_\allowbreak{}t}} += }\\ 892 793 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{extension}{C}}\label{Ocamlary-module-type-TypeExtPruned--extension-C}\\ 893 794 \end{ocamltabular}% 894 795 \\ 895 796 \label{Ocamlary-module-type-TypeExtPruned--val-f}\ocamlcodefragment{\ocamltag{keyword}{val} f : \hyperref[Ocamlary--type-new_t]{\ocamlinlinecode{new\_\allowbreak{}t}} \ocamltag{arrow}{$\rightarrow$} unit}\\ 896 797 \end{ocamlindent}% 897 798 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 898 - \label{Ocamlary--module-Op}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Op]{\ocamlinlinecode{Op}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Op--val-(let*)}\ocamlcodefragment{\ocamltag{keyword}{val} (let*) : int}\\ 799 + \label{Ocamlary--module-Op}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Ocamlary-Op]{\ocamlinlinecode{Op}}}\label{Ocamlary-Op}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocamlary-Op--val-(let*)}\ocamlcodefragment{\ocamltag{keyword}{val} (let*) : int}\\ 899 800 \label{Ocamlary-Op--val-(and*)}\ocamlcodefragment{\ocamltag{keyword}{val} (and*) : int}\\ 900 801 \label{Ocamlary-Op--val-(.+p++ob++cb+)}\ocamlcodefragment{\ocamltag{keyword}{val} (.\allowbreak{}\%\{\}) : int}\\ 901 802 \label{Ocamlary-Op--val-(.+p++ob++cb+<-)}\ocamlcodefragment{\ocamltag{keyword}{val} (.\allowbreak{}\%\{\}<-) : int}\\
+6 -6
test/generators/latex/Recent.tex
··· 1 1 \section{Module \ocamlinlinecode{Recent}}\label{Recent}% 2 - \label{Recent--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 2 + \label{Recent--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent-module-type-S]{\ocamlinlinecode{S}}}\label{Recent-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 3 3 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 4 - \label{Recent--module-type-S1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent-module-type-S1]{\ocamlinlinecode{S1}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Recent-module-type-S1--parameters}}% 5 - \label{Recent-module-type-S1--argument-1-_}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-module-type-S1-argument-1-_]{\ocamlinlinecode{\_\allowbreak{}}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 4 + \label{Recent--module-type-S1}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent-module-type-S1]{\ocamlinlinecode{S1}}}\label{Recent-module-type-S1}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Recent-module-type-S1--parameters}}% 5 + \label{Recent-module-type-S1--argument-1-_}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-module-type-S1-argument-1-_]{\ocamlinlinecode{\_\allowbreak{}}}}\label{Recent-module-type-S1-argument-1-_}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 6 6 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 7 7 \subsubsection{Signature\label{Recent-module-type-S1--signature}}% 8 8 \end{ocamlindent}% ··· 53 53 \\ 54 54 \label{Recent--val-empty_conj}\ocamlcodefragment{\ocamltag{keyword}{val} empty\_\allowbreak{}conj : [< `X of \& \ocamltag{type-var}{'a} \& int * float ]}\\ 55 55 \label{Recent--val-conj}\ocamlcodefragment{\ocamltag{keyword}{val} conj : [< `X of int \& [< `B of int \& float ] ]}\\ 56 - \label{Recent--module-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-Z]{\ocamlinlinecode{Z}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-Z--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-Z-Y]{\ocamlinlinecode{Y}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-Z-Y--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-Z-Y-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-Z-Y-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} 'a t}\\ 56 + \label{Recent--module-Z}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-Z]{\ocamlinlinecode{Z}}}\label{Recent-Z}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-Z--module-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-Z-Y]{\ocamlinlinecode{Y}}}\label{Recent-Z-Y}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-Z-Y--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-Z-Y-X]{\ocamlinlinecode{X}}}\label{Recent-Z-Y-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-Z-Y-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} 'a t}\\ 57 57 \end{ocamlindent}% 58 58 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 59 59 \end{ocamlindent}% 60 60 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 61 61 \end{ocamlindent}% 62 62 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 63 - \label{Recent--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-X--module-L}\ocamlcodefragment{\ocamltag{keyword}{module} L := \hyperref[Recent-Z-Y]{\ocamlinlinecode{Z.\allowbreak{}Y}}}\\ 63 + \label{Recent--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent-X]{\ocamlinlinecode{X}}}\label{Recent-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-X--module-L}\ocamlcodefragment{\ocamltag{keyword}{module} L := \hyperref[Recent-Z-Y]{\ocamlinlinecode{Z.\allowbreak{}Y}}}\\ 64 64 \label{Recent-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = int \hyperref[Recent-Z-Y-X--type-t]{\ocamlinlinecode{L.\allowbreak{}X.\allowbreak{}t}}}\\ 65 65 \label{Recent-X--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u := int}\\ 66 66 \label{Recent-X--type-v}\ocamlcodefragment{\ocamltag{keyword}{type} v = \hyperref[Recent-X--type-u]{\ocamlinlinecode{u}} \hyperref[Recent-Z-Y-X--type-t]{\ocamlinlinecode{L.\allowbreak{}X.\allowbreak{}t}}}\\ 67 67 \end{ocamlindent}% 68 68 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 69 - \label{Recent--module-type-PolyS}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent-module-type-PolyS]{\ocamlinlinecode{PolyS}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-module-type-PolyS--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = [ }\\ 69 + \label{Recent--module-type-PolyS}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent-module-type-PolyS]{\ocamlinlinecode{PolyS}}}\label{Recent-module-type-PolyS}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent-module-type-PolyS--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = [ }\\ 70 70 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| `A}\label{Recent-module-type-PolyS--type-t.A}\\ 71 71 \ocamlcodefragment{| `B}\label{Recent-module-type-PolyS--type-t.B}\\ 72 72 \end{ocamltabular}%
+4 -10
test/generators/latex/Recent_impl.tex
··· 1 1 \section{Module \ocamlinlinecode{Recent\_\allowbreak{}impl}}\label{Recent_impl}% 2 - \label{Recent_impl--module-Foo}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-Foo]{\ocamlinlinecode{Foo}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-Foo--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-Foo-A]{\ocamlinlinecode{A}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-Foo-A--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 2 + \label{Recent_impl--module-Foo}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-Foo]{\ocamlinlinecode{Foo}}}\label{Recent_impl-Foo}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-Foo--module-A}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-Foo-A]{\ocamlinlinecode{A}}}\label{Recent_impl-Foo-A}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-Foo-A--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 3 3 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{constructor}{A}}\label{Recent_impl-Foo-A--type-t.A}\\ 4 4 \end{ocamltabular}% 5 5 \\ 6 6 \end{ocamlindent}% 7 7 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 8 - \label{Recent_impl-Foo--module-B}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-Foo-B]{\ocamlinlinecode{B}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-Foo-B--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 8 + \label{Recent_impl-Foo--module-B}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-Foo-B]{\ocamlinlinecode{B}}}\label{Recent_impl-Foo-B}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-Foo-B--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\ 9 9 \begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{constructor}{B}}\label{Recent_impl-Foo-B--type-t.B}\\ 10 10 \end{ocamltabular}% 11 11 \\ ··· 15 15 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 16 16 \label{Recent_impl--module-B}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-B]{\ocamlinlinecode{B}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 17 17 \label{Recent_impl--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 18 - \label{Recent_impl--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent_impl-module-type-S]{\ocamlinlinecode{S}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-module-type-S--module-F}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-module-type-S-F]{\ocamlinlinecode{F}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\subsubsection{Parameters\label{Recent_impl-module-type-S-F--parameters}}% 19 - \label{Recent_impl-module-type-S-F--argument-1-_}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-module-type-S-F-argument-1-_]{\ocamlinlinecode{\_\allowbreak{}}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 20 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 21 - \subsubsection{Signature\label{Recent_impl-module-type-S-F--signature}}% 22 - \label{Recent_impl-module-type-S-F--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 23 - \end{ocamlindent}% 24 - \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 25 - \label{Recent_impl-module-type-S--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-module-type-S-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 18 + \label{Recent_impl--module-type-S}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Recent_impl-module-type-S]{\ocamlinlinecode{S}}}\label{Recent_impl-module-type-S}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Recent_impl-module-type-S--module-F}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-module-type-S-F]{\ocamlinlinecode{F}}}\ocamlcodefragment{ (\hyperref[Recent_impl-module-type-S-F-argument-1-_]{\ocamlinlinecode{\_\allowbreak{}}} : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}) : \ocamltag{keyword}{sig} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\\ 19 + \label{Recent_impl-module-type-S--module-X}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Recent_impl-module-type-S-X]{\ocamlinlinecode{X}}}\label{Recent_impl-module-type-S-X}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 26 20 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 27 21 \label{Recent_impl-module-type-S--val-f}\ocamlcodefragment{\ocamltag{keyword}{val} f : \hyperref[Recent_impl-module-type-S-F--type-t]{\ocamlinlinecode{F(X).\allowbreak{}t}}}\\ 28 22 \end{ocamlindent}%
+3 -3
test/generators/latex/Stop.tex
··· 9 9 10 10 Now, we have a nested module, and it has a stop comment between its two items. We want to see that the first item is displayed, but the second is missing, and the stop comment disables documenation only in that module, and not in this outer module. 11 11 12 - \label{Stop--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Stop-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Stop-N--val-quux}\ocamlcodefragment{\ocamltag{keyword}{val} quux : int}\\ 12 + \label{Stop--module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Stop-N]{\ocamlinlinecode{N}}}\label{Stop-N}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Stop-N--val-quux}\ocamlcodefragment{\ocamltag{keyword}{val} quux : int}\\ 13 13 \end{ocamlindent}% 14 14 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 15 15 \label{Stop--val-lol}\ocamlcodefragment{\ocamltag{keyword}{val} lol : int}\\ 16 16 The first comment can also be a stop-comment. The test case \ocamlinlinecode{stop\_\allowbreak{}first\_\allowbreak{}comment.\allowbreak{}mli} is testing the same thing but at the toplevel. We should see \ocamlinlinecode{bar} inside \hyperref[Stop-O]{\ocamlinlinecode{\ocamlinlinecode{O}}[p\pageref*{Stop-O}]}. 17 17 18 - \label{Stop--module-O}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Stop-O]{\ocamlinlinecode{O}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Stop-O--val-bar}\ocamlcodefragment{\ocamltag{keyword}{val} bar : int}\\ 18 + \label{Stop--module-O}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Stop-O]{\ocamlinlinecode{O}}}\label{Stop-O}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Stop-O--val-bar}\ocamlcodefragment{\ocamltag{keyword}{val} bar : int}\\ 19 19 \end{ocamlindent}% 20 20 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 21 21 The top-comment computation must not mess with stop comments. 22 22 23 - \label{Stop--module-P}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Stop-P]{\ocamlinlinecode{P}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Stop-P--val-bar}\ocamlcodefragment{\ocamltag{keyword}{val} bar : int}\\ 23 + \label{Stop--module-P}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Stop-P]{\ocamlinlinecode{P}}}\label{Stop-P}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Stop-P--val-bar}\ocamlcodefragment{\ocamltag{keyword}{val} bar : int}\\ 24 24 \end{ocamlindent}% 25 25 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc.\end{ocamlindent}% 26 26 \medbreak
+11 -11
test/generators/latex/Toplevel_comments.tex
··· 1 1 \section{Module \ocamlinlinecode{Toplevel\_\allowbreak{}comments}}\label{Toplevel_comments}% 2 2 A doc comment at the beginning of a module is considered to be that module's doc. 3 3 4 - \label{Toplevel_comments--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 4 + \label{Toplevel_comments--module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}}\label{Toplevel_comments-module-type-T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-module-type-T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 5 5 \end{ocamlindent}% 6 6 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{T}, part 1.\end{ocamlindent}% 7 7 \medbreak 8 - \label{Toplevel_comments--module-Include_inline}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Include_inline]{\ocamlinlinecode{Include\_\allowbreak{}inline}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-Include_inline--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 8 + \label{Toplevel_comments--module-Include_inline}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Include_inline]{\ocamlinlinecode{Include\_\allowbreak{}inline}}}\label{Toplevel_comments-Include_inline}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-Include_inline--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 9 9 \end{ocamlindent}% 10 10 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{T}, part 2.\end{ocamlindent}% 11 11 \medbreak 12 - \label{Toplevel_comments--module-Include_inline'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Include_inline']{\ocamlinlinecode{Include\_\allowbreak{}inline'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}part 3\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-Include_inline'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 12 + \label{Toplevel_comments--module-Include_inline'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Include_inline']{\ocamlinlinecode{Include\_\allowbreak{}inline'}}}\label{Toplevel_comments-Include_inline'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}part 3\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-Include_inline'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 13 13 \end{ocamlindent}% 14 14 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{Include\_\allowbreak{}inline}, part 1.\end{ocamlindent}% 15 15 \medbreak 16 - \label{Toplevel_comments--module-type-Include_inline_T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-module-type-Include_inline_T]{\ocamlinlinecode{Include\_\allowbreak{}inline\_\allowbreak{}T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-module-type-Include_inline_T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 16 + \label{Toplevel_comments--module-type-Include_inline_T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-module-type-Include_inline_T]{\ocamlinlinecode{Include\_\allowbreak{}inline\_\allowbreak{}T}}}\label{Toplevel_comments-module-type-Include_inline_T}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-module-type-Include_inline_T--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 17 17 \end{ocamlindent}% 18 18 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{T}, part 2.\end{ocamlindent}% 19 19 \medbreak 20 - \label{Toplevel_comments--module-type-Include_inline_T'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-module-type-Include_inline_T']{\ocamlinlinecode{Include\_\allowbreak{}inline\_\allowbreak{}T'}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}part 3\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-module-type-Include_inline_T'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 20 + \label{Toplevel_comments--module-type-Include_inline_T'}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-module-type-Include_inline_T']{\ocamlinlinecode{Include\_\allowbreak{}inline\_\allowbreak{}T'}}}\label{Toplevel_comments-module-type-Include_inline_T'}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}part 3\ocamltag{keyword}{include} \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}\label{Toplevel_comments-module-type-Include_inline_T'--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 21 21 \end{ocamlindent}% 22 22 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{Include\_\allowbreak{}inline\_\allowbreak{}T'}, part 1.\end{ocamlindent}% 23 23 \medbreak 24 - \label{Toplevel_comments--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 24 + \label{Toplevel_comments--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-M]{\ocamlinlinecode{M}}}\label{Toplevel_comments-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 25 25 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{M}\end{ocamlindent}% 26 26 \medbreak 27 - \label{Toplevel_comments--module-M'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-M']{\ocamlinlinecode{M'}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 27 + \label{Toplevel_comments--module-M'}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-M']{\ocamlinlinecode{M'}}}\label{Toplevel_comments-M'}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 28 28 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{M'} from outside\end{ocamlindent}% 29 29 \medbreak 30 - \label{Toplevel_comments--module-M''}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-M'']{\ocamlinlinecode{M''}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 30 + \label{Toplevel_comments--module-M''}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-M'']{\ocamlinlinecode{M''}}}\label{Toplevel_comments-M''}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}% 31 31 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{M''}, part 1.\end{ocamlindent}% 32 32 \medbreak 33 33 \label{Toplevel_comments--module-Alias}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Alias]{\ocamlinlinecode{Alias}}}\ocamlcodefragment{ : \hyperref[Toplevel_comments-module-type-T]{\ocamlinlinecode{T}}}\begin{ocamlindent}Doc of \ocamlinlinecode{Alias}.\end{ocamlindent}% 34 34 \medbreak 35 35 \label{Toplevel_comments--class-c1}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Toplevel_comments-class-c1]{\ocamlinlinecode{c1}}}\ocamlcodefragment{ : int \ocamltag{arrow}{$\rightarrow$} \ocamltag{keyword}{object} .\allowbreak{}.\allowbreak{}.\allowbreak{} \ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{c1}, part 1.\end{ocamlindent}% 36 36 \medbreak 37 - \label{Toplevel_comments--class-type-ct}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-class-type-ct]{\ocamlinlinecode{ct}}}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 37 + \label{Toplevel_comments--class-type-ct}\ocamlcodefragment{\ocamltag{keyword}{class} \ocamltag{keyword}{type} \hyperref[Toplevel_comments-class-type-ct]{\ocamlinlinecode{ct}}}\label{Toplevel_comments-class-type-ct}\ocamlcodefragment{ = \ocamltag{keyword}{object}}\begin{ocamlindent}\end{ocamlindent}% 38 38 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}Doc of \ocamlinlinecode{ct}, part 1.\end{ocamlindent}% 39 39 \medbreak 40 40 \label{Toplevel_comments--class-c2}\ocamlcodefragment{\ocamltag{keyword}{class} \hyperref[Toplevel_comments-class-c2]{\ocamlinlinecode{c2}}}\ocamlcodefragment{ : \hyperref[Toplevel_comments-class-type-ct]{\ocamlinlinecode{ct}}}\begin{ocamlindent}Doc of \ocamlinlinecode{c2}.\end{ocamlindent}% 41 41 \medbreak 42 - \label{Toplevel_comments--module-Ref_in_synopsis}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Ref_in_synopsis]{\ocamlinlinecode{Ref\_\allowbreak{}in\_\allowbreak{}synopsis}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-Ref_in_synopsis--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 42 + \label{Toplevel_comments--module-Ref_in_synopsis}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Ref_in_synopsis]{\ocamlinlinecode{Ref\_\allowbreak{}in\_\allowbreak{}synopsis}}}\label{Toplevel_comments-Ref_in_synopsis}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-Ref_in_synopsis--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 43 43 \end{ocamlindent}% 44 44 \ocamlcodefragment{\ocamltag{keyword}{end}}\begin{ocamlindent}\hyperref[Toplevel_comments-Ref_in_synopsis--type-t]{\ocamlinlinecode{\ocamlinlinecode{t}}[p\pageref*{Toplevel_comments-Ref_in_synopsis--type-t}]}.\end{ocamlindent}% 45 45 \medbreak 46 - \label{Toplevel_comments--module-Comments_on_open}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Comments_on_open]{\ocamlinlinecode{Comments\_\allowbreak{}on\_\allowbreak{}open}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-Comments_on_open--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Comments_on_open-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-Comments_on_open-M--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 46 + \label{Toplevel_comments--module-Comments_on_open}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Comments_on_open]{\ocamlinlinecode{Comments\_\allowbreak{}on\_\allowbreak{}open}}}\label{Toplevel_comments-Comments_on_open}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-Comments_on_open--module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[Toplevel_comments-Comments_on_open-M]{\ocamlinlinecode{M}}}\label{Toplevel_comments-Comments_on_open-M}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Toplevel_comments-Comments_on_open-M--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 47 47 \end{ocamlindent}% 48 48 \ocamlcodefragment{\ocamltag{keyword}{end}}\\ 49 49 \subsubsection{Section\label{Toplevel_comments-Comments_on_open--sec}}%
+1 -1
test/generators/latex/Type.tex
··· 92 92 \\ 93 93 \ocamlcodefragment{ ]}\\ 94 94 \label{Type--type-object_}\ocamlcodefragment{\ocamltag{keyword}{type} object\_\allowbreak{} = < a : int ;\allowbreak{} b : int ;\allowbreak{} c : int >}\\ 95 - \label{Type--module-type-X}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Type-module-type-X]{\ocamlinlinecode{X}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Type-module-type-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 95 + \label{Type--module-type-X}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Type-module-type-X]{\ocamlinlinecode{X}}}\label{Type-module-type-X}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Type-module-type-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\ 96 96 \label{Type-module-type-X--type-u}\ocamlcodefragment{\ocamltag{keyword}{type} u}\\ 97 97 \end{ocamlindent}% 98 98 \ocamlcodefragment{\ocamltag{keyword}{end}}\\
+1
test/xref2/github_issue_857.t/run.t
··· 12 12 $ cat latex/A.tex | sed 's/\\/\n\\/g' | grep label 13 13 \label{A}% 14 14 \label{A--module-type-A} 15 + \label{A-module-type-A} 15 16 \label{A-module-type-A--first}}% 16 17 \label{A--first_2}}% 17 18