package git
Source file hkt.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28(** This is a module used to share functionality needed by modules that contain higher-kinded type behavior. HKT = Higher-Kinded Types *) module HKT = struct type t external inj : 'a -> 'b = "%identity" external prj : 'a -> 'b = "%identity" end module Make_sched (T : sig type +'a t end) = struct type +'a s = 'a T.t include HKT end module Make_store (T : sig type ('k, 'v) t end) = struct type ('a, 'b) s = ('a, 'b) T.t include HKT end