local variable providers are transitive