sig
type 'a t
val create : unit -> 'a Service.t
val accept : ('a, 'b) Session.st Service.t -> ('a, 'b) Session.st
val request : ('a, 'b) Session.st Service.t -> ('b, 'a) Session.st
val spawn : (('a, 'b) Session.st -> unit) -> ('a, 'b) Session.st Service.t
end