A Provider that instantiates instances of a class.
A provider that uses a factory function (or other callable) to get the value.
A Provider that uses another provider to create an instance the first time provide is called. Future calls to provide will return this same instance.
A Provider that provides a value. The value is provided at construction type and the same value is returned each time provide is called.
Interface for a provider for dependency injection. A provider knows about the type it produces, and can produce a value.