    module Language.Haskell.HsColour.Output(TerminalType(..),Output(..)) where

    data TerminalType =
          Ansi16Colour -- ^ @\\033[Xm@-style escape sequences (with /X/ =~ [34][0-7])
        | XTerm256Compatible -- ^ 'Ansi16Colour', and also @\\033[Y8;5;Zm]@-style escape sequences (with /Y/ =~ [3,4] and /Z/ an integer in [0,255] with the XTerm colour cube semantics).
        deriving (Int -> TerminalType -> ShowS
    [TerminalType] -> ShowS
    TerminalType -> String
    (Int -> TerminalType -> ShowS)
    -> (TerminalType -> String)
    -> ([TerminalType] -> ShowS)
    -> Show TerminalType
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> TerminalType -> ShowS
    showsPrec :: Int -> TerminalType -> ShowS
    $cshow :: TerminalType -> String
    show :: TerminalType -> String
    $cshowList :: [TerminalType] -> ShowS
    showList :: [TerminalType] -> ShowS
    Show,TerminalType -> TerminalType -> Bool
    (TerminalType -> TerminalType -> Bool)
    -> (TerminalType -> TerminalType -> Bool) -> Eq TerminalType
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: TerminalType -> TerminalType -> Bool
    == :: TerminalType -> TerminalType -> Bool
    $c/= :: TerminalType -> TerminalType -> Bool
    /= :: TerminalType -> TerminalType -> Bool
    Eq,Eq TerminalType
    Eq TerminalType =>
    (TerminalType -> TerminalType -> Ordering)
    -> (TerminalType -> TerminalType -> Bool)
    -> (TerminalType -> TerminalType -> Bool)
    -> (TerminalType -> TerminalType -> Bool)
    -> (TerminalType -> TerminalType -> Bool)
    -> (TerminalType -> TerminalType -> TerminalType)
    -> (TerminalType -> TerminalType -> TerminalType)
    -> Ord TerminalType
    TerminalType -> TerminalType -> Bool
    TerminalType -> TerminalType -> Ordering
    TerminalType -> TerminalType -> TerminalType
    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 :: TerminalType -> TerminalType -> Ordering
    compare :: TerminalType -> TerminalType -> Ordering
    $c< :: TerminalType -> TerminalType -> Bool
    < :: TerminalType -> TerminalType -> Bool
    $c<= :: TerminalType -> TerminalType -> Bool
    <= :: TerminalType -> TerminalType -> Bool
    $c> :: TerminalType -> TerminalType -> Bool
    > :: TerminalType -> TerminalType -> Bool
    $c>= :: TerminalType -> TerminalType -> Bool
    >= :: TerminalType -> TerminalType -> Bool
    $cmax :: TerminalType -> TerminalType -> TerminalType
    max :: TerminalType -> TerminalType -> TerminalType
    $cmin :: TerminalType -> TerminalType -> TerminalType
    min :: TerminalType -> TerminalType -> TerminalType
    Ord)

    -- | The supported output formats.
    data Output = TTY   -- ^ ANSI terminal codes. Equivalent to 'TTYg' 'Ansi16Colour' but left in for backwards compatibility.
                | TTYg TerminalType -- ^ Terminal codes appropriate for the 'TerminalType'.
                | LaTeX -- ^ TeX macros
                | HTML  -- ^ HTML with font tags
                | CSS   -- ^ HTML with CSS.
                | ACSS  -- ^ HTML with CSS and mouseover types.
                | ICSS  -- ^ HTML with inline CSS.
                | MIRC  -- ^ mIRC chat clients
      deriving (Output -> Output -> Bool
    (Output -> Output -> Bool)
    -> (Output -> Output -> Bool) -> Eq Output
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Output -> Output -> Bool
    == :: Output -> Output -> Bool
    $c/= :: Output -> Output -> Bool
    /= :: Output -> Output -> Bool
    Eq,Int -> Output -> ShowS
    [Output] -> ShowS
    Output -> String
    (Int -> Output -> ShowS)
    -> (Output -> String) -> ([Output] -> ShowS) -> Show Output
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Output -> ShowS
    showsPrec :: Int -> Output -> ShowS
    $cshow :: Output -> String
    show :: Output -> String
    $cshowList :: [Output] -> ShowS
    showList :: [Output] -> ShowS
    Show)