toxcore-0.2.12: A Tox protocol implementation in Haskell
Safe HaskellNone
LanguageHaskell2010

Tox.Crypto.Core.Keyed

Description

Monad class for caching of combined keys

Synopsis

Documentation

class (Monad m, Applicative m) => Keyed m where Source #

Instances

Instances details
Keyed NullKeyed Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

(Monad m, Applicative m) => Keyed (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Keyed m => Keyed (TimedT m) Source # 
Instance details

Defined in Tox.Network.Core.TimedT

Keyed m => Keyed (RandT s m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

(Monoid w, Keyed m) => Keyed (WriterT w m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Keyed m => Keyed (StateT s m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Keyed m => Keyed (ReaderT r m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Keyed m => Keyed (DhtConduit i o m) Source # 
Instance details

Defined in Tox.Conduit.DHT

(Monoid w, Keyed m) => Keyed (RWST r w s m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

newtype NullKeyed a Source #

trivial instance: the trivial monad, with no caching of keys

Constructors

NullKeyed 

Fields

Instances

Instances details
Monad NullKeyed Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

(>>=) :: NullKeyed a -> (a -> NullKeyed b) -> NullKeyed b #

(>>) :: NullKeyed a -> NullKeyed b -> NullKeyed b #

return :: a -> NullKeyed a #

Functor NullKeyed Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

fmap :: (a -> b) -> NullKeyed a -> NullKeyed b #

(<$) :: a -> NullKeyed b -> NullKeyed a #

Applicative NullKeyed Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

pure :: a -> NullKeyed a #

(<*>) :: NullKeyed (a -> b) -> NullKeyed a -> NullKeyed b #

liftA2 :: (a -> b -> c) -> NullKeyed a -> NullKeyed b -> NullKeyed c #

(*>) :: NullKeyed a -> NullKeyed b -> NullKeyed b #

(<*) :: NullKeyed a -> NullKeyed b -> NullKeyed a #

Keyed NullKeyed Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

newtype KeyedT m a Source #

caches computations of combined keys. Makes no attempt to delete old keys.

Constructors

KeyedT (StateT KeyRing m a) 

Instances

Instances details
MonadTrans KeyedT Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

lift :: Monad m => m a -> KeyedT m a #

DhtNodeMonad TestDhtNodeMonad Source # 
Instance details

Defined in Tox.DHT.Operation

(MonadState s m, Applicative m) => MonadState s (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

get :: KeyedT m s #

put :: s -> KeyedT m () #

state :: (s -> (a, s)) -> KeyedT m a #

MonadWriter w m => MonadWriter w (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

writer :: (a, w) -> KeyedT m a #

tell :: w -> KeyedT m () #

listen :: KeyedT m a -> KeyedT m (a, w) #

pass :: KeyedT m (a, w -> w) -> KeyedT m a #

Monad m => Monad (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

(>>=) :: KeyedT m a -> (a -> KeyedT m b) -> KeyedT m b #

(>>) :: KeyedT m a -> KeyedT m b -> KeyedT m b #

return :: a -> KeyedT m a #

Functor m => Functor (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

fmap :: (a -> b) -> KeyedT m a -> KeyedT m b #

(<$) :: a -> KeyedT m b -> KeyedT m a #

Monad m => Applicative (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

pure :: a -> KeyedT m a #

(<*>) :: KeyedT m (a -> b) -> KeyedT m a -> KeyedT m b #

liftA2 :: (a -> b -> c) -> KeyedT m a -> KeyedT m b -> KeyedT m c #

(*>) :: KeyedT m a -> KeyedT m b -> KeyedT m b #

(<*) :: KeyedT m a -> KeyedT m b -> KeyedT m a #

MonadIO m => MonadIO (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Methods

liftIO :: IO a -> KeyedT m a #

Timed m => Timed (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

MonadRandomBytes m => MonadRandomBytes (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

(Monad m, Applicative m) => Keyed (KeyedT m) Source # 
Instance details

Defined in Tox.Crypto.Core.Keyed

Networked m => Networked (KeyedT m) Source # 
Instance details

Defined in Tox.Network.Core.Networked

Methods

sendPacket :: (Binary payload, Show payload) => NodeInfo -> Packet payload -> KeyedT m () Source #

runKeyedT :: Monad m => KeyedT m a -> KeyRing -> m (a, KeyRing) Source #

evalKeyedT :: Monad m => KeyedT m a -> KeyRing -> m a Source #