{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Types.AircraftFlight( AircraftFlight(..) , HasAircraftFlight(..) , icusonlyflight , noif_icusonlyflight , dualonlyflight , noif_dualonlyflight , commandonlyflight , noif_commandonlyflight , instructionflight , noif_instructionflight , aeronauticalHours ) where import Control.Category((.)) import Control.Lens ( view, makeClassy ) import Data.Aviation.Casr.Logbook.Types.Aircraft(Aircraft, HasAircraft(aircraft)) import Data.Aviation.Casr.Logbook.Types.Command ( Command(InCommandInstructing, InCommand, Dual, ICUS) ) import Data.Aviation.Casr.Logbook.Types.DayNight ( DayNight, HasDayNight(dayNight) ) import Data.Aviation.Casr.Logbook.Types.FlightPath(FlightPath, HasFlightPath(flightPath)) import Data.Aviation.Casr.Logbook.Types.Instruction ( Instruction ) import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator) import Data.Aviation.Casr.Logbook.Types.TimeAmount ( TimeAmount, zerotimeamount ) import Data.Eq(Eq) import Data.Ord(Ord) import Data.String(String) import Prelude(Show) data AircraftFlight = AircraftFlight { AircraftFlight -> String _aircraftflightname :: String , AircraftFlight -> Aircraft _flightaircraft :: Aircraft , AircraftFlight -> Command _command :: Command , AircraftFlight -> DayNight _daynight :: DayNight , AircraftFlight -> FlightPath _flightpath :: FlightPath , AircraftFlight -> [Aviator] _flightothercrew :: [Aviator] , AircraftFlight -> TimeAmount _instrumentflightTime :: TimeAmount } deriving (AircraftFlight -> AircraftFlight -> Bool (AircraftFlight -> AircraftFlight -> Bool) -> (AircraftFlight -> AircraftFlight -> Bool) -> Eq AircraftFlight forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: AircraftFlight -> AircraftFlight -> Bool == :: AircraftFlight -> AircraftFlight -> Bool $c/= :: AircraftFlight -> AircraftFlight -> Bool /= :: AircraftFlight -> AircraftFlight -> Bool Eq, Eq AircraftFlight Eq AircraftFlight => (AircraftFlight -> AircraftFlight -> Ordering) -> (AircraftFlight -> AircraftFlight -> Bool) -> (AircraftFlight -> AircraftFlight -> Bool) -> (AircraftFlight -> AircraftFlight -> Bool) -> (AircraftFlight -> AircraftFlight -> Bool) -> (AircraftFlight -> AircraftFlight -> AircraftFlight) -> (AircraftFlight -> AircraftFlight -> AircraftFlight) -> Ord AircraftFlight AircraftFlight -> AircraftFlight -> Bool AircraftFlight -> AircraftFlight -> Ordering AircraftFlight -> AircraftFlight -> AircraftFlight 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 :: AircraftFlight -> AircraftFlight -> Ordering compare :: AircraftFlight -> AircraftFlight -> Ordering $c< :: AircraftFlight -> AircraftFlight -> Bool < :: AircraftFlight -> AircraftFlight -> Bool $c<= :: AircraftFlight -> AircraftFlight -> Bool <= :: AircraftFlight -> AircraftFlight -> Bool $c> :: AircraftFlight -> AircraftFlight -> Bool > :: AircraftFlight -> AircraftFlight -> Bool $c>= :: AircraftFlight -> AircraftFlight -> Bool >= :: AircraftFlight -> AircraftFlight -> Bool $cmax :: AircraftFlight -> AircraftFlight -> AircraftFlight max :: AircraftFlight -> AircraftFlight -> AircraftFlight $cmin :: AircraftFlight -> AircraftFlight -> AircraftFlight min :: AircraftFlight -> AircraftFlight -> AircraftFlight Ord, Int -> AircraftFlight -> ShowS [AircraftFlight] -> ShowS AircraftFlight -> String (Int -> AircraftFlight -> ShowS) -> (AircraftFlight -> String) -> ([AircraftFlight] -> ShowS) -> Show AircraftFlight forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> AircraftFlight -> ShowS showsPrec :: Int -> AircraftFlight -> ShowS $cshow :: AircraftFlight -> String show :: AircraftFlight -> String $cshowList :: [AircraftFlight] -> ShowS showList :: [AircraftFlight] -> ShowS Show) makeClassy ''AircraftFlight instance HasAircraft AircraftFlight where aircraft :: Lens' AircraftFlight Aircraft aircraft = (Aircraft -> f Aircraft) -> AircraftFlight -> f AircraftFlight forall c. HasAircraftFlight c => Lens' c Aircraft Lens' AircraftFlight Aircraft flightaircraft ((Aircraft -> f Aircraft) -> AircraftFlight -> f AircraftFlight) -> ((Aircraft -> f Aircraft) -> Aircraft -> f Aircraft) -> (Aircraft -> f Aircraft) -> AircraftFlight -> f AircraftFlight 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 . (Aircraft -> f Aircraft) -> Aircraft -> f Aircraft forall c. HasAircraft c => Lens' c Aircraft Lens' Aircraft Aircraft aircraft instance HasDayNight AircraftFlight where dayNight :: Lens' AircraftFlight DayNight dayNight = (DayNight -> f DayNight) -> AircraftFlight -> f AircraftFlight forall c. HasAircraftFlight c => Lens' c DayNight Lens' AircraftFlight DayNight daynight ((DayNight -> f DayNight) -> AircraftFlight -> f AircraftFlight) -> ((DayNight -> f DayNight) -> DayNight -> f DayNight) -> (DayNight -> f DayNight) -> AircraftFlight -> f AircraftFlight 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 . (DayNight -> f DayNight) -> DayNight -> f DayNight forall c. HasDayNight c => Lens' c DayNight Lens' DayNight DayNight dayNight instance HasFlightPath AircraftFlight where flightPath :: Lens' AircraftFlight FlightPath flightPath = (FlightPath -> f FlightPath) -> AircraftFlight -> f AircraftFlight forall c. HasAircraftFlight c => Lens' c FlightPath Lens' AircraftFlight FlightPath flightpath ((FlightPath -> f FlightPath) -> AircraftFlight -> f AircraftFlight) -> ((FlightPath -> f FlightPath) -> FlightPath -> f FlightPath) -> (FlightPath -> f FlightPath) -> AircraftFlight -> f AircraftFlight 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 . (FlightPath -> f FlightPath) -> FlightPath -> f FlightPath forall c. HasFlightPath c => Lens' c FlightPath Lens' FlightPath FlightPath flightPath icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight icusonlyflight String n Aircraft a Aviator v DayNight t FlightPath p TimeAmount i = String -> Aircraft -> Command -> DayNight -> FlightPath -> [Aviator] -> TimeAmount -> AircraftFlight AircraftFlight String n Aircraft a (Aviator -> Command ICUS Aviator v) DayNight t FlightPath p [] TimeAmount i noif_icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight noif_icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight noif_icusonlyflight String n Aircraft a Aviator v DayNight t FlightPath p = String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight icusonlyflight String n Aircraft a Aviator v DayNight t FlightPath p TimeAmount zerotimeamount dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight dualonlyflight String n Aircraft a Aviator v DayNight t FlightPath p TimeAmount i = String -> Aircraft -> Command -> DayNight -> FlightPath -> [Aviator] -> TimeAmount -> AircraftFlight AircraftFlight String n Aircraft a (Aviator -> Command Dual Aviator v) DayNight t FlightPath p [] TimeAmount i noif_dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight noif_dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight noif_dualonlyflight String n Aircraft a Aviator v DayNight t FlightPath p = String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight dualonlyflight String n Aircraft a Aviator v DayNight t FlightPath p TimeAmount zerotimeamount commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight commandonlyflight String n Aircraft a DayNight t FlightPath p TimeAmount i = String -> Aircraft -> Command -> DayNight -> FlightPath -> [Aviator] -> TimeAmount -> AircraftFlight AircraftFlight String n Aircraft a Command InCommand DayNight t FlightPath p [] TimeAmount i noif_commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> AircraftFlight noif_commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> AircraftFlight noif_commandonlyflight String n Aircraft a DayNight t FlightPath p = String -> Aircraft -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight commandonlyflight String n Aircraft a DayNight t FlightPath p TimeAmount zerotimeamount instructionflight :: String -> Aircraft -> Instruction -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight instructionflight :: String -> Aircraft -> Instruction -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight instructionflight String n Aircraft a Instruction s DayNight t FlightPath p TimeAmount i = String -> Aircraft -> Command -> DayNight -> FlightPath -> [Aviator] -> TimeAmount -> AircraftFlight AircraftFlight String n Aircraft a (Instruction -> Command InCommandInstructing Instruction s) DayNight t FlightPath p [] TimeAmount i noif_instructionflight :: String -> Aircraft -> Instruction -> DayNight -> FlightPath -> AircraftFlight noif_instructionflight :: String -> Aircraft -> Instruction -> DayNight -> FlightPath -> AircraftFlight noif_instructionflight String n Aircraft a Instruction s DayNight t FlightPath p = String -> Aircraft -> Command -> DayNight -> FlightPath -> [Aviator] -> TimeAmount -> AircraftFlight AircraftFlight String n Aircraft a (Instruction -> Command InCommandInstructing Instruction s) DayNight t FlightPath p [] TimeAmount zerotimeamount aeronauticalHours :: AircraftFlight -> DayNight aeronauticalHours :: AircraftFlight -> DayNight aeronauticalHours AircraftFlight fl = Getting DayNight AircraftFlight DayNight -> AircraftFlight -> DayNight forall s (m :: * -> *) a. MonadReader s m => Getting a s a -> m a view Getting DayNight AircraftFlight DayNight forall c. HasDayNight c => Lens' c DayNight Lens' AircraftFlight DayNight dayNight AircraftFlight fl