{-# LANGUAGE FlexibleContexts #-}
-- |
-- Module : Simulation.Aivika.Trans.DES
-- Copyright : Copyright (c) 2009-2015, David Sorokin <david.sorokin@gmail.com>
-- License : BSD3
-- Maintainer : David Sorokin <david.sorokin@gmail.com>
-- Stability : experimental
-- Tested with: GHC 7.10.1
--
-- It defines a type class of monads for Discrete Event Simulation (DES).
--
module Simulation.Aivika.Trans.DES (MonadDES) where
import Simulation.Aivika.Trans.Comp
import Simulation.Aivika.Trans.Ref.Base
import Simulation.Aivika.Trans.Internal.Types
import Simulation.Aivika.Trans.QueueStrategy
-- | It defines a type class of monads for DES.
class (MonadComp m,
MonadRef m,
EventQueueing m,
EnqueueStrategy m FCFS,
EnqueueStrategy m LCFS) => MonadDES m