1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
open! Base
open! Import
module type T1 = sig
type 'a t
end
module Gen (T : T1) = struct
type _ t =
| [] : unit t
| ( :: ) : 'a T.t * 'b t -> ('a * 'b) t
end
module Id = struct
type 'a t = 'a
end
include Gen (Id)