In the various frame pallets in substrate there are two ways of declaring storage.
For example some pallet storage is declared with <T: Config>
while others are declared <T: Config<I>, I: 'static = ()>
frame/whitelist/src/lib.rs
pub type WhitelistedCall<T: Config> = StorageMap<_, Twox64Concat, T::Hash, (), OptionQuery>;
frame/balances/src/lib.rs
pub type TotalIssuance<T: Config<I>, I: 'static = ()> = StorageValue<_, T::Balance, ValueQuery>;
It is not clear what the advantage of using the 'static
(long-lived) type is in this context. What is it?