H_list
type (_, _) t =
| [] : ('r, 'r) t
| :: : 'a * ('r, 'k) t -> ('r, 'a -> 'k) t
Polymorphic list type.