module Termbox.Bindings.Hs.Internal.Color
  ( Tb_color
      ( Tb_color,
        TB_DEFAULT,
        TB_BLACK,
        TB_BLUE,
        TB_CYAN,
        TB_GREEN,
        TB_MAGENTA,
        TB_RED,
        TB_WHITE,
        TB_YELLOW
      ),
  )
where

import Data.Word (Word16)
import qualified Termbox.Bindings.C

-- | A color.
newtype Tb_color
  = Tb_color Word16
  deriving stock (Tb_color -> Tb_color -> Bool
(Tb_color -> Tb_color -> Bool)
-> (Tb_color -> Tb_color -> Bool) -> Eq Tb_color
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Tb_color -> Tb_color -> Bool
== :: Tb_color -> Tb_color -> Bool
$c/= :: Tb_color -> Tb_color -> Bool
/= :: Tb_color -> Tb_color -> Bool
Eq, Eq Tb_color
Eq Tb_color =>
(Tb_color -> Tb_color -> Ordering)
-> (Tb_color -> Tb_color -> Bool)
-> (Tb_color -> Tb_color -> Bool)
-> (Tb_color -> Tb_color -> Bool)
-> (Tb_color -> Tb_color -> Bool)
-> (Tb_color -> Tb_color -> Tb_color)
-> (Tb_color -> Tb_color -> Tb_color)
-> Ord Tb_color
Tb_color -> Tb_color -> Bool
Tb_color -> Tb_color -> Ordering
Tb_color -> Tb_color -> Tb_color
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 :: Tb_color -> Tb_color -> Ordering
compare :: Tb_color -> Tb_color -> Ordering
$c< :: Tb_color -> Tb_color -> Bool
< :: Tb_color -> Tb_color -> Bool
$c<= :: Tb_color -> Tb_color -> Bool
<= :: Tb_color -> Tb_color -> Bool
$c> :: Tb_color -> Tb_color -> Bool
> :: Tb_color -> Tb_color -> Bool
$c>= :: Tb_color -> Tb_color -> Bool
>= :: Tb_color -> Tb_color -> Bool
$cmax :: Tb_color -> Tb_color -> Tb_color
max :: Tb_color -> Tb_color -> Tb_color
$cmin :: Tb_color -> Tb_color -> Tb_color
min :: Tb_color -> Tb_color -> Tb_color
Ord)
  deriving newtype (Integer -> Tb_color
Tb_color -> Tb_color
Tb_color -> Tb_color -> Tb_color
(Tb_color -> Tb_color -> Tb_color)
-> (Tb_color -> Tb_color -> Tb_color)
-> (Tb_color -> Tb_color -> Tb_color)
-> (Tb_color -> Tb_color)
-> (Tb_color -> Tb_color)
-> (Tb_color -> Tb_color)
-> (Integer -> Tb_color)
-> Num Tb_color
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: Tb_color -> Tb_color -> Tb_color
+ :: Tb_color -> Tb_color -> Tb_color
$c- :: Tb_color -> Tb_color -> Tb_color
- :: Tb_color -> Tb_color -> Tb_color
$c* :: Tb_color -> Tb_color -> Tb_color
* :: Tb_color -> Tb_color -> Tb_color
$cnegate :: Tb_color -> Tb_color
negate :: Tb_color -> Tb_color
$cabs :: Tb_color -> Tb_color
abs :: Tb_color -> Tb_color
$csignum :: Tb_color -> Tb_color
signum :: Tb_color -> Tb_color
$cfromInteger :: Integer -> Tb_color
fromInteger :: Integer -> Tb_color
Num, Int -> Tb_color -> ShowS
[Tb_color] -> ShowS
Tb_color -> String
(Int -> Tb_color -> ShowS)
-> (Tb_color -> String) -> ([Tb_color] -> ShowS) -> Show Tb_color
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Tb_color -> ShowS
showsPrec :: Int -> Tb_color -> ShowS
$cshow :: Tb_color -> String
show :: Tb_color -> String
$cshowList :: [Tb_color] -> ShowS
showList :: [Tb_color] -> ShowS
Show)

pattern TB_DEFAULT :: Tb_color
pattern $mTB_DEFAULT :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_DEFAULT :: Tb_color
TB_DEFAULT <-
  ((== Tb_color Termbox.Bindings.C._TB_DEFAULT) -> True)
  where
    TB_DEFAULT = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_DEFAULT

pattern TB_BLACK :: Tb_color
pattern $mTB_BLACK :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_BLACK :: Tb_color
TB_BLACK <-
  ((== Tb_color Termbox.Bindings.C._TB_BLACK) -> True)
  where
    TB_BLACK = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_BLACK

pattern TB_BLUE :: Tb_color
pattern $mTB_BLUE :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_BLUE :: Tb_color
TB_BLUE <-
  ((== Tb_color Termbox.Bindings.C._TB_BLUE) -> True)
  where
    TB_BLUE = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_BLUE

pattern TB_CYAN :: Tb_color
pattern $mTB_CYAN :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_CYAN :: Tb_color
TB_CYAN <-
  ((== Tb_color Termbox.Bindings.C._TB_CYAN) -> True)
  where
    TB_CYAN = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_CYAN

pattern TB_GREEN :: Tb_color
pattern $mTB_GREEN :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_GREEN :: Tb_color
TB_GREEN <-
  ((== Tb_color Termbox.Bindings.C._TB_GREEN) -> True)
  where
    TB_GREEN = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_GREEN

pattern TB_MAGENTA :: Tb_color
pattern $mTB_MAGENTA :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_MAGENTA :: Tb_color
TB_MAGENTA <-
  ((== Tb_color Termbox.Bindings.C._TB_MAGENTA) -> True)
  where
    TB_MAGENTA = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_MAGENTA

pattern TB_RED :: Tb_color
pattern $mTB_RED :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_RED :: Tb_color
TB_RED <-
  ((== Tb_color Termbox.Bindings.C._TB_RED) -> True)
  where
    TB_RED = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_RED

pattern TB_WHITE :: Tb_color
pattern $mTB_WHITE :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_WHITE :: Tb_color
TB_WHITE <-
  ((== Tb_color Termbox.Bindings.C._TB_WHITE) -> True)
  where
    TB_WHITE = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_WHITE

pattern TB_YELLOW :: Tb_color
pattern $mTB_YELLOW :: forall {r}. Tb_color -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_YELLOW :: Tb_color
TB_YELLOW <-
  ((== Tb_color Termbox.Bindings.C._TB_YELLOW) -> True)
  where
    TB_YELLOW = Word16 -> Tb_color
Tb_color Word16
Termbox.Bindings.C._TB_YELLOW