A trait that (re)composes and decomposes a scope. It is used to act as a “wrapper” for the Compose trait, which
itself is not dyn-compatible. Since this trait is dyn-compatible, it can be stored in a Box or Arc.
A trait that defines how a scope should be composed and decomposed. This trait is used to define the structure of a
scope. The compose function is called when the scope is composed or recomposed, and the decompose function is
called when the scope is decomposed.