Module Recent

module type S = sig ... end
module type S1 = functor (_ : S) -> S
type variant =
  1. | A
  2. | B of int
  3. | C
    (*

    foo

    *)
  4. | D
    (*

    bar

    *)
  5. | E of {
    1. a : int;
    }
type _ gadt =
  1. | A : int gadt
  2. | B : int -> string gadt
    (*

    foo

    *)
  3. | C : {
    1. a : int;
    } -> unit gadt
type polymorphic_variant = [
  1. | `A
  2. | `B of int
  3. | `C
    (*

    foo

    *)
  4. | `D
    (*

    bar

    *)
]
type empty_variant = |
type nonrec nonrec_ = int
type empty_conj =
  1. | X : [< `X of & 'a & int * float ] -> empty_conj
type conj =
  1. | X : [< `X of int & [< `B of int & float ] ] -> conj
val empty_conj : [< `X of & 'a & int * float ]
val conj : [< `X of int & [< `B of int & float ] ]
module Z : sig ... end
module X : sig ... end
module type PolyS = sig ... end