Module Higher_kinded.Make2

Parameters

Signature

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