{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Types.SimulatorFlight( SimulatorFlight(..) , HasSimulatorFlight(..) , dayonlysimulator ) where import Control.Category((.)) import Control.Lens(makeClassy) import Data.Aviation.Casr.Logbook.Types.Time(Time, HasTime(time), dayonly) import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator) import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount) import Data.Eq(Eq) import Data.Ord(Ord) import Data.String(String) import Data.Time(Day) import Prelude(Show) data SimulatorFlight = SimulatorFlight { SimulatorFlight -> String _simulatorflightname :: String , SimulatorFlight -> Time _simulatorflighttime :: Time , SimulatorFlight -> String _simulatortype :: String , SimulatorFlight -> [Aviator] _simulatorothercrew :: [Aviator] , SimulatorFlight -> TimeAmount _simulatorTime :: TimeAmount , SimulatorFlight -> TimeAmount _instrumentsimulatorTime :: TimeAmount } deriving (SimulatorFlight -> SimulatorFlight -> Bool (SimulatorFlight -> SimulatorFlight -> Bool) -> (SimulatorFlight -> SimulatorFlight -> Bool) -> Eq SimulatorFlight forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: SimulatorFlight -> SimulatorFlight -> Bool == :: SimulatorFlight -> SimulatorFlight -> Bool $c/= :: SimulatorFlight -> SimulatorFlight -> Bool /= :: SimulatorFlight -> SimulatorFlight -> Bool Eq, Eq SimulatorFlight Eq SimulatorFlight => (SimulatorFlight -> SimulatorFlight -> Ordering) -> (SimulatorFlight -> SimulatorFlight -> Bool) -> (SimulatorFlight -> SimulatorFlight -> Bool) -> (SimulatorFlight -> SimulatorFlight -> Bool) -> (SimulatorFlight -> SimulatorFlight -> Bool) -> (SimulatorFlight -> SimulatorFlight -> SimulatorFlight) -> (SimulatorFlight -> SimulatorFlight -> SimulatorFlight) -> Ord SimulatorFlight SimulatorFlight -> SimulatorFlight -> Bool SimulatorFlight -> SimulatorFlight -> Ordering SimulatorFlight -> SimulatorFlight -> SimulatorFlight 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 $ccompare :: SimulatorFlight -> SimulatorFlight -> Ordering compare :: SimulatorFlight -> SimulatorFlight -> Ordering $c< :: SimulatorFlight -> SimulatorFlight -> Bool < :: SimulatorFlight -> SimulatorFlight -> Bool $c<= :: SimulatorFlight -> SimulatorFlight -> Bool <= :: SimulatorFlight -> SimulatorFlight -> Bool $c> :: SimulatorFlight -> SimulatorFlight -> Bool > :: SimulatorFlight -> SimulatorFlight -> Bool $c>= :: SimulatorFlight -> SimulatorFlight -> Bool >= :: SimulatorFlight -> SimulatorFlight -> Bool $cmax :: SimulatorFlight -> SimulatorFlight -> SimulatorFlight max :: SimulatorFlight -> SimulatorFlight -> SimulatorFlight $cmin :: SimulatorFlight -> SimulatorFlight -> SimulatorFlight min :: SimulatorFlight -> SimulatorFlight -> SimulatorFlight Ord, Int -> SimulatorFlight -> ShowS [SimulatorFlight] -> ShowS SimulatorFlight -> String (Int -> SimulatorFlight -> ShowS) -> (SimulatorFlight -> String) -> ([SimulatorFlight] -> ShowS) -> Show SimulatorFlight forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> SimulatorFlight -> ShowS showsPrec :: Int -> SimulatorFlight -> ShowS $cshow :: SimulatorFlight -> String show :: SimulatorFlight -> String $cshowList :: [SimulatorFlight] -> ShowS showList :: [SimulatorFlight] -> ShowS Show) makeClassy ''SimulatorFlight instance HasTime SimulatorFlight where time :: Lens' SimulatorFlight Time time = (Time -> f Time) -> SimulatorFlight -> f SimulatorFlight forall c. HasSimulatorFlight c => Lens' c Time Lens' SimulatorFlight Time simulatorflighttime ((Time -> f Time) -> SimulatorFlight -> f SimulatorFlight) -> ((Time -> f Time) -> Time -> f Time) -> (Time -> f Time) -> SimulatorFlight -> f SimulatorFlight forall b c a. (b -> c) -> (a -> b) -> a -> c forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . (Time -> f Time) -> Time -> f Time forall c. HasTime c => Lens' c Time Lens' Time Time time dayonlysimulator :: String -> Day -> String -> [Aviator] -> TimeAmount -> TimeAmount -> SimulatorFlight dayonlysimulator :: String -> Day -> String -> [Aviator] -> TimeAmount -> TimeAmount -> SimulatorFlight dayonlysimulator String n Day d = String -> Time -> String -> [Aviator] -> TimeAmount -> TimeAmount -> SimulatorFlight SimulatorFlight String n (Day -> Time dayonly Day d)