/// This trait should be used on all objects and containers related to storing unprotected terms, or unprotected symmbols.
/// The implementation should mark all contained aterms and symbols that must be kept alive using the provided `Marker`.
// In Rust Its not yet possible to implement it for any tuples, so we implement it for some common sizes.