When are supertraits needed?
only when a generic trait is used
when a metatrait is needed to use another trait
when a trait depends on another trait
when a trait is needed for multiple structs