pub fn unsafe_create_session<C, A, Cont, Fut>(
    executor: Cont
) -> PartialSession<C, A> where
    A: Protocol,
    C: Context,
    Cont: FnOnce(C::Endpoints, A::ProviderEndpoint) -> Fut + Send + 'static,
    Fut: Future<Output = ()> + Send