module System.Console.ANSI.Common where
import Data.Ix
data Color = Black
           | Red
           | Green
           | Yellow
           | Blue
           | Magenta
           | Cyan
           | White
           deriving (Eq, Ord, Bounded, Enum, Show, Read, Ix)
data ColorIntensity = Dull
                    | Vivid
                    deriving (Eq, Ord, Bounded, Enum, Show, Read, Ix)
data ConsoleLayer = Foreground
                  | Background
                  deriving (Eq, Ord, Bounded, Enum, Show, Read, Ix)
data BlinkSpeed = SlowBlink 
                | RapidBlink 
                | NoBlink
                deriving (Eq, Ord, Bounded, Enum, Show, Read, Ix)
data Underlining = SingleUnderline
                 | DoubleUnderline 
                 | NoUnderline
                 deriving (Eq, Ord, Bounded ,Enum, Show, Read, Ix)
data ConsoleIntensity = BoldIntensity
                      | FaintIntensity 
                      | NormalIntensity
                      deriving (Eq, Ord, Bounded, Enum, Show, Read, Ix)
data SGR = Reset
         | SetConsoleIntensity ConsoleIntensity
         | SetItalicized Bool 
         | SetUnderlining Underlining
         | SetBlinkSpeed BlinkSpeed
         | SetVisible Bool 
         | SetSwapForegroundBackground Bool
         | SetColor ConsoleLayer ColorIntensity Color
         deriving (Eq, Ord, Show, Read)