module Base where
data Inmess = No | Yes Arrival Service
deriving (Inmess -> Inmess -> Bool
(Inmess -> Inmess -> Bool)
-> (Inmess -> Inmess -> Bool) -> Eq Inmess
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Inmess -> Inmess -> Bool
== :: Inmess -> Inmess -> Bool
$c/= :: Inmess -> Inmess -> Bool
/= :: Inmess -> Inmess -> Bool
Eq,Arrival -> Inmess -> ShowS
[Inmess] -> ShowS
Inmess -> String
(Arrival -> Inmess -> ShowS)
-> (Inmess -> String) -> ([Inmess] -> ShowS) -> Show Inmess
forall a.
(Arrival -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Arrival -> Inmess -> ShowS
showsPrec :: Arrival -> Inmess -> ShowS
$cshow :: Inmess -> String
show :: Inmess -> String
$cshowList :: [Inmess] -> ShowS
showList :: [Inmess] -> ShowS
Show)
type Arrival = Int
type Service = Int
data Outmess = None | Discharge Arrival Wait Service
deriving (Outmess -> Outmess -> Bool
(Outmess -> Outmess -> Bool)
-> (Outmess -> Outmess -> Bool) -> Eq Outmess
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Outmess -> Outmess -> Bool
== :: Outmess -> Outmess -> Bool
$c/= :: Outmess -> Outmess -> Bool
/= :: Outmess -> Outmess -> Bool
Eq,Arrival -> Outmess -> ShowS
[Outmess] -> ShowS
Outmess -> String
(Arrival -> Outmess -> ShowS)
-> (Outmess -> String) -> ([Outmess] -> ShowS) -> Show Outmess
forall a.
(Arrival -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Arrival -> Outmess -> ShowS
showsPrec :: Arrival -> Outmess -> ShowS
$cshow :: Outmess -> String
show :: Outmess -> String
$cshowList :: [Outmess] -> ShowS
showList :: [Outmess] -> ShowS
Show)
type Wait = Int