{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Types.DayNight( DayNight(..) , HasDayNight(..) , day , night , totalDayNight ) where import Control.Lens(makeClassy) import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount(TimeAmount), zerotimeamount) import Data.Digit(DecDigit) import Data.Eq(Eq) import Data.Int(Int) import Data.Monoid(mappend) import Data.Ord(Ord) import Prelude(Show) data DayNight = DayNight { DayNight -> TimeAmount _dayDayNight :: TimeAmount , DayNight -> TimeAmount _nightDayNight :: TimeAmount } deriving (DayNight -> DayNight -> Bool (DayNight -> DayNight -> Bool) -> (DayNight -> DayNight -> Bool) -> Eq DayNight forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: DayNight -> DayNight -> Bool == :: DayNight -> DayNight -> Bool $c/= :: DayNight -> DayNight -> Bool /= :: DayNight -> DayNight -> Bool Eq, Eq DayNight Eq DayNight => (DayNight -> DayNight -> Ordering) -> (DayNight -> DayNight -> Bool) -> (DayNight -> DayNight -> Bool) -> (DayNight -> DayNight -> Bool) -> (DayNight -> DayNight -> Bool) -> (DayNight -> DayNight -> DayNight) -> (DayNight -> DayNight -> DayNight) -> Ord DayNight DayNight -> DayNight -> Bool DayNight -> DayNight -> Ordering DayNight -> DayNight -> DayNight 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 :: DayNight -> DayNight -> Ordering compare :: DayNight -> DayNight -> Ordering $c< :: DayNight -> DayNight -> Bool < :: DayNight -> DayNight -> Bool $c<= :: DayNight -> DayNight -> Bool <= :: DayNight -> DayNight -> Bool $c> :: DayNight -> DayNight -> Bool > :: DayNight -> DayNight -> Bool $c>= :: DayNight -> DayNight -> Bool >= :: DayNight -> DayNight -> Bool $cmax :: DayNight -> DayNight -> DayNight max :: DayNight -> DayNight -> DayNight $cmin :: DayNight -> DayNight -> DayNight min :: DayNight -> DayNight -> DayNight Ord, Int -> DayNight -> ShowS [DayNight] -> ShowS DayNight -> String (Int -> DayNight -> ShowS) -> (DayNight -> String) -> ([DayNight] -> ShowS) -> Show DayNight forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> DayNight -> ShowS showsPrec :: Int -> DayNight -> ShowS $cshow :: DayNight -> String show :: DayNight -> String $cshowList :: [DayNight] -> ShowS showList :: [DayNight] -> ShowS Show) makeClassy ''DayNight day :: Int -> DecDigit -> DayNight day :: Int -> DecDigit -> DayNight day Int h DecDigit p = TimeAmount -> TimeAmount -> DayNight DayNight (Int -> DecDigit -> TimeAmount TimeAmount Int h DecDigit p) TimeAmount zerotimeamount night :: Int -> DecDigit -> DayNight night :: Int -> DecDigit -> DayNight night Int h DecDigit p = TimeAmount -> TimeAmount -> DayNight DayNight TimeAmount zerotimeamount (Int -> DecDigit -> TimeAmount TimeAmount Int h DecDigit p) totalDayNight :: DayNight -> TimeAmount totalDayNight :: DayNight -> TimeAmount totalDayNight (DayNight TimeAmount d TimeAmount n) = TimeAmount d TimeAmount -> TimeAmount -> TimeAmount forall a. Monoid a => a -> a -> a `mappend` TimeAmount n