-- and one actual. These sets of alerts can either be pushed to us by
-- Prometheus, or we can poll for them from AlertManager. The mode of operation
-- can be specified on a per-source basis.
--
-- In the case of alerts being pushed to us, we use a PushSource to keep a
-- reference to some mutable state (the latest list of alerts) so that we have
-- something to compare against when we are asked to perform a comparison.
--
-- In the case of us having to pull alerts, we use a PullSource to store the
-- URL of the AlertManager from which to pull, and an optional token with which