Module Higher_kinded.Make3

Parameters

Signature

type (_, _) higher_kinded
type ('a, 'y, 'z) t
type witness3
type 'z witness2 = ('zwitness3) higher_kinded
type ('y, 'z) witness1 = ('y'z witness2) higher_kinded
type ('a, 'y, 'z) witness = ('a('y'z) witness1) higher_kinded
val inject : ('a'y'z) t -> ('a'y'z) witness
val project : ('a'y'z) witness -> ('a'y'z) t