Create static chains of objects with different types.
In general, the chain starts (or ends, depending on your view) with a
and is built up from any number of
This basic structure only allows you
to query the number of elements, but you can implement a more useful trait for both
Chain to make this structure more useful. For an example, check the
test_accessing_elements_with_common_interface test in the source code.
Creates an object chain from the argument types.
This piece marks the end of a chain.
This piece of the chain contains some object
A generic chain element