Module type Higher_kinded.S4
type (_, _) higher_kinded
type ('a, 'x, 'y, 'z) t
type witness4
type 'z witness3
= ('z, witness4) higher_kinded
type ('y, 'z) witness2
= ('y, 'z witness3) higher_kinded
type ('x, 'y, 'z) witness1
= ('x, ('y, 'z) witness2) higher_kinded
type ('a, 'x, 'y, 'z) witness
= ('a, ('x, 'y, 'z) witness1) higher_kinded