Module type Higher_kinded.S8

type (_, _) higher_kinded
type ('a, 't, 'u, 'v, 'w, 'x, 'y, 'z) t
type witness8
type 'z witness7 = ('zwitness8) higher_kinded
type ('y, 'z) witness6 = ('y'z witness7) higher_kinded
type ('x, 'y, 'z) witness5 = ('x('y'z) witness6) higher_kinded
type ('a, 'x, 'y, 'z) witness4 = ('a('x'y'z) witness5) higher_kinded
type ('a, 'w, 'x, 'y, 'z) witness3 = ('a('w'x'y'z) witness4) higher_kinded
type ('a, 'v, 'w, 'x, 'y, 'z) witness2 = ('a('v'w'x'y'z) witness3) higher_kinded
type ('a, 'u, 'v, 'w, 'x, 'y, 'z) witness1 = ('a('u'v'w'x'y'z) witness2) higher_kinded
type ('a, 't, 'u, 'v, 'w, 'x, 'y, 'z) witness = ('a('t'u'v'w'x'y'z) witness1) higher_kinded
val inject : ('a't'u'v'w'x'y'z) t -> ('a't'u'v'w'x'y'z) witness
val project : ('a't'u'v'w'x'y'z) witness -> ('a't'u'v'w'x'y'z) t