The `HasNotification` and `HasChangeNotification` classes need to be accessible to GHCJS so they should be decoupled from the backend-specific beam code.