registry-0.1.4.0: data structure for assembling components

Safe HaskellNone
LanguageHaskell2010

Data.Registry.State

Synopsis

Documentation

runS :: (MFunctor m, Monad n) => Registry ins out -> m (StateT (Registry ins out) n) a -> m n a Source #

Run some registry modifications in the StateT monad

addFunTo :: forall m a b ins out. (ApplyVariadic m a b, Typeable a, Typeable b, IsSubset (Inputs b) ins, Contains (Output b) out) => a -> Registry ins out -> Registry ins out Source #

Add an element to the registry without changing its type

addFunS :: (Typeable a, IsSubset (Inputs a) ins, Contains (Output a) out, MonadState (Registry ins out) m) => a -> m () Source #

Add an element to the registry without changing its type, in the State monad

addToS :: forall n a b m ins out. (ApplyVariadic n a b, Typeable a, Typeable b, Typeable a, IsSubset (Inputs b) ins, Contains (Output b) out, MonadState (Registry ins out) m) => a -> m () Source #

Add an element to the registry without changing its type, in the State monad

addFun :: (Typeable a, IsSubset (Inputs a) ins, Contains (Output a) out) => a -> Registry ins out -> Registry ins out Source #

Add an element to the registry without changing its type

modifyRegistry :: (Typeable a, IsSubset (Inputs a) ins, Contains (Output a) out) => Typed a -> Registry ins out -> Registry ins out Source #

Register modifications of elements which types are already in the registry