{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Types.Briefing( Briefing(..) , HasBriefing(..) ) where import Control.Category((.)) import Control.Lens(makeClassy) import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator, HasAviator(aviator)) import Data.Aviation.Casr.Logbook.Types.Location(Location, HasLocation(location)) import Data.Aviation.Casr.Logbook.Types.Time(Time, HasTime(time)) import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount, HasTimeAmount(timeAmount)) import Data.Eq(Eq) import Data.Ord(Ord) import Data.String(String) import Prelude(Show) data Briefing = Briefing { Briefing -> String _briefingName :: String , Briefing -> Location _briefingLocation :: Location , Briefing -> Time _briefingTime :: Time , Briefing -> Aviator _briefer :: Aviator , Briefing -> TimeAmount _briefingTimeAmount :: TimeAmount } deriving (Briefing -> Briefing -> Bool (Briefing -> Briefing -> Bool) -> (Briefing -> Briefing -> Bool) -> Eq Briefing forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Briefing -> Briefing -> Bool == :: Briefing -> Briefing -> Bool $c/= :: Briefing -> Briefing -> Bool /= :: Briefing -> Briefing -> Bool Eq, Eq Briefing Eq Briefing => (Briefing -> Briefing -> Ordering) -> (Briefing -> Briefing -> Bool) -> (Briefing -> Briefing -> Bool) -> (Briefing -> Briefing -> Bool) -> (Briefing -> Briefing -> Bool) -> (Briefing -> Briefing -> Briefing) -> (Briefing -> Briefing -> Briefing) -> Ord Briefing Briefing -> Briefing -> Bool Briefing -> Briefing -> Ordering Briefing -> Briefing -> Briefing 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 :: Briefing -> Briefing -> Ordering compare :: Briefing -> Briefing -> Ordering $c< :: Briefing -> Briefing -> Bool < :: Briefing -> Briefing -> Bool $c<= :: Briefing -> Briefing -> Bool <= :: Briefing -> Briefing -> Bool $c> :: Briefing -> Briefing -> Bool > :: Briefing -> Briefing -> Bool $c>= :: Briefing -> Briefing -> Bool >= :: Briefing -> Briefing -> Bool $cmax :: Briefing -> Briefing -> Briefing max :: Briefing -> Briefing -> Briefing $cmin :: Briefing -> Briefing -> Briefing min :: Briefing -> Briefing -> Briefing Ord, Int -> Briefing -> ShowS [Briefing] -> ShowS Briefing -> String (Int -> Briefing -> ShowS) -> (Briefing -> String) -> ([Briefing] -> ShowS) -> Show Briefing forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Briefing -> ShowS showsPrec :: Int -> Briefing -> ShowS $cshow :: Briefing -> String show :: Briefing -> String $cshowList :: [Briefing] -> ShowS showList :: [Briefing] -> ShowS Show) makeClassy ''Briefing instance HasLocation Briefing where location :: Lens' Briefing Location location = (Location -> f Location) -> Briefing -> f Briefing forall c. HasBriefing c => Lens' c Location Lens' Briefing Location briefingLocation ((Location -> f Location) -> Briefing -> f Briefing) -> ((Location -> f Location) -> Location -> f Location) -> (Location -> f Location) -> Briefing -> f Briefing 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 . (Location -> f Location) -> Location -> f Location forall c. HasLocation c => Lens' c Location Lens' Location Location location instance HasTime Briefing where time :: Lens' Briefing Time time = (Time -> f Time) -> Briefing -> f Briefing forall c. HasBriefing c => Lens' c Time Lens' Briefing Time briefingTime ((Time -> f Time) -> Briefing -> f Briefing) -> ((Time -> f Time) -> Time -> f Time) -> (Time -> f Time) -> Briefing -> f Briefing 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 instance HasAviator Briefing where aviator :: Lens' Briefing Aviator aviator = (Aviator -> f Aviator) -> Briefing -> f Briefing forall c. HasBriefing c => Lens' c Aviator Lens' Briefing Aviator briefer ((Aviator -> f Aviator) -> Briefing -> f Briefing) -> ((Aviator -> f Aviator) -> Aviator -> f Aviator) -> (Aviator -> f Aviator) -> Briefing -> f Briefing 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 . (Aviator -> f Aviator) -> Aviator -> f Aviator forall c. HasAviator c => Lens' c Aviator Lens' Aviator Aviator aviator instance HasTimeAmount Briefing where timeAmount :: Lens' Briefing TimeAmount timeAmount = (TimeAmount -> f TimeAmount) -> Briefing -> f Briefing forall c. HasBriefing c => Lens' c TimeAmount Lens' Briefing TimeAmount briefingTimeAmount ((TimeAmount -> f TimeAmount) -> Briefing -> f Briefing) -> ((TimeAmount -> f TimeAmount) -> TimeAmount -> f TimeAmount) -> (TimeAmount -> f TimeAmount) -> Briefing -> f Briefing 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 . (TimeAmount -> f TimeAmount) -> TimeAmount -> f TimeAmount forall c. HasTimeAmount c => Lens' c TimeAmount Lens' TimeAmount TimeAmount timeAmount