cabalCached :: (MonadTrans t, MonadState Options (t m), GHC.GhcMonad m) => FilePath -> t m () -> t m ()
cabalCached file action = do
  s <- lift $ GHC.liftIO $ getSymbolicLinkStatus file
  let tnew = modificationTime s
  told <- use cabalMod
  when (told < tnew) $ do
    cabalMod .= tnew
    action
cabalCached :: (MonadTrans t, MonadState Options (t m), GHC.GhcMonad m) => FilePath -> t m () -> t m ()
cabalCached file action = do
  s <- lift $ GHC.liftIO $ getSymbolicLinkStatus file
  let tnew = modificationTime s
  told <- use cabalMod
  when (told < tnew) $ do
    cabalMod .= tnew
    action
cabalCached file action = do
  s <- lift $ GHC.liftIO $ getSymbolicLinkStatus file
  let tnew = modificationTime s
  told <- use cabalMod
  when (told < tnew) $ do
    cabalMod .= tnew
    action