`functor
(X : sig
type 'a input
type 'a output
type 'a t =
'a Type_generic.Make_named_for_closure.input ->
'a Type_generic.Make_named_for_closure.output
end) ->
sig
module Context : sig type t val create : unit -> t end
type 'a t
val init : Context.t -> 'a Typename.t -> 'a t
val get_wip_computation : 'a t -> 'a X.t
val set_final_computation : 'a t -> 'a X.t -> 'a X.t
val share : 'a Std_internal.Typerep.t -> bool
end`