aivika-transformers 4.5 → 4.5.1
raw patch · 4 files changed
+21/−13 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Simulation.Aivika.IO.DES: instance (GHC.Base.Monad m, Simulation.Aivika.Trans.Comp.MonadComp m, Control.Monad.IO.Class.MonadIO m, Simulation.Aivika.Trans.Template.MonadTemplate m) => Simulation.Aivika.Trans.DES.MonadDES m
- Simulation.Aivika.IO.Event: instance (GHC.Base.Monad m, Control.Monad.IO.Class.MonadIO m, Simulation.Aivika.Trans.Template.MonadTemplate m) => Simulation.Aivika.Trans.Internal.Types.EventQueueing m
- Simulation.Aivika.IO.Event: instance (GHC.Base.Monad m, Control.Monad.IO.Class.MonadIO m, Simulation.Aivika.Trans.Template.MonadTemplate m, Simulation.Aivika.Trans.DES.MonadDES m) => Simulation.Aivika.Trans.Internal.Event.EventIOQueueing m
+ Simulation.Aivika.IO.DES: instance (GHC.Base.Monad m, Simulation.Aivika.Trans.Comp.MonadComp m, Control.Monad.IO.Class.MonadIO m, Simulation.Aivika.Trans.Template.MonadTemplate m, Simulation.Aivika.Trans.Template.MonadEventQueueTemplate m) => Simulation.Aivika.Trans.DES.MonadDES m
+ Simulation.Aivika.IO.Event: instance (GHC.Base.Monad m, Control.Monad.IO.Class.MonadIO m, Simulation.Aivika.Trans.Template.MonadEventQueueTemplate m) => Simulation.Aivika.Trans.Internal.Types.EventQueueing m
+ Simulation.Aivika.IO.Event: instance (GHC.Base.Monad m, Control.Monad.IO.Class.MonadIO m, Simulation.Aivika.Trans.Template.MonadEventQueueTemplate m, Simulation.Aivika.Trans.DES.MonadDES m) => Simulation.Aivika.Trans.Internal.Event.EventIOQueueing m
+ Simulation.Aivika.Trans.Template: class Monad m => MonadEventQueueTemplate m
+ Simulation.Aivika.Trans.Template: instance Simulation.Aivika.Trans.Template.MonadEventQueueTemplate GHC.Types.IO
- Simulation.Aivika.Trans.Statistics: addSamplingStats :: a -> SamplingStats a -> SamplingStats a
+ Simulation.Aivika.Trans.Statistics: addSamplingStats :: SamplingData a => a -> SamplingStats a -> SamplingStats a
- Simulation.Aivika.Trans.Statistics: addTimingStats :: Double -> a -> TimingStats a -> TimingStats a
+ Simulation.Aivika.Trans.Statistics: addTimingStats :: TimingData a => Double -> a -> TimingStats a -> TimingStats a
- Simulation.Aivika.Trans.Statistics: combineSamplingStats :: SamplingStats a -> SamplingStats a -> SamplingStats a
+ Simulation.Aivika.Trans.Statistics: combineSamplingStats :: SamplingData a => SamplingStats a -> SamplingStats a -> SamplingStats a
- Simulation.Aivika.Trans.Statistics: emptySamplingStats :: SamplingStats a
+ Simulation.Aivika.Trans.Statistics: emptySamplingStats :: SamplingData a => SamplingStats a
- Simulation.Aivika.Trans.Statistics: emptyTimingStats :: TimingStats a
+ Simulation.Aivika.Trans.Statistics: emptyTimingStats :: TimingData a => TimingStats a
- Simulation.Aivika.Trans.Statistics: timingStatsMean :: TimingStats a -> Double
+ Simulation.Aivika.Trans.Statistics: timingStatsMean :: TimingData a => TimingStats a -> Double
- Simulation.Aivika.Trans.Statistics: timingStatsMean2 :: TimingStats a -> Double
+ Simulation.Aivika.Trans.Statistics: timingStatsMean2 :: TimingData a => TimingStats a -> Double
- Simulation.Aivika.Trans.Statistics: timingStatsVariance :: TimingStats a -> Double
+ Simulation.Aivika.Trans.Statistics: timingStatsVariance :: TimingData a => TimingStats a -> Double
Files
- Simulation/Aivika/IO/DES.hs +1/−1
- Simulation/Aivika/IO/Event.hs +9/−9
- Simulation/Aivika/Trans/Template.hs +10/−2
- aivika-transformers.cabal +1/−1
Simulation/Aivika/IO/DES.hs view
@@ -27,6 +27,6 @@ import Simulation.Aivika.IO.QueueStrategy -- | A template-based instantiation of the 'MonadDES' type class.-instance (Monad m, MonadComp m, MonadIO m, MonadTemplate m) => MonadDES m where+instance (Monad m, MonadComp m, MonadIO m, MonadTemplate m, MonadEventQueueTemplate m) => MonadDES m where {-# SPECIALISE instance MonadDES IO #-}
Simulation/Aivika/IO/Event.hs view
@@ -29,7 +29,7 @@ import Simulation.Aivika.Trans.Event -- | A template-based implementation of the 'EventQueueing' type class.-instance (Monad m, MonadIO m, MonadTemplate m) => EventQueueing m where+instance (Monad m, MonadIO m, MonadEventQueueTemplate m) => EventQueueing m where {-# SPECIALISE instance EventQueueing IO #-} @@ -70,7 +70,7 @@ liftIO . PQ.queueCount . queuePQ . runEventQueue . pointRun -- | Process the pending events.-processPendingEventsCore :: (MonadIO m, MonadTemplate m) => Bool -> Dynamics m ()+processPendingEventsCore :: (MonadIO m, MonadEventQueueTemplate m) => Bool -> Dynamics m () {-# INLINE processPendingEventsCore #-} processPendingEventsCore includingCurrentEvents = Dynamics r where r p =@@ -105,7 +105,7 @@ call q p -- | Process the pending events synchronously, i.e. without past.-processPendingEvents :: (MonadIO m, MonadTemplate m) => Bool -> Dynamics m ()+processPendingEvents :: (MonadIO m, MonadEventQueueTemplate m) => Bool -> Dynamics m () {-# INLINE processPendingEvents #-} processPendingEvents includingCurrentEvents = Dynamics r where r p =@@ -120,27 +120,27 @@ m = processPendingEventsCore includingCurrentEvents -- | A memoized value.-processEventsIncludingCurrent :: (MonadIO m, MonadTemplate m) => Dynamics m ()+processEventsIncludingCurrent :: (MonadIO m, MonadEventQueueTemplate m) => Dynamics m () {-# INLINE processEventsIncludingCurrent #-} processEventsIncludingCurrent = processPendingEvents True -- | A memoized value.-processEventsIncludingEarlier :: (MonadIO m, MonadTemplate m) => Dynamics m ()+processEventsIncludingEarlier :: (MonadIO m, MonadEventQueueTemplate m) => Dynamics m () {-# INLINE processEventsIncludingEarlier #-} processEventsIncludingEarlier = processPendingEvents False -- | A memoized value.-processEventsIncludingCurrentCore :: (MonadIO m, MonadTemplate m) => Dynamics m ()+processEventsIncludingCurrentCore :: (MonadIO m, MonadEventQueueTemplate m) => Dynamics m () {-# INLINE processEventsIncludingCurrentCore #-} processEventsIncludingCurrentCore = processPendingEventsCore True -- | A memoized value.-processEventsIncludingEarlierCore :: (MonadIO m, MonadTemplate m) => Dynamics m ()+processEventsIncludingEarlierCore :: (MonadIO m, MonadEventQueueTemplate m) => Dynamics m () {-# INLINE processEventsIncludingEarlierCore #-} processEventsIncludingEarlierCore = processPendingEventsCore True -- | Process the events.-processEvents :: (MonadIO m, MonadTemplate m) => EventProcessing -> Dynamics m ()+processEvents :: (MonadIO m, MonadEventQueueTemplate m) => EventProcessing -> Dynamics m () {-# INLINABLE processEvents #-} processEvents CurrentEvents = processEventsIncludingCurrent processEvents EarlierEvents = processEventsIncludingEarlier@@ -148,6 +148,6 @@ processEvents EarlierEventsOrFromPast = processEventsIncludingEarlierCore -- | A template-based implementation of the 'EventIOQueueing' type class.-instance (Monad m, MonadIO m, MonadTemplate m, MonadDES m) => EventIOQueueing m where+instance (Monad m, MonadIO m, MonadEventQueueTemplate m, MonadDES m) => EventIOQueueing m where enqueueEventIO = enqueueEvent
Simulation/Aivika/Trans/Template.hs view
@@ -7,15 +7,23 @@ -- Stability : experimental -- Tested with: GHC 8.0.1 ----- It defines an explicit type sub-class of 'IO'-based monads on top of which+-- It defines explicit type sub-classes of 'IO'-based monads on top of which -- the simulation monads can be automatically generated. ---module Simulation.Aivika.Trans.Template (MonadTemplate) where+module Simulation.Aivika.Trans.Template+ (MonadTemplate,+ MonadEventQueueTemplate) where import Control.Monad.Trans -- | It defines a type class based on which the simulation computations can be automatically generated. class Monad m => MonadTemplate m +-- | It defines a type class based on which the event queue can be automatically generated.+class Monad m => MonadEventQueueTemplate m+ -- | An instance of the type class. instance MonadTemplate IO++-- | An instance of the type class.+instance MonadEventQueueTemplate IO
aivika-transformers.cabal view
@@ -1,5 +1,5 @@ name: aivika-transformers-version: 4.5+version: 4.5.1 synopsis: Transformers for the Aivika simulation library description: This package is a generalization of the aivika [1] simulation library