{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE InstanceSigs #-} module Data.Aviation.Casr.Logbook.Meta.SimulatorFlightMeta( SimulatorFlightMeta(SimulatorFlightMeta) , HasSimulatorFlightMeta(..) ) where import Control.Lens(makeClassy, makeWrapped) import Data.Aviation.Casr.Logbook.Meta.SimulatorFlightExpense ( SimulatorFlightExpense ) import Data.Eq(Eq) import Data.Monoid ( (<>), Monoid(mempty) ) import Data.Ord(Ord) import Data.Semigroup ( Semigroup ) import Prelude(Show) newtype SimulatorFlightMeta = SimulatorFlightMeta [SimulatorFlightExpense] deriving (SimulatorFlightMeta -> SimulatorFlightMeta -> Bool (SimulatorFlightMeta -> SimulatorFlightMeta -> Bool) -> (SimulatorFlightMeta -> SimulatorFlightMeta -> Bool) -> Eq SimulatorFlightMeta forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool == :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool $c/= :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool /= :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool Eq, Eq SimulatorFlightMeta Eq SimulatorFlightMeta => (SimulatorFlightMeta -> SimulatorFlightMeta -> Ordering) -> (SimulatorFlightMeta -> SimulatorFlightMeta -> Bool) -> (SimulatorFlightMeta -> SimulatorFlightMeta -> Bool) -> (SimulatorFlightMeta -> SimulatorFlightMeta -> Bool) -> (SimulatorFlightMeta -> SimulatorFlightMeta -> Bool) -> (SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta) -> (SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta) -> Ord SimulatorFlightMeta SimulatorFlightMeta -> SimulatorFlightMeta -> Bool SimulatorFlightMeta -> SimulatorFlightMeta -> Ordering SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta 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 :: SimulatorFlightMeta -> SimulatorFlightMeta -> Ordering compare :: SimulatorFlightMeta -> SimulatorFlightMeta -> Ordering $c< :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool < :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool $c<= :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool <= :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool $c> :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool > :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool $c>= :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool >= :: SimulatorFlightMeta -> SimulatorFlightMeta -> Bool $cmax :: SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta max :: SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta $cmin :: SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta min :: SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta Ord, Int -> SimulatorFlightMeta -> ShowS [SimulatorFlightMeta] -> ShowS SimulatorFlightMeta -> String (Int -> SimulatorFlightMeta -> ShowS) -> (SimulatorFlightMeta -> String) -> ([SimulatorFlightMeta] -> ShowS) -> Show SimulatorFlightMeta forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> SimulatorFlightMeta -> ShowS showsPrec :: Int -> SimulatorFlightMeta -> ShowS $cshow :: SimulatorFlightMeta -> String show :: SimulatorFlightMeta -> String $cshowList :: [SimulatorFlightMeta] -> ShowS showList :: [SimulatorFlightMeta] -> ShowS Show) makeClassy ''SimulatorFlightMeta makeWrapped ''SimulatorFlightMeta instance Semigroup SimulatorFlightMeta where SimulatorFlightMeta [SimulatorFlightExpense] x <> :: SimulatorFlightMeta -> SimulatorFlightMeta -> SimulatorFlightMeta <> SimulatorFlightMeta [SimulatorFlightExpense] y = [SimulatorFlightExpense] -> SimulatorFlightMeta SimulatorFlightMeta ([SimulatorFlightExpense] x [SimulatorFlightExpense] -> [SimulatorFlightExpense] -> [SimulatorFlightExpense] forall a. Semigroup a => a -> a -> a <> [SimulatorFlightExpense] y) instance Monoid SimulatorFlightMeta where mempty :: SimulatorFlightMeta mempty :: SimulatorFlightMeta mempty = [SimulatorFlightExpense] -> SimulatorFlightMeta SimulatorFlightMeta [SimulatorFlightExpense] forall a. Monoid a => a mempty