Trace_thread_local_storageuse thread-local-storage to store ambient spans.
This doesn't work with cooperative concurrency (Eio, Lwt, etc) but is fine in a threaded context.
val k_span : Trace_core.span Thread_local_storage.tKey to access the current span
val provider : Trace_core.Ambient_span_provider.tProvider that uses Thread_local_storage to store the current ambient span. This works well when concurrency is based on thread, or if there is no concurrency.