When rewriting in a rule, GHC pretends that it is in the phase given by the activation phase of the rule (see Note [Simplifying inside stable unfoldings] in `SimplUtils` for rationale). This means that while rewriting the text literal rules, the simplifier is effectively in phase 2 due to 86ddf8a. As it turns out, the `build` rule provided by `base` is also active in phase 2, meaning it still competes with the literal rules (as 7.10.2 uses it to rewrite the LHS). For this reason, the previous change did not resolve the performance issue in 7.10.2; something I did not previously catch due to a rather silly issue in my test envirionment. This issue is now properly resolved by activating the literal rewrite rules only in phase 1, by which point the `build` rule is inactive. See comments 22 through 25 in GHC Trac #10528 for details.
Previously these RULES were quite fragile as they could compete with the `unpack` rule defined in `GHC.Base`. This was tickled by 7.10.2, which happened to rewrite the LHS of rules with other rules (which is itself a bug in GHC). This caused the literal rules to fail to fire, which then resulted in long compilation times. To avoid this sort of fragility, we would like the literal rules to fire very early in the simplifier. For this reason we set them to rule in phase 2. See GHC Trac #10528 for further discussion .  https://ghc.haskell.org/trac/ghc/ticket/10528