{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Control.Concurrent.Supervisor.Bounded
( Supervisor
, Child
, newSupervisor
, defaultEventQueueSize
, module T
) where
import Control.Concurrent.STM
import Control.Concurrent.Supervisor.Types as T hiding (Supervisor, newSupervisor)
import qualified Control.Concurrent.Supervisor.Types as Types
import Numeric.Natural
type Supervisor = Types.Supervisor TBQueue
type Child = Types.Child_ TBQueue
defaultEventQueueSize :: Natural
defaultEventQueueSize = 10000
newSupervisor :: RestartStrategy -> Natural -> IO Supervisor
newSupervisor = Types.newSupervisor