    {-# LANGUAGE OverloadedStrings #-}

    {- |
       Module      : Data.GraphViz.Attributes.Colors.Brewer
       Description : Specification of Brewer colors.
       Copyright   : (c) Ivan Lazar Miljenovic
       License     : 3-Clause BSD-style
       Maintainer  : Ivan.Miljenovic@gmail.com

       You almost definitely do /not/ want to use this module.  It is only
       defined for completeness when parsing existing Dot code.

       Graphviz contains a list of colors known as the /Brewer color
       schemes/.

       These colors are available under an Apache-style license:
       <http://www.graphviz.org/doc/info/colors.html#brewer_license>.  As
       such, they are not recommended for general use, and have only been
       included in this package for completeness.

       The complete list of Brewer colors can be found at
       <http://www.graphviz.org/doc/info/colors.html#brewer>.

     -}
    module Data.GraphViz.Attributes.Colors.Brewer
        ( BrewerScheme(..)
        , BrewerName(..)
        , BrewerColor(..)
        ) where

    {-

     This is a virtual module designed just to re-export the Brewer colors.

     -}

    import Data.GraphViz.Attributes.ColorScheme(BrewerScheme(..), BrewerName(..))

    -- To get the instances
    import Data.GraphViz.Parsing()
    import Data.GraphViz.Printing()

    import Data.Word(Word8)

    -- -----------------------------------------------------------------------------

    -- Note: we do /not/ have {Print,Parse}Dot instances for this; it's covered in Color.

    -- | This value should be between @1@ and the level of the
    --   'BrewerScheme' being used.
    data BrewerColor = BC BrewerScheme Word8
                       deriving (BrewerColor -> BrewerColor -> Bool
    (BrewerColor -> BrewerColor -> Bool)
    -> (BrewerColor -> BrewerColor -> Bool) -> Eq BrewerColor
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: BrewerColor -> BrewerColor -> Bool
    == :: BrewerColor -> BrewerColor -> Bool
    $c/= :: BrewerColor -> BrewerColor -> Bool
    /= :: BrewerColor -> BrewerColor -> Bool
    Eq, Eq BrewerColor
    Eq BrewerColor =>
    (BrewerColor -> BrewerColor -> Ordering)
    -> (BrewerColor -> BrewerColor -> Bool)
    -> (BrewerColor -> BrewerColor -> Bool)
    -> (BrewerColor -> BrewerColor -> Bool)
    -> (BrewerColor -> BrewerColor -> Bool)
    -> (BrewerColor -> BrewerColor -> BrewerColor)
    -> (BrewerColor -> BrewerColor -> BrewerColor)
    -> Ord BrewerColor
    BrewerColor -> BrewerColor -> Bool
    BrewerColor -> BrewerColor -> Ordering
    BrewerColor -> BrewerColor -> BrewerColor
    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 :: BrewerColor -> BrewerColor -> Ordering
    compare :: BrewerColor -> BrewerColor -> Ordering
    $c< :: BrewerColor -> BrewerColor -> Bool
    < :: BrewerColor -> BrewerColor -> Bool
    $c<= :: BrewerColor -> BrewerColor -> Bool
    <= :: BrewerColor -> BrewerColor -> Bool
    $c> :: BrewerColor -> BrewerColor -> Bool
    > :: BrewerColor -> BrewerColor -> Bool
    $c>= :: BrewerColor -> BrewerColor -> Bool
    >= :: BrewerColor -> BrewerColor -> Bool
    $cmax :: BrewerColor -> BrewerColor -> BrewerColor
    max :: BrewerColor -> BrewerColor -> BrewerColor
    $cmin :: BrewerColor -> BrewerColor -> BrewerColor
    min :: BrewerColor -> BrewerColor -> BrewerColor
    Ord, Int -> BrewerColor -> ShowS
    [BrewerColor] -> ShowS
    BrewerColor -> String
    (Int -> BrewerColor -> ShowS)
    -> (BrewerColor -> String)
    -> ([BrewerColor] -> ShowS)
    -> Show BrewerColor
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> BrewerColor -> ShowS
    showsPrec :: Int -> BrewerColor -> ShowS
    $cshow :: BrewerColor -> String
    show :: BrewerColor -> String
    $cshowList :: [BrewerColor] -> ShowS
    showList :: [BrewerColor] -> ShowS
    Show, ReadPrec [BrewerColor]
    ReadPrec BrewerColor
    Int -> ReadS BrewerColor
    ReadS [BrewerColor]
    (Int -> ReadS BrewerColor)
    -> ReadS [BrewerColor]
    -> ReadPrec BrewerColor
    -> ReadPrec [BrewerColor]
    -> Read BrewerColor
    forall a.
    (Int -> ReadS a)
    -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
    $creadsPrec :: Int -> ReadS BrewerColor
    readsPrec :: Int -> ReadS BrewerColor
    $creadList :: ReadS [BrewerColor]
    readList :: ReadS [BrewerColor]
    $creadPrec :: ReadPrec BrewerColor
    readPrec :: ReadPrec BrewerColor
    $creadListPrec :: ReadPrec [BrewerColor]
    readListPrec :: ReadPrec [BrewerColor]
    Read)