Module type Higher_kinded.S

type 'a t
type higher_kinded
val inject : 'a t -> ('a -> higher_kinded) hk
val project : ('a -> higher_kinded) hk -> 'a t