{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Control.Concurrent.Supervisor
( Supervisor
, Child
, newSupervisor
, 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
type Supervisor = Types.Supervisor TQueue
type Child = Types.Child_ TQueue
newSupervisor :: RestartStrategy -> IO Supervisor
newSupervisor str = Types.newSupervisor str 9223372036854775807