Defining an entire context struct might seem a bit excessive in some cases. The derive macros should have the ability to use type Context = (T1::Context, T2::Context, ...). Would still probably preserve the custom context feature in case people want it.