ProviderCollection
Holds a set of providers.
Accessed by indexing with a provider type, e.g.
FooInfo = provider(fields=["bar"])
....
collection.get(FooInfo) # None if absent, a FooInfo instance if present
ProviderCollection.get
def ProviderCollection.get(index) -> None | Provider