module
type
S
= sig ...
end
module
type
S1
= functor
(_
: S)
->
S
type variant
=
-
| A
-
|
B
of int
-
| C
-
| D
-
|
E
of
{
-
a : int;
}
type _ gadt
=
-
|
A :
int gadt
-
|
B : int
->
string gadt
-
|
C : {
-
a : int;
}
->
unit gadt
type polymorphic_variant
= [
-
| `A
-
|
`B of int
-
| `C
-
| `D
]
type
nonrec nonrec_
= int
type empty_conj
=
-
|
X :
[<
`X of & 'a & int
* float
]
->
empty_conj
type conj
=
-
|
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
type
PolyS
= sig ...
end