Creates a new provider for a specific value type.
Optional
name for this provider used mainly for debugging purposes
Creates a new provider for a specific value type.