Module With_static_lengths.List

type ('a, 'shape) t =
| ([]) : (_[ `nil ]) t
| (::) : 'a * ('a'shape) t -> ('a[ `cons of 'shape ]) t