packages feed

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 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