{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE FlexibleInstances #-} module Data.Aviation.C172.WB.C172Arms( C172Arms(..) , HasC172Arms(..) , c172ArmsPOH ) where import Control.Applicative(Applicative((<*>), pure)) import Control.Lens(makeClassy, (^.)) import Data.Aviation.Units(inches) import Data.Aviation.WB.Arm(Arm, (.->.), rangeArm, staticArm) import Data.Eq(Eq) import Data.Foldable(Foldable(foldr)) import Data.Functor(Functor(fmap), (<$>)) import Data.Ord(Ord) import Data.Traversable(Traversable(traverse)) import Prelude(Show) data C172Arms a = C172Arms { C172Arms a -> a _frontseat :: a , C172Arms a -> a _rearseat :: a , C172Arms a -> a _fuel :: a , C172Arms a -> a _baggagea :: a , C172Arms a -> a _baggageb :: a } deriving (C172Arms a -> C172Arms a -> Bool (C172Arms a -> C172Arms a -> Bool) -> (C172Arms a -> C172Arms a -> Bool) -> Eq (C172Arms a) forall a. Eq a => C172Arms a -> C172Arms a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: C172Arms a -> C172Arms a -> Bool $c/= :: forall a. Eq a => C172Arms a -> C172Arms a -> Bool == :: C172Arms a -> C172Arms a -> Bool $c== :: forall a. Eq a => C172Arms a -> C172Arms a -> Bool Eq, Eq (C172Arms a) Eq (C172Arms a) -> (C172Arms a -> C172Arms a -> Ordering) -> (C172Arms a -> C172Arms a -> Bool) -> (C172Arms a -> C172Arms a -> Bool) -> (C172Arms a -> C172Arms a -> Bool) -> (C172Arms a -> C172Arms a -> Bool) -> (C172Arms a -> C172Arms a -> C172Arms a) -> (C172Arms a -> C172Arms a -> C172Arms a) -> Ord (C172Arms a) C172Arms a -> C172Arms a -> Bool C172Arms a -> C172Arms a -> Ordering C172Arms a -> C172Arms a -> C172Arms a 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 a. Ord a => Eq (C172Arms a) forall a. Ord a => C172Arms a -> C172Arms a -> Bool forall a. Ord a => C172Arms a -> C172Arms a -> Ordering forall a. Ord a => C172Arms a -> C172Arms a -> C172Arms a min :: C172Arms a -> C172Arms a -> C172Arms a $cmin :: forall a. Ord a => C172Arms a -> C172Arms a -> C172Arms a max :: C172Arms a -> C172Arms a -> C172Arms a $cmax :: forall a. Ord a => C172Arms a -> C172Arms a -> C172Arms a >= :: C172Arms a -> C172Arms a -> Bool $c>= :: forall a. Ord a => C172Arms a -> C172Arms a -> Bool > :: C172Arms a -> C172Arms a -> Bool $c> :: forall a. Ord a => C172Arms a -> C172Arms a -> Bool <= :: C172Arms a -> C172Arms a -> Bool $c<= :: forall a. Ord a => C172Arms a -> C172Arms a -> Bool < :: C172Arms a -> C172Arms a -> Bool $c< :: forall a. Ord a => C172Arms a -> C172Arms a -> Bool compare :: C172Arms a -> C172Arms a -> Ordering $ccompare :: forall a. Ord a => C172Arms a -> C172Arms a -> Ordering $cp1Ord :: forall a. Ord a => Eq (C172Arms a) Ord, Int -> C172Arms a -> ShowS [C172Arms a] -> ShowS C172Arms a -> String (Int -> C172Arms a -> ShowS) -> (C172Arms a -> String) -> ([C172Arms a] -> ShowS) -> Show (C172Arms a) forall a. Show a => Int -> C172Arms a -> ShowS forall a. Show a => [C172Arms a] -> ShowS forall a. Show a => C172Arms a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [C172Arms a] -> ShowS $cshowList :: forall a. Show a => [C172Arms a] -> ShowS show :: C172Arms a -> String $cshow :: forall a. Show a => C172Arms a -> String showsPrec :: Int -> C172Arms a -> ShowS $cshowsPrec :: forall a. Show a => Int -> C172Arms a -> ShowS Show) makeClassy ''C172Arms instance Functor C172Arms where fmap :: (a -> b) -> C172Arms a -> C172Arms b fmap a -> b k (C172Arms a t a r a f a a a b) = b -> b -> b -> b -> b -> C172Arms b forall a. a -> a -> a -> a -> a -> C172Arms a C172Arms (a -> b k a t) (a -> b k a r) (a -> b k a f) (a -> b k a a) (a -> b k a b) instance Applicative C172Arms where pure :: a -> C172Arms a pure a a = a -> a -> a -> a -> a -> C172Arms a forall a. a -> a -> a -> a -> a -> C172Arms a C172Arms a a a a a a a a a a C172Arms a -> b f1 a -> b f2 a -> b f3 a -> b f4 a -> b f5 <*> :: C172Arms (a -> b) -> C172Arms a -> C172Arms b <*> C172Arms a a1 a a2 a a3 a a4 a a5 = b -> b -> b -> b -> b -> C172Arms b forall a. a -> a -> a -> a -> a -> C172Arms a C172Arms (a -> b f1 a a1) (a -> b f2 a a2) (a -> b f3 a a3) (a -> b f4 a a4) (a -> b f5 a a5) instance Foldable C172Arms where foldr :: (a -> b -> b) -> b -> C172Arms a -> b foldr a -> b -> b k b z (C172Arms a t a r a f a a a b) = (a -> b -> b) -> b -> [a] -> b forall (t :: * -> *) a b. Foldable t => (a -> b -> b) -> b -> t a -> b foldr a -> b -> b k b z [a t,a r,a f,a a,a b] instance Traversable C172Arms where traverse :: (a -> f b) -> C172Arms a -> f (C172Arms b) traverse a -> f b k (C172Arms a t a r a f a a a b) = b -> b -> b -> b -> b -> C172Arms b forall a. a -> a -> a -> a -> a -> C172Arms a C172Arms (b -> b -> b -> b -> b -> C172Arms b) -> f b -> f (b -> b -> b -> b -> C172Arms b) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> a -> f b k a t f (b -> b -> b -> b -> C172Arms b) -> f b -> f (b -> b -> b -> C172Arms b) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> a -> f b k a r f (b -> b -> b -> C172Arms b) -> f b -> f (b -> b -> C172Arms b) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> a -> f b k a f f (b -> b -> C172Arms b) -> f b -> f (b -> C172Arms b) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> a -> f b k a a f (b -> C172Arms b) -> f b -> f (C172Arms b) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> a -> f b k a b c172ArmsPOH :: C172Arms Arm c172ArmsPOH :: C172Arms Arm c172ArmsPOH = Arm -> Arm -> Arm -> Arm -> Arm -> C172Arms Arm forall a. a -> a -> a -> a -> a -> C172Arms a C172Arms (ArmStatic -> ArmRange -> Arm rangeArm (Rational 37 Rational -> Getting ArmStatic Rational ArmStatic -> ArmStatic forall s a. s -> Getting a s a -> a ^. Getting ArmStatic Rational ArmStatic forall a. Inches a => Iso' Rational a inches) (Rational 34 Rational -> Getting ArmRangeLower Rational ArmRangeLower -> ArmRangeLower forall s a. s -> Getting a s a -> a ^. Getting ArmRangeLower Rational ArmRangeLower forall a. Inches a => Iso' Rational a inches ArmRangeLower -> ArmRangeUpper -> ArmRange .->. Rational 46 Rational -> Getting ArmRangeUpper Rational ArmRangeUpper -> ArmRangeUpper forall s a. s -> Getting a s a -> a ^. Getting ArmRangeUpper Rational ArmRangeUpper forall a. Inches a => Iso' Rational a inches)) (ArmStatic -> Arm staticArm (Rational 73 Rational -> Getting ArmStatic Rational ArmStatic -> ArmStatic forall s a. s -> Getting a s a -> a ^. Getting ArmStatic Rational ArmStatic forall a. Inches a => Iso' Rational a inches)) (ArmStatic -> Arm staticArm (Rational 48 Rational -> Getting ArmStatic Rational ArmStatic -> ArmStatic forall s a. s -> Getting a s a -> a ^. Getting ArmStatic Rational ArmStatic forall a. Inches a => Iso' Rational a inches)) (ArmStatic -> ArmRange -> Arm rangeArm (Rational 95 Rational -> Getting ArmStatic Rational ArmStatic -> ArmStatic forall s a. s -> Getting a s a -> a ^. Getting ArmStatic Rational ArmStatic forall a. Inches a => Iso' Rational a inches) (Rational 82 Rational -> Getting ArmRangeLower Rational ArmRangeLower -> ArmRangeLower forall s a. s -> Getting a s a -> a ^. Getting ArmRangeLower Rational ArmRangeLower forall a. Inches a => Iso' Rational a inches ArmRangeLower -> ArmRangeUpper -> ArmRange .->. Rational 108 Rational -> Getting ArmRangeUpper Rational ArmRangeUpper -> ArmRangeUpper forall s a. s -> Getting a s a -> a ^. Getting ArmRangeUpper Rational ArmRangeUpper forall a. Inches a => Iso' Rational a inches)) (ArmStatic -> ArmRange -> Arm rangeArm (Rational 123 Rational -> Getting ArmStatic Rational ArmStatic -> ArmStatic forall s a. s -> Getting a s a -> a ^. Getting ArmStatic Rational ArmStatic forall a. Inches a => Iso' Rational a inches) (Rational 108 Rational -> Getting ArmRangeLower Rational ArmRangeLower -> ArmRangeLower forall s a. s -> Getting a s a -> a ^. Getting ArmRangeLower Rational ArmRangeLower forall a. Inches a => Iso' Rational a inches ArmRangeLower -> ArmRangeUpper -> ArmRange .->. Rational 142 Rational -> Getting ArmRangeUpper Rational ArmRangeUpper -> ArmRangeUpper forall s a. s -> Getting a s a -> a ^. Getting ArmRangeUpper Rational ArmRangeUpper forall a. Inches a => Iso' Rational a inches))