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.
Produce the value. A pointer to the value is passed to a delegate.
Provied the value. T must be the same type represented by the TypeInfo returned by providedType.
Return a TypeInfo describing the type provided.