Just model this as taking an old, immutable web to a new one.
impact :: Web -> Web
Persistent data structures will let us reuse the best parts of the old web efficiently.