Stylesheet provider to track which rules were inserted. Cache provider to track which were processed. CacheProvider may also be a better place to actually insert rules instead of in hook call. Enables reactive cache that can accept updates. Also, both should hide mutation behind functional APIs. Mutation should be implementation detail of each provider.