aivika-transformers 5.7 → 5.8
raw patch · 6 files changed
+76/−3 lines, 6 filesdep ~aivikadep ~exceptionsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aivika, exceptions
API changes (from Hackage documentation)
- Simulation.Aivika.Trans.Internal.Event: instance GHC.Base.Monad m => Data.Semigroup.Semigroup (Simulation.Aivika.Trans.Internal.Event.DisposableEvent m)
- Simulation.Aivika.Trans.Results: instance Data.Semigroup.Semigroup (Simulation.Aivika.Trans.Results.Results m)
- Simulation.Aivika.Trans.Results: instance Simulation.Aivika.Trans.DES.MonadDES m => Data.Semigroup.Semigroup (Simulation.Aivika.Trans.Results.ResultSignal m)
- Simulation.Aivika.Trans.Signal: instance (Simulation.Aivika.Trans.DES.MonadDES m, Data.Semigroup.Semigroup a) => Data.Semigroup.Semigroup (Simulation.Aivika.Trans.Signal.Signalable m a)
- Simulation.Aivika.Trans.Signal: instance (Simulation.Aivika.Trans.DES.MonadDES m, GHC.Base.Monoid a, Data.Semigroup.Semigroup a) => GHC.Base.Monoid (Simulation.Aivika.Trans.Signal.Signalable m a)
- Simulation.Aivika.Trans.Signal: instance Simulation.Aivika.Trans.DES.MonadDES m => Data.Semigroup.Semigroup (Simulation.Aivika.Trans.Signal.Signal m a)
- Simulation.Aivika.Trans.Stream: instance Simulation.Aivika.Trans.DES.MonadDES m => Data.Semigroup.Semigroup (Simulation.Aivika.Trans.Stream.Stream m a)
+ Simulation.Aivika.Trans.Internal.Event: instance GHC.Base.Monad m => GHC.Base.Semigroup (Simulation.Aivika.Trans.Internal.Event.DisposableEvent m)
+ Simulation.Aivika.Trans.Results: instance GHC.Base.Semigroup (Simulation.Aivika.Trans.Results.Results m)
+ Simulation.Aivika.Trans.Results: instance Simulation.Aivika.Trans.DES.MonadDES m => GHC.Base.Semigroup (Simulation.Aivika.Trans.Results.ResultSignal m)
+ Simulation.Aivika.Trans.Signal: instance (Simulation.Aivika.Trans.DES.MonadDES m, GHC.Base.Monoid a, GHC.Base.Semigroup a) => GHC.Base.Monoid (Simulation.Aivika.Trans.Signal.Signalable m a)
+ Simulation.Aivika.Trans.Signal: instance (Simulation.Aivika.Trans.DES.MonadDES m, GHC.Base.Semigroup a) => GHC.Base.Semigroup (Simulation.Aivika.Trans.Signal.Signalable m a)
+ Simulation.Aivika.Trans.Signal: instance Simulation.Aivika.Trans.DES.MonadDES m => GHC.Base.Semigroup (Simulation.Aivika.Trans.Signal.Signal m a)
+ Simulation.Aivika.Trans.Stream: instance Simulation.Aivika.Trans.DES.MonadDES m => GHC.Base.Semigroup (Simulation.Aivika.Trans.Stream.Stream m a)
- Simulation.Aivika.Trans.Arrival: data Arrival a :: * -> *
+ Simulation.Aivika.Trans.Arrival: data Arrival a
- Simulation.Aivika.Trans.Channel: Channel :: (Signal m a -> Composite m (Signal m b)) -> Channel m a b
+ Simulation.Aivika.Trans.Channel: Channel :: Signal m a -> Composite m (Signal m b) -> Channel m a b
- Simulation.Aivika.Trans.Circuit: Circuit :: (a -> Event m (b, Circuit m a b)) -> Circuit m a b
+ Simulation.Aivika.Trans.Circuit: Circuit :: a -> Event m (b, Circuit m a b) -> Circuit m a b
- Simulation.Aivika.Trans.Internal.Simulation: data SimulationAbort :: *
+ Simulation.Aivika.Trans.Internal.Simulation: data SimulationAbort
- Simulation.Aivika.Trans.Internal.Simulation: data SimulationException :: *
+ Simulation.Aivika.Trans.Internal.Simulation: data SimulationException
- Simulation.Aivika.Trans.Internal.Simulation: data SimulationRetry :: *
+ Simulation.Aivika.Trans.Internal.Simulation: data SimulationRetry
- Simulation.Aivika.Trans.Net: Net :: (a -> Process m (b, Net m a b)) -> Net m a b
+ Simulation.Aivika.Trans.Net: Net :: a -> Process m (b, Net m a b) -> Net m a b
- Simulation.Aivika.Trans.Processor: Processor :: (Stream m a -> Stream m b) -> Processor m a b
+ Simulation.Aivika.Trans.Processor: Processor :: Stream m a -> Stream m b -> Processor m a b
- Simulation.Aivika.Trans.Results.Locale: ResultLocalisation :: (ResultId -> ResultDescription) -> (ResultId -> ResultDescription) -> ResultLocalisation
+ Simulation.Aivika.Trans.Results.Locale: ResultLocalisation :: ResultId -> ResultDescription -> ResultId -> ResultDescription -> ResultLocalisation
- Simulation.Aivika.Trans.Results.Locale.Types: ResultLocalisation :: (ResultId -> ResultDescription) -> (ResultId -> ResultDescription) -> ResultLocalisation
+ Simulation.Aivika.Trans.Results.Locale.Types: ResultLocalisation :: ResultId -> ResultDescription -> ResultId -> ResultDescription -> ResultLocalisation
- Simulation.Aivika.Trans.Signal: Signal :: ((a -> Event m ()) -> Event m (DisposableEvent m)) -> Signal m a
+ Simulation.Aivika.Trans.Signal: Signal :: (a -> Event m ()) -> Event m (DisposableEvent m) -> Signal m a
- Simulation.Aivika.Trans.Simulation: data SimulationAbort :: *
+ Simulation.Aivika.Trans.Simulation: data SimulationAbort
- Simulation.Aivika.Trans.Simulation: data SimulationException :: *
+ Simulation.Aivika.Trans.Simulation: data SimulationException
- Simulation.Aivika.Trans.Simulation: data SimulationRetry :: *
+ Simulation.Aivika.Trans.Simulation: data SimulationRetry
- Simulation.Aivika.Trans.Statistics: data SamplingCounter a :: * -> *
+ Simulation.Aivika.Trans.Statistics: data SamplingCounter a
- Simulation.Aivika.Trans.Statistics: data SamplingStats a :: * -> *
+ Simulation.Aivika.Trans.Statistics: data SamplingStats a
- Simulation.Aivika.Trans.Statistics: data TimingCounter a :: * -> *
+ Simulation.Aivika.Trans.Statistics: data TimingCounter a
- Simulation.Aivika.Trans.Statistics: data TimingStats a :: * -> *
+ Simulation.Aivika.Trans.Statistics: data TimingStats a
- Simulation.Aivika.Trans.Transform: Transform :: (Dynamics m a -> Simulation m (Dynamics m b)) -> Transform m a b
+ Simulation.Aivika.Trans.Transform: Transform :: Dynamics m a -> Simulation m (Dynamics m b) -> Transform m a b
Files
- CHANGELOG.md +5/−0
- Simulation/Aivika/Trans/Internal/Dynamics.hs +17/−0
- Simulation/Aivika/Trans/Internal/Event.hs +17/−0
- Simulation/Aivika/Trans/Internal/Parameter.hs +17/−0
- Simulation/Aivika/Trans/Internal/Simulation.hs +17/−0
- aivika-transformers.cabal +3/−3
CHANGELOG.md view
@@ -1,4 +1,9 @@ +Version 5.8+-----++* Satisfying a new requirement of the MonadMask class type.+ Version 5.7 -----
Simulation/Aivika/Trans/Internal/Dynamics.hs view
@@ -277,6 +277,20 @@ invokeDynamics p (a $ q u) where q u (Dynamics b) = Dynamics (u . b) +-- | An implementation of 'generalBracket'.+generalBracketDynamics :: MC.MonadMask m+ => Dynamics m a+ -> (a -> MC.ExitCase b -> Dynamics m c)+ -> (a -> Dynamics m b)+ -> Dynamics m (b, c)+{-# INLINABLE generalBracketDynamics #-}+generalBracketDynamics acquire release use =+ Dynamics $ \p -> do+ MC.generalBracket+ (invokeDynamics p acquire)+ (\resource e -> invokeDynamics p $ release resource e)+ (\resource -> invokeDynamics p $ use resource)+ instance MonadFix m => MonadFix (Dynamics m) where {-# INLINE mfix #-}@@ -301,6 +315,9 @@ {-# INLINE uninterruptibleMask #-} uninterruptibleMask = uninterruptibleMaskDynamics+ + {-# INLINE generalBracket #-}+ generalBracket = generalBracketDynamics -- | Computation that returns the current simulation time. time :: Monad m => Dynamics m Double
Simulation/Aivika/Trans/Internal/Event.hs view
@@ -183,6 +183,20 @@ invokeEvent p (a $ q u) where q u (Event b) = Event (u . b) +-- | An implementation of 'generalBracket'.+generalBracketEvent :: MC.MonadMask m+ => Event m a+ -> (a -> MC.ExitCase b -> Event m c)+ -> (a -> Event m b)+ -> Event m (b, c)+{-# INLINABLE generalBracketEvent #-}+generalBracketEvent acquire release use =+ Event $ \p -> do+ MC.generalBracket+ (invokeEvent p acquire)+ (\resource e -> invokeEvent p $ release resource e)+ (\resource -> invokeEvent p $ use resource)+ instance MonadFix m => MonadFix (Event m) where {-# INLINE mfix #-}@@ -207,6 +221,9 @@ {-# INLINE uninterruptibleMask #-} uninterruptibleMask = uninterruptibleMaskEvent+ + {-# INLINE generalBracket #-}+ generalBracket = generalBracketEvent -- | Run the 'Event' computation in the start time involving all -- pending 'CurrentEvents' in the processing too.
Simulation/Aivika/Trans/Internal/Parameter.hs view
@@ -293,6 +293,20 @@ invokeParameter r (a $ q u) where q u (Parameter b) = Parameter (u . b) +-- | An implementation of 'generalBracket'.+generalBracketParameter :: MC.MonadMask m+ => Parameter m a+ -> (a -> MC.ExitCase b -> Parameter m c)+ -> (a -> Parameter m b)+ -> Parameter m (b, c)+{-# INLINABLE generalBracketParameter #-}+generalBracketParameter acquire release use =+ Parameter $ \r -> do+ MC.generalBracket+ (invokeParameter r acquire)+ (\resource e -> invokeParameter r $ release resource e)+ (\resource -> invokeParameter r $ use resource)+ instance MonadFix m => MonadFix (Parameter m) where {-# INLINE mfix #-}@@ -317,6 +331,9 @@ {-# INLINE uninterruptibleMask #-} uninterruptibleMask = uninterruptibleMaskParameter+ + {-# INLINE generalBracket #-}+ generalBracket = generalBracketParameter -- | Memoize the 'Parameter' computation, always returning the same value -- within a simulation run. However, the value will be recalculated for other
Simulation/Aivika/Trans/Internal/Simulation.hs view
@@ -193,6 +193,20 @@ invokeSimulation r (a $ q u) where q u (Simulation b) = Simulation (u . b) +-- | An implementation of 'generalBracket'.+generalBracketSimulation :: MC.MonadMask m+ => Simulation m a+ -> (a -> MC.ExitCase b -> Simulation m c)+ -> (a -> Simulation m b)+ -> Simulation m (b, c)+{-# INLINABLE generalBracketSimulation #-}+generalBracketSimulation acquire release use =+ Simulation $ \r -> do+ MC.generalBracket+ (invokeSimulation r acquire)+ (\resource e -> invokeSimulation r $ release resource e)+ (\resource -> invokeSimulation r $ use resource)+ instance MonadFix m => MonadFix (Simulation m) where {-# INLINE mfix #-}@@ -217,3 +231,6 @@ {-# INLINE uninterruptibleMask #-} uninterruptibleMask = uninterruptibleMaskSimulation+ + {-# INLINE generalBracket #-}+ generalBracket = generalBracketSimulation
aivika-transformers.cabal view
@@ -1,5 +1,5 @@ name: aivika-transformers-version: 5.7+version: 5.8 synopsis: Transformers for the Aivika simulation library description: This package is a generalization of the aivika [1] simulation library@@ -176,8 +176,8 @@ mwc-random >= 0.13.0.0, vector >= 0.10.0.1, semigroups >= 0.10,- exceptions >= 0.6,- aivika >= 5.7+ exceptions >= 0.9.0,+ aivika >= 5.8 other-extensions: FlexibleContexts, FlexibleInstances,