module Simulation.Aivika.Internal.Arrival
(Arrival(..)) where
import Simulation.Aivika.Event
data Arrival a =
Arrival { forall a. Arrival a -> a
arrivalValue :: a,
forall a. Arrival a -> Double
arrivalTime :: Double,
forall a. Arrival a -> Maybe Double
arrivalDelay :: Maybe Double
} deriving (Arrival a -> Arrival a -> Bool
(Arrival a -> Arrival a -> Bool)
-> (Arrival a -> Arrival a -> Bool) -> Eq (Arrival a)
forall a. Eq a => Arrival a -> Arrival a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Eq a => Arrival a -> Arrival a -> Bool
== :: Arrival a -> Arrival a -> Bool
$c/= :: forall a. Eq a => Arrival a -> Arrival a -> Bool
/= :: Arrival a -> Arrival a -> Bool
Eq, Eq (Arrival a)
Eq (Arrival a) =>
(Arrival a -> Arrival a -> Ordering)
-> (Arrival a -> Arrival a -> Bool)
-> (Arrival a -> Arrival a -> Bool)
-> (Arrival a -> Arrival a -> Bool)
-> (Arrival a -> Arrival a -> Bool)
-> (Arrival a -> Arrival a -> Arrival a)
-> (Arrival a -> Arrival a -> Arrival a)
-> Ord (Arrival a)
Arrival a -> Arrival a -> Bool
Arrival a -> Arrival a -> Ordering
Arrival a -> Arrival a -> Arrival a
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall a. Ord a => Eq (Arrival a)
forall a. Ord a => Arrival a -> Arrival a -> Bool
forall a. Ord a => Arrival a -> Arrival a -> Ordering
forall a. Ord a => Arrival a -> Arrival a -> Arrival a
$ccompare :: forall a. Ord a => Arrival a -> Arrival a -> Ordering
compare :: Arrival a -> Arrival a -> Ordering
$c< :: forall a. Ord a => Arrival a -> Arrival a -> Bool
< :: Arrival a -> Arrival a -> Bool
$c<= :: forall a. Ord a => Arrival a -> Arrival a -> Bool
<= :: Arrival a -> Arrival a -> Bool
$c> :: forall a. Ord a => Arrival a -> Arrival a -> Bool
> :: Arrival a -> Arrival a -> Bool
$c>= :: forall a. Ord a => Arrival a -> Arrival a -> Bool
>= :: Arrival a -> Arrival a -> Bool
$cmax :: forall a. Ord a => Arrival a -> Arrival a -> Arrival a
max :: Arrival a -> Arrival a -> Arrival a
$cmin :: forall a. Ord a => Arrival a -> Arrival a -> Arrival a
min :: Arrival a -> Arrival a -> Arrival a
Ord, Int -> Arrival a -> ShowS
[Arrival a] -> ShowS
Arrival a -> String
(Int -> Arrival a -> ShowS)
-> (Arrival a -> String)
-> ([Arrival a] -> ShowS)
-> Show (Arrival a)
forall a. Show a => Int -> Arrival a -> ShowS
forall a. Show a => [Arrival a] -> ShowS
forall a. Show a => Arrival a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> Arrival a -> ShowS
showsPrec :: Int -> Arrival a -> ShowS
$cshow :: forall a. Show a => Arrival a -> String
show :: Arrival a -> String
$cshowList :: forall a. Show a => [Arrival a] -> ShowS
showList :: [Arrival a] -> ShowS
Show)