File: run.t

package info (click to toggle)
ocaml-odoc 3.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,008 kB
  • sloc: ml: 60,567; javascript: 2,572; sh: 566; makefile: 31
file content (63 lines) | stat: -rw-r--r-- 2,137 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
3 module shadowing! modules A and B are identical and contain shadowed modules. 
Module `C` then includes them both, causing further shadowing.

  $ ocamlc -c -bin-annot a.mli
  $ ocamlc -c -bin-annot b.mli
  $ ocamlc -c -bin-annot c.mli
  $ ocamlc -i c.mli
  module type B = B.B
  module A : sig type t = B.A.t type b = B.A.b end

  $ odoc compile a.cmti --unique-id AAAA
  $ odoc compile b.cmti --unique-id BBBB
  $ odoc compile -I . c.cmti --unique-id CCCC
 
  $ odoc_print --short --show-include-expansions c.odoc 
  include module type of struct include A end
    (sig :
      module type {B}1/shadowed/(CCCC) = A.B
      include {B}1/shadowed/(CCCC)
        (sig : module {A}1/shadowed/(AAAA) = A.A end)
      module type B1 := 
        sig
          module A : 
            sig
              include module type of struct include {A}1/shadowed/(AAAA) end
                (sig :
                  include module type of struct include A.{A}1/shadowed/(AAAA) end
                    (sig : type t = {A}1/shadowed/(AAAA).t end)
                  type a = A.A.a
                 end)
              type a
            end
        end
      include B1 (sig : module {A}2/shadowed/(CCCC) = A.A end)
     end)
  include module type of struct include B end
    (sig :
      module type B = B.B
      include B (sig : module {A}1/shadowed/(BBBB) = B.A end)
      module type B1 := 
        sig
          module A : 
            sig
              include module type of struct include {A}1/shadowed/(BBBB) end
                (sig :
                  include module type of struct include B.{A}1/shadowed/(BBBB) end
                    (sig : type t = {A}1/shadowed/(BBBB).t end)
                  type b = B.A.b
                 end)
              type b
            end
        end
      include B1 (sig : module {A}3/shadowed/(CCCC) = B.A end)
     end)
  module A : 
    sig
      include module type of struct include {A}3/shadowed/(CCCC) end
        (sig :
          include module type of struct include B.{A}1/shadowed/(BBBB) end
            (sig : type t = {A}3/shadowed/(CCCC).t end)
          type b = B.A.b
         end)
    end