Currently, the resolver does not handle fragments or even know about them at all. The resolver state, which is an external entity handles this. This approach limits reuse of the resolver since it is not self-contained. The resolver should be modified so that it directly processes fragments. To do this, it will have to create wrapped modules to synthesize hosts with attached fragments. This is similar to what currently happens in the resolver state. The main difference is that the resolver state does this at bundle install time, which is more efficient. A self-contained resolver will have to do it every time there is a resolve involving fragments, so it might be less efficient.