reallyKillHistoryWorker :: HistoryWorker -> IO ()
reallyKillHistoryWorker hw =
    do wrk <- readIORef $ hw_worker hw
       writeIORef (hw_worker hw) Nothing
       case wrk of
         Nothing -> error "Dead HW with no worker?"
         Just wrk' -> killWorker wrk'
reallyKillHistoryWorker :: HistoryWorker -> IO ()
reallyKillHistoryWorker hw =
    do wrk <- readIORef $ hw_worker hw
       writeIORef (hw_worker hw) Nothing
       case wrk of
         Nothing -> error "Dead HW with no worker?"
         Just wrk' -> killWorker wrk'
reallyKillHistoryWorker hw =
    do wrk <- readIORef $ hw_worker hw
       writeIORef (hw_worker hw) Nothing
       case wrk of
         Nothing -> error "Dead HW with no worker?"
         Just wrk' -> killWorker wrk'