Universal and robust reloading for Haskell web applications