Add a note about how CallbackContext can be copied by code outside `libtock_platform`.
diff --git a/core/platform/src/async_traits.rs b/core/platform/src/async_traits.rs
index 309c83c..2853026 100644
--- a/core/platform/src/async_traits.rs
+++ b/core/platform/src/async_traits.rs
@@ -63,8 +63,10 @@
 pub struct CallbackContext<'c> {
     // `_phantom` serves three purposes. It uses the `c lifetime to avoid an
     // "unused lifetime" error, it provides the proper variance over 'c, and it
-    // prevents code outside this crate from constructing a CallbackContext
-    // (because of its visibility control).
+    // prevents code outside this crate from directly constructing a
+    // CallbackContext (because of its visibility control). Code outside this
+    // crate can copy a CallbackContext, but that is fine as copying the
+    // CallbackContext preserves its associated lifetime.
     pub(crate) _phantom: core::marker::PhantomData<&'c ()>,
 }