{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE QuantifiedConstraints #-}
module Ouroboros.Consensus.Util.IOLike (
IOLike (..)
, Exception (..)
, ExitCase (..)
, MonadCatch (..)
, MonadMask (..)
, MonadThrow (..)
, SomeException
, module Ouroboros.Consensus.Util.MonadSTM.NormalForm
, MonadFork (..)
, MonadThread (..)
, labelThisThread
, ExceptionInLinkedThread (..)
, MonadAsync (..)
, link
, linkTo
, MonadST (..)
, DiffTime
, MonadMonotonicTime (..)
, Time (..)
, addTime
, diffTime
, MonadDelay (..)
, MonadEventlog (..)
, MonadEvaluate (..)
, NoThunks (..)
) where
import NoThunks.Class (NoThunks (..))
import Cardano.Crypto.KES (KESAlgorithm, SignKeyKES)
import qualified Cardano.Crypto.KES as KES
import Control.Monad.Class.MonadAsync
import Control.Monad.Class.MonadEventlog
import Control.Monad.Class.MonadFork
import Control.Monad.Class.MonadST
import Control.Monad.Class.MonadThrow
import Control.Monad.Class.MonadTime hiding (MonadTime (..))
import Control.Monad.Class.MonadTimer
import Ouroboros.Consensus.Util.MonadSTM.NormalForm
import Ouroboros.Consensus.Util.Orphans ()
class ( MonadAsync m
, MonadEventlog m
, MonadFork m
, MonadST m
, MonadDelay m
, MonadThread m
, MonadThrow m
, MonadCatch m
, MonadMask m
, MonadMonotonicTime m
, MonadEvaluate m
, MonadThrow (STM m)
, forall a. NoThunks (m a)
, forall a. NoThunks a => NoThunks (StrictTVar m a)
, forall a. NoThunks a => NoThunks (StrictMVar m a)
) => IOLike m where
forgetSignKeyKES :: KESAlgorithm v => SignKeyKES v -> m ()
instance IOLike IO where
forgetSignKeyKES :: SignKeyKES v -> IO ()
forgetSignKeyKES = SignKeyKES v -> IO ()
forall v. KESAlgorithm v => SignKeyKES v -> IO ()
KES.forgetSignKeyKES