module L : sig type ('a, 'b) t = [] | (::) of 'a * ('b, 'a) t end - : (int list, string) L.t = L.(::) ([1; 2], L.(::) ("2", L.(::) ([3; 4], L.(::) ("4", L.(::) ([5], L.[]))))) - : (int, string) L.t = (::) (1, (::) ("2", (::) (3, (::) ("4", (::) (5, []))))) module L : sig type 'a t = 'a list = [] | (::) of 'a * 'a t end - : int L.t L.t = [[1]; [2]; [3]; [4]; [5]] - : int L.t = [1; 2; 3; 4; 5]