-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Optionally serializable dynamic state keyed by type
--
@package dynamic-state
@version 0.1.0.2
-- | This module is HashMap ConcreteTypeRep Dynamic with a twist. The
-- Dynamic used can also be ByteString, to make repeated reserialization
-- cheap. A user-provided State-like is used to store this.
module Data.DynamicState.Serializable
-- | A Dynamic value, potentially stored serialized
data Dynamic
Dynamic :: !a -> Dynamic
Serial :: !ByteString -> Dynamic
-- | Try to extract a value from the Dynamic, returning True if it
-- was decoded from a Serial
fromDynamic :: (Typeable a, Binary a) => Dynamic -> Maybe (a, Bool)
-- | An extensible record, indexed by type, using state to cache
-- deserializtion
newtype DynamicState
DynamicState :: HashMap ConcreteTypeRep Dynamic -> DynamicState
unDynamicState :: DynamicState -> HashMap ConcreteTypeRep Dynamic
-- | Get a value, inside a State-like monad specified by the first two
-- functions
getDyn :: (Typeable a, Binary a, Monad m) => m DynamicState -> (DynamicState -> m ()) -> m (Maybe a)
-- | Set a value, inside a State-like monad specified by the first two
-- functions
putDyn :: (Typeable a, Binary a, Monad m) => m DynamicState -> (DynamicState -> m ()) -> a -> m ()
instance Typeable DynamicState
instance Binary DynamicState
instance Monoid DynamicState
instance Binary Dynamic
-- | This module implements a simple HashMap ConcreteTypeRep Dynamic
module Data.DynamicState
-- | An extensible record, indexed by type
newtype DynamicState
DynamicState :: HashMap ConcreteTypeRep Dynamic -> DynamicState
unDynamicState :: DynamicState -> HashMap ConcreteTypeRep Dynamic
getDyn :: Typeable a => DynamicState -> Maybe a
setDyn :: Typeable a => DynamicState -> a -> DynamicState
-- | Lens with default value
_dyn :: (Typeable a, Functor f) => a -> (a -> f a) -> DynamicState -> f DynamicState
instance Typeable DynamicState
instance Monoid DynamicState