{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}

module Data.Aviation.Casr.Logbook.Types.Engine(
  Engine(..)
, AsEngine(..)
) where

import Control.Lens(makeClassyPrisms)
import Data.Eq(Eq)
import Data.Ord(Ord)
import Prelude(Show)

data Engine =
  Single
  | Multi
  deriving (Engine -> Engine -> Bool
(Engine -> Engine -> Bool)
-> (Engine -> Engine -> Bool) -> Eq Engine
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Engine -> Engine -> Bool
== :: Engine -> Engine -> Bool
$c/= :: Engine -> Engine -> Bool
/= :: Engine -> Engine -> Bool
Eq, Eq Engine
Eq Engine =>
(Engine -> Engine -> Ordering)
-> (Engine -> Engine -> Bool)
-> (Engine -> Engine -> Bool)
-> (Engine -> Engine -> Bool)
-> (Engine -> Engine -> Bool)
-> (Engine -> Engine -> Engine)
-> (Engine -> Engine -> Engine)
-> Ord Engine
Engine -> Engine -> Bool
Engine -> Engine -> Ordering
Engine -> Engine -> Engine
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 :: Engine -> Engine -> Ordering
compare :: Engine -> Engine -> Ordering
$c< :: Engine -> Engine -> Bool
< :: Engine -> Engine -> Bool
$c<= :: Engine -> Engine -> Bool
<= :: Engine -> Engine -> Bool
$c> :: Engine -> Engine -> Bool
> :: Engine -> Engine -> Bool
$c>= :: Engine -> Engine -> Bool
>= :: Engine -> Engine -> Bool
$cmax :: Engine -> Engine -> Engine
max :: Engine -> Engine -> Engine
$cmin :: Engine -> Engine -> Engine
min :: Engine -> Engine -> Engine
Ord, Int -> Engine -> ShowS
[Engine] -> ShowS
Engine -> String
(Int -> Engine -> ShowS)
-> (Engine -> String) -> ([Engine] -> ShowS) -> Show Engine
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Engine -> ShowS
showsPrec :: Int -> Engine -> ShowS
$cshow :: Engine -> String
show :: Engine -> String
$cshowList :: [Engine] -> ShowS
showList :: [Engine] -> ShowS
Show)

makeClassyPrisms ''Engine