{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE TemplateHaskell #-}

module Data.Aviation.Casr.Logbook.Meta.AircraftFlightExpense(
  AircraftFlightExpense(ExpenseAircraftUsage, ExpenseAircraftLanding)
, AsAircraftFlightExpense(..)
) where

import Control.Lens(makeClassyPrisms)
import Data.Aviation.Casr.Logbook.Meta.AircraftLandingExpense
import Data.Aviation.Casr.Logbook.Meta.AircraftUsageExpense
import Data.Eq(Eq)
import Data.Ord(Ord)
import Prelude(Show)

data AircraftFlightExpense =
  ExpenseAircraftUsage AircraftUsageExpense
  | ExpenseAircraftLanding AircraftLandingExpense
  deriving (AircraftFlightExpense -> AircraftFlightExpense -> Bool
(AircraftFlightExpense -> AircraftFlightExpense -> Bool)
-> (AircraftFlightExpense -> AircraftFlightExpense -> Bool)
-> Eq AircraftFlightExpense
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
== :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
$c/= :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
/= :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
Eq, Eq AircraftFlightExpense
Eq AircraftFlightExpense =>
(AircraftFlightExpense -> AircraftFlightExpense -> Ordering)
-> (AircraftFlightExpense -> AircraftFlightExpense -> Bool)
-> (AircraftFlightExpense -> AircraftFlightExpense -> Bool)
-> (AircraftFlightExpense -> AircraftFlightExpense -> Bool)
-> (AircraftFlightExpense -> AircraftFlightExpense -> Bool)
-> (AircraftFlightExpense
    -> AircraftFlightExpense -> AircraftFlightExpense)
-> (AircraftFlightExpense
    -> AircraftFlightExpense -> AircraftFlightExpense)
-> Ord AircraftFlightExpense
AircraftFlightExpense -> AircraftFlightExpense -> Bool
AircraftFlightExpense -> AircraftFlightExpense -> Ordering
AircraftFlightExpense
-> AircraftFlightExpense -> AircraftFlightExpense
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 :: AircraftFlightExpense -> AircraftFlightExpense -> Ordering
compare :: AircraftFlightExpense -> AircraftFlightExpense -> Ordering
$c< :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
< :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
$c<= :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
<= :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
$c> :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
> :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
$c>= :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
>= :: AircraftFlightExpense -> AircraftFlightExpense -> Bool
$cmax :: AircraftFlightExpense
-> AircraftFlightExpense -> AircraftFlightExpense
max :: AircraftFlightExpense
-> AircraftFlightExpense -> AircraftFlightExpense
$cmin :: AircraftFlightExpense
-> AircraftFlightExpense -> AircraftFlightExpense
min :: AircraftFlightExpense
-> AircraftFlightExpense -> AircraftFlightExpense
Ord, Int -> AircraftFlightExpense -> ShowS
[AircraftFlightExpense] -> ShowS
AircraftFlightExpense -> String
(Int -> AircraftFlightExpense -> ShowS)
-> (AircraftFlightExpense -> String)
-> ([AircraftFlightExpense] -> ShowS)
-> Show AircraftFlightExpense
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AircraftFlightExpense -> ShowS
showsPrec :: Int -> AircraftFlightExpense -> ShowS
$cshow :: AircraftFlightExpense -> String
show :: AircraftFlightExpense -> String
$cshowList :: [AircraftFlightExpense] -> ShowS
showList :: [AircraftFlightExpense] -> ShowS
Show)

makeClassyPrisms ''AircraftFlightExpense