This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
23
unikernel/duniverse/mimic/lib/implicit.mli
Normal file
23
unikernel/duniverse/mimic/lib/implicit.mli
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
module type KEY_INFO = sig
|
||||
type 'a t
|
||||
end
|
||||
|
||||
module Make (Key_info : KEY_INFO) : sig
|
||||
type t = private ..
|
||||
type 'a key = 'a Key_info.t
|
||||
|
||||
module type WITNESS = sig
|
||||
type a
|
||||
type t += T of a
|
||||
|
||||
val key : a key
|
||||
end
|
||||
|
||||
type 'a witness = (module WITNESS with type a = 'a)
|
||||
type pack = Key : 'a key -> pack
|
||||
type value = Value : 'a * 'a key -> value
|
||||
|
||||
val inj : 'a key -> 'a witness
|
||||
val prj : t -> value
|
||||
val bindings : unit -> pack list
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue