{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Types.Aircraft( Aircraft(..) , HasAircraft(..) , singleaircraft , multiaircraft ) where import Control.Lens(makeClassy) import Data.Aviation.Casr.Logbook.Types.Engine(Engine(Single, Multi)) import Data.Eq(Eq) import Data.Ord(Ord) import Data.String(String) import Prelude(Show) data Aircraft = Aircraft { Aircraft -> String _aircraftType :: String , Aircraft -> String _aircraftRegistration :: String , Aircraft -> Engine _aircraftEngine :: Engine } deriving (Aircraft -> Aircraft -> Bool (Aircraft -> Aircraft -> Bool) -> (Aircraft -> Aircraft -> Bool) -> Eq Aircraft forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Aircraft -> Aircraft -> Bool == :: Aircraft -> Aircraft -> Bool $c/= :: Aircraft -> Aircraft -> Bool /= :: Aircraft -> Aircraft -> Bool Eq, Eq Aircraft Eq Aircraft => (Aircraft -> Aircraft -> Ordering) -> (Aircraft -> Aircraft -> Bool) -> (Aircraft -> Aircraft -> Bool) -> (Aircraft -> Aircraft -> Bool) -> (Aircraft -> Aircraft -> Bool) -> (Aircraft -> Aircraft -> Aircraft) -> (Aircraft -> Aircraft -> Aircraft) -> Ord Aircraft Aircraft -> Aircraft -> Bool Aircraft -> Aircraft -> Ordering Aircraft -> Aircraft -> Aircraft 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 :: Aircraft -> Aircraft -> Ordering compare :: Aircraft -> Aircraft -> Ordering $c< :: Aircraft -> Aircraft -> Bool < :: Aircraft -> Aircraft -> Bool $c<= :: Aircraft -> Aircraft -> Bool <= :: Aircraft -> Aircraft -> Bool $c> :: Aircraft -> Aircraft -> Bool > :: Aircraft -> Aircraft -> Bool $c>= :: Aircraft -> Aircraft -> Bool >= :: Aircraft -> Aircraft -> Bool $cmax :: Aircraft -> Aircraft -> Aircraft max :: Aircraft -> Aircraft -> Aircraft $cmin :: Aircraft -> Aircraft -> Aircraft min :: Aircraft -> Aircraft -> Aircraft Ord, Int -> Aircraft -> ShowS [Aircraft] -> ShowS Aircraft -> String (Int -> Aircraft -> ShowS) -> (Aircraft -> String) -> ([Aircraft] -> ShowS) -> Show Aircraft forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Aircraft -> ShowS showsPrec :: Int -> Aircraft -> ShowS $cshow :: Aircraft -> String show :: Aircraft -> String $cshowList :: [Aircraft] -> ShowS showList :: [Aircraft] -> ShowS Show) makeClassy ''Aircraft singleaircraft :: String -> String -> Aircraft singleaircraft :: String -> String -> Aircraft singleaircraft String t String r = String -> String -> Engine -> Aircraft Aircraft String t String r Engine Single multiaircraft :: String -> String -> Aircraft multiaircraft :: String -> String -> Aircraft multiaircraft String t String r = String -> String -> Engine -> Aircraft Aircraft String t String r Engine Multi