{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Types.Aviator( Aviator(..) , HasAviator(..) , aviatorwithname , nodobaviator , dobaviator , dob' ) where import Control.Category ( Category((.)) ) import Control.Lens(makeClassy, Traversal', _Just) import Data.Aviation.Casr.Logbook.Types.Rating(Rating) import Data.Eq(Eq) import Data.Ord(Ord) import Data.Digit(DecDigit) import Data.Maybe(Maybe(Nothing, Just)) import Data.String(String) import Data.Time(Day) import Prelude(Show) data Aviator = Aviator { Aviator -> String _surname :: String , Aviator -> String _firstname :: String , Aviator -> [DecDigit] _arn :: [DecDigit] , Aviator -> Maybe Day _dob :: Maybe Day , Aviator -> [Rating] _ratings :: [Rating] } deriving (Aviator -> Aviator -> Bool (Aviator -> Aviator -> Bool) -> (Aviator -> Aviator -> Bool) -> Eq Aviator forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Aviator -> Aviator -> Bool == :: Aviator -> Aviator -> Bool $c/= :: Aviator -> Aviator -> Bool /= :: Aviator -> Aviator -> Bool Eq, Eq Aviator Eq Aviator => (Aviator -> Aviator -> Ordering) -> (Aviator -> Aviator -> Bool) -> (Aviator -> Aviator -> Bool) -> (Aviator -> Aviator -> Bool) -> (Aviator -> Aviator -> Bool) -> (Aviator -> Aviator -> Aviator) -> (Aviator -> Aviator -> Aviator) -> Ord Aviator Aviator -> Aviator -> Bool Aviator -> Aviator -> Ordering Aviator -> Aviator -> Aviator 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 :: Aviator -> Aviator -> Ordering compare :: Aviator -> Aviator -> Ordering $c< :: Aviator -> Aviator -> Bool < :: Aviator -> Aviator -> Bool $c<= :: Aviator -> Aviator -> Bool <= :: Aviator -> Aviator -> Bool $c> :: Aviator -> Aviator -> Bool > :: Aviator -> Aviator -> Bool $c>= :: Aviator -> Aviator -> Bool >= :: Aviator -> Aviator -> Bool $cmax :: Aviator -> Aviator -> Aviator max :: Aviator -> Aviator -> Aviator $cmin :: Aviator -> Aviator -> Aviator min :: Aviator -> Aviator -> Aviator Ord, Int -> Aviator -> ShowS [Aviator] -> ShowS Aviator -> String (Int -> Aviator -> ShowS) -> (Aviator -> String) -> ([Aviator] -> ShowS) -> Show Aviator forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Aviator -> ShowS showsPrec :: Int -> Aviator -> ShowS $cshow :: Aviator -> String show :: Aviator -> String $cshowList :: [Aviator] -> ShowS showList :: [Aviator] -> ShowS Show) makeClassy ''Aviator dob' :: HasAviator c => Traversal' c Day dob' :: forall c. HasAviator c => Traversal' c Day dob' = (Maybe Day -> f (Maybe Day)) -> c -> f c forall c. HasAviator c => Lens' c (Maybe Day) Lens' c (Maybe Day) dob ((Maybe Day -> f (Maybe Day)) -> c -> f c) -> ((Day -> f Day) -> Maybe Day -> f (Maybe Day)) -> (Day -> f Day) -> c -> f c 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 . (Day -> f Day) -> Maybe Day -> f (Maybe Day) forall a b (p :: * -> * -> *) (f :: * -> *). (Choice p, Applicative f) => p a (f b) -> p (Maybe a) (f (Maybe b)) _Just aviatorwithname :: String -> String -> Aviator aviatorwithname :: String -> String -> Aviator aviatorwithname String s String f = String -> String -> [DecDigit] -> Maybe Day -> [Rating] -> Aviator Aviator String s String f [] Maybe Day forall a. Maybe a Nothing [] nodobaviator :: String -> String -> [DecDigit] -> [Rating] -> Aviator nodobaviator :: String -> String -> [DecDigit] -> [Rating] -> Aviator nodobaviator String s String f [DecDigit] r = String -> String -> [DecDigit] -> Maybe Day -> [Rating] -> Aviator Aviator String s String f [DecDigit] r Maybe Day forall a. Maybe a Nothing dobaviator :: String -> String -> [DecDigit] -> Day -> [Rating] -> Aviator dobaviator :: String -> String -> [DecDigit] -> Day -> [Rating] -> Aviator dobaviator String s String f [DecDigit] r Day b = String -> String -> [DecDigit] -> Maybe Day -> [Rating] -> Aviator Aviator String s String f [DecDigit] r (Day -> Maybe Day forall a. a -> Maybe a Just Day b)