Module Ocamlary

module Empty : sig ... end
module type Empty = sig ... end
module type MissingComment = sig ... end
module EmptyAlias = Empty
module type EmptySig = sig ... end
module type EmptySigAlias = EmptySig
module One : sig ... end
module type SigForMod = sig ... end
module type SuperSig = sig ... end
module Buffer : sig ... end
exception Kaboom of unit
exception Kablam of unit * unit
exception Kapow of unit * unit
exception EmptySig
exception EmptySigAlias
type (!'a, !'b) a_function = 'a -> 'b
val a_function : x:int -> int
val fun_fun_fun : ((int, int) a_function, (unit, unit) a_function) a_function
val fun_maybe : ?yes:unit -> unit -> int
val not_found : unit -> unit
val kaboom : unit -> unit
val ocaml_org : string
val some_file : string
val some_doc : string
val since_mesozoic : unit
val changing : unit
val (~-) : unit
val (!) : unit
val (@) : unit
val ($) : unit
val (%) : unit
val (&) : unit
val (*) : unit
val (-) : unit
val (+) : unit
val (-?) : unit
val (/) : unit
val (:=) : unit
val (=) : unit
val (land) : unit
module CollectionModule : sig ... end
module type COLLECTION = sig ... end
module Recollection (C : COLLECTION) : sig ... end
module type MMM = sig ... end
module type RECOLLECTION = sig ... end
module type RecollectionModule = sig ... end
module type A = sig ... end
module type B = sig ... end
module type C = sig ... end
module FunctorTypeOf (Collection : sig ... end) : sig ... end
module type IncludeModuleType = sig ... end
module type ToInclude = sig ... end
module IncludedA : sig ... end
module type IncludedB = sig ... end
type record = {
  1. field1 : int;
  2. field2 : int;
}
type mutable_record = {
  1. mutable a : int;
  2. b : unit;
  3. mutable c : int;
}
type universe_record = {
  1. nihilate : 'a. 'a -> unit;
}
type variant =
  1. | TagA
  2. | ConstrB of int
  3. | ConstrC of int * int
  4. | ConstrD of int * int
type poly_variant = [
  1. | `ConstrB of int
  2. | `TagA
]
type (!_, !_) full_gadt =
  1. | Tag : (unit, unit) full_gadt
  2. | First : 'a -> ('a, unit) full_gadt
  3. | Second : 'a0 -> (unit, 'a0) full_gadt
  4. | Exist : 'a1 * 'b -> ('b, unit) full_gadt
type !'a0 partial_gadt =
  1. | AscribeTag : 'a partial_gadt
  2. | OfTag of 'a0 partial_gadt
  3. | ExistGadtTag : ('a1 -> 'b) -> 'a1 partial_gadt
type alias = variant
type tuple = (alias * alias) * alias * (alias * alias)
type variant_alias = variant =
  1. | TagA
  2. | ConstrB of int
  3. | ConstrC of int * int
  4. | ConstrD of int * int
type record_alias = record = {
  1. field1 : int;
  2. field2 : int;
}
type poly_variant_union = [
  1. | `ConstrB of int
  2. | `TagA
  3. | `TagC
]
type !'a poly_poly_variant = [
  1. | `TagA of 'a
]
type (!'a, !'b) bin_poly_poly_variant = [
  1. | `ConstrB of 'b
  2. | `TagA of 'a
]
type !'b open_poly_variant = 'b constraint 'b = [> `TagA ]
type !'b open_poly_variant2 = 'b constraint 'b = [> `ConstrB of int ]
type !'a open_poly_variant_alias = 'a open_poly_variant open_poly_variant2 constraint 'a = [> `ConstrB of int | `TagA ]
type !'b poly_fun = 'b -> 'b constraint 'b = [> `ConstrB of int ]
type !'a poly_fun_constraint = 'a -> 'a constraint 'a = [> `TagA ]
type !'b closed_poly_variant = 'b constraint 'b = [< `One | `Two ]
type !'b clopen_poly_variant = 'b constraint 'b = [< `One | `Three | `Two of int Three Two ]
type nested_poly_variant = [
  1. | `A
  2. | `B of [ `B1 | `B2 ]
  3. | `C
  4. | `D of [ `D1 of [ `D1a ] ]
]
type (!'a, !'b) full_gadt_alias = ('a, 'b) full_gadt =
  1. | Tag : (unit, unit) full_gadt_alias
  2. | First : 'a0 -> ('a0, unit) full_gadt_alias
  3. | Second : 'a1 -> (unit, 'a1) full_gadt_alias
  4. | Exist : 'a2 * 'b0 -> ('b0, unit) full_gadt_alias
type !'a partial_gadt_alias = 'a partial_gadt =
  1. | AscribeTag : 'a0 partial_gadt_alias
  2. | OfTag of 'a partial_gadt_alias
  3. | ExistGadtTag : ('a1 -> 'b) -> 'a1 partial_gadt_alias
exception Exn_arrow : unit -> exn
type mutual_constr_a =
  1. | A
  2. | B_ish of mutual_constr_b
and mutual_constr_b =
  1. | B
  2. | A_ish of mutual_constr_a
type rec_obj = < f : int ; g : unit -> unit ; h : rec_obj >
type !'b open_obj = 'b constraint 'b = < f : int ; g : unit -> unit.. >
type !'b oof = 'b -> 'b constraint 'b = < a : unit.. >
type !'b any_obj = 'b constraint 'b = < .. >
type empty_obj = < >
type one_meth = < meth : unit >
type ext = ..
type ext +=
  1. | ExtA
type ext +=
  1. | ExtB
type ext +=
  1. | ExtC of unit
  2. | ExtD of ext
type ext +=
  1. | ExtE
type ext += private
  1. | ExtF
type !'a poly_ext = ..
type poly_ext +=
  1. | Foo of 'b
  2. | Bar of 'b * 'b
type poly_ext +=
  1. | Quux of 'c
module ExtMod : sig ... end
type ExtMod.t +=
  1. | ZzzTop0
type ExtMod.t +=
  1. | ZzzTop of unit
val launch_missiles : unit -> unit
type my_mod = (module COLLECTION)
class empty_class : object ... end
class one_method_class : object ... end
class two_method_class : object ... end
class !'a param_class : 'a -> object ... end
type my_unit_object = unit param_class
type !'b my_unit_class = 'b constraint 'b = unit param_class
module Dep1 : sig ... end
module Dep2 (Arg : sig ... end) : sig ... end
type dep1 = Dep2(Dep1).B.c
module Dep3 : sig ... end
module Dep4 : sig ... end
module Dep5 (Arg : sig ... end) : sig ... end
type dep2 = Dep5(Dep4).Z.X.b
type dep3 = Dep5(Dep4).Z.Y.a
module Dep6 : sig ... end
module Dep7 (Arg : sig ... end) : sig ... end
type dep4 = Dep7(Dep6).M.Y.d
module Dep8 : sig ... end
module Dep9 (X : sig ... end) : sig ... end
module type Dep10 = sig ... end
module Dep11 : sig ... end
module Dep12 (Arg : sig ... end) : sig ... end
type dep5 = Dep13.c
module type With1 = sig ... end
module With2 : sig ... end
module With3 : sig ... end
type with1 = With3.N.t
module With4 : sig ... end
type with2 = With4.N.t
module With5 : sig ... end
module With6 : sig ... end
module With7 (X : sig ... end) : sig ... end
module type With8 = sig ... end
module With9 : sig ... end
module With10 : sig ... end
module type With11 = sig ... end
module type NestedInclude1 = sig ... end
module type NestedInclude2 = sig ... end
type nested_include = int
module DoubleInclude1 : sig ... end
module DoubleInclude3 : sig ... end
type double_include
module IncludeInclude1 : sig ... end
module type IncludeInclude2 = sig ... end
module IncludeInclude2_M : sig ... end
type include_include
module CanonicalTest : sig ... end
module Aliases : sig ... end
module type M = sig ... end
module M : sig ... end
module Only_a_module : sig ... end
module type TypeExt = sig ... end
type new_t = ..
type new_t +=
  1. | C
module type TypeExtPruned = sig ... end