Higher_kinded.Make
X : Base.T1
type (_, _) higher_kinded
type 'a t
type witness1
type 'a witness
= ('a, witness1) higher_kinded
val inject : 'a t -> 'a witness
val project : 'a witness -> 'a t