Higher_kinded.Make
module X : sig ... end
type higher_kinded
val inject : 'a X.t -> ('a -> higher_kinded) hk
val project : ('a -> higher_kinded) hk -> 'a X.t