Gluten
module type RUNTIME = sig ... end
type 't runtime
= (module RUNTIME with type t = 't)
type impl
val make : 't runtime -> 't -> impl
module Reqd : sig ... end
module Server : sig ... end
module Client : sig ... end
type 'reqd reqd
= private 'reqd Reqd.t
=
{
reqd : 'reqd;
upgrade : impl -> unit;
}