package higher_kinded

  1. Overview
  2. Docs
type ('a, 'x, 'y, 'z) t
type witness4
type 'z witness3 = ('z, witness4) t
type ('y, 'z) witness2 = ('y, 'z witness3) t
type ('x, 'y, 'z) witness1 = ('x, ('y, 'z) witness2) t
type ('a, 'x, 'y, 'z) witness = ('a, ('x, 'y, 'z) witness1) t
val inject : ('a, 'x, 'y, 'z) t -> ('a, 'x, 'y, 'z) witness
val project : ('a, 'x, 'y, 'z) witness -> ('a, 'x, 'y, 'z) t