{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeFamilies #-} module Data.Aviation.Casr.Logbook.Types.Entries( Entries(..) , emptyentries , singleentry ) where import Control.Lens(makeWrapped) import Data.Aviation.Casr.Logbook.Types.Entry(Entry) import Data.Eq(Eq) import Data.Ord(Ord) import Prelude(Show) newtype Entries ae se ee be = Entries [Entry ae se ee be] deriving (Entries ae se ee be -> Entries ae se ee be -> Bool (Entries ae se ee be -> Entries ae se ee be -> Bool) -> (Entries ae se ee be -> Entries ae se ee be -> Bool) -> Eq (Entries ae se ee be) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a forall ae se ee be. (Eq ae, Eq se, Eq ee, Eq be) => Entries ae se ee be -> Entries ae se ee be -> Bool $c== :: forall ae se ee be. (Eq ae, Eq se, Eq ee, Eq be) => Entries ae se ee be -> Entries ae se ee be -> Bool == :: Entries ae se ee be -> Entries ae se ee be -> Bool $c/= :: forall ae se ee be. (Eq ae, Eq se, Eq ee, Eq be) => Entries ae se ee be -> Entries ae se ee be -> Bool /= :: Entries ae se ee be -> Entries ae se ee be -> Bool Eq, Eq (Entries ae se ee be) Eq (Entries ae se ee be) => (Entries ae se ee be -> Entries ae se ee be -> Ordering) -> (Entries ae se ee be -> Entries ae se ee be -> Bool) -> (Entries ae se ee be -> Entries ae se ee be -> Bool) -> (Entries ae se ee be -> Entries ae se ee be -> Bool) -> (Entries ae se ee be -> Entries ae se ee be -> Bool) -> (Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be) -> (Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be) -> Ord (Entries ae se ee be) Entries ae se ee be -> Entries ae se ee be -> Bool Entries ae se ee be -> Entries ae se ee be -> Ordering Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be 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 forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Eq (Entries ae se ee be) forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Bool forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Ordering forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be $ccompare :: forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Ordering compare :: Entries ae se ee be -> Entries ae se ee be -> Ordering $c< :: forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Bool < :: Entries ae se ee be -> Entries ae se ee be -> Bool $c<= :: forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Bool <= :: Entries ae se ee be -> Entries ae se ee be -> Bool $c> :: forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Bool > :: Entries ae se ee be -> Entries ae se ee be -> Bool $c>= :: forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Bool >= :: Entries ae se ee be -> Entries ae se ee be -> Bool $cmax :: forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be max :: Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be $cmin :: forall ae se ee be. (Ord ae, Ord se, Ord ee, Ord be) => Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be min :: Entries ae se ee be -> Entries ae se ee be -> Entries ae se ee be Ord, Int -> Entries ae se ee be -> ShowS [Entries ae se ee be] -> ShowS Entries ae se ee be -> String (Int -> Entries ae se ee be -> ShowS) -> (Entries ae se ee be -> String) -> ([Entries ae se ee be] -> ShowS) -> Show (Entries ae se ee be) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a forall ae se ee be. (Show ae, Show se, Show ee, Show be) => Int -> Entries ae se ee be -> ShowS forall ae se ee be. (Show ae, Show se, Show ee, Show be) => [Entries ae se ee be] -> ShowS forall ae se ee be. (Show ae, Show se, Show ee, Show be) => Entries ae se ee be -> String $cshowsPrec :: forall ae se ee be. (Show ae, Show se, Show ee, Show be) => Int -> Entries ae se ee be -> ShowS showsPrec :: Int -> Entries ae se ee be -> ShowS $cshow :: forall ae se ee be. (Show ae, Show se, Show ee, Show be) => Entries ae se ee be -> String show :: Entries ae se ee be -> String $cshowList :: forall ae se ee be. (Show ae, Show se, Show ee, Show be) => [Entries ae se ee be] -> ShowS showList :: [Entries ae se ee be] -> ShowS Show) makeWrapped ''Entries emptyentries :: Entries ae se ee be emptyentries :: forall ae se ee be. Entries ae se ee be emptyentries = [Entry ae se ee be] -> Entries ae se ee be forall ae se ee be. [Entry ae se ee be] -> Entries ae se ee be Entries [] singleentry :: Entry ae se ee be -> Entries ae se ee be singleentry :: forall ae se ee be. Entry ae se ee be -> Entries ae se ee be singleentry Entry ae se ee be e = [Entry ae se ee be] -> Entries ae se ee be forall ae se ee be. [Entry ae se ee be] -> Entries ae se ee be Entries [Entry ae se ee be e]