graphviz-2999.7.0.0: Data/GraphViz/Attributes/Colors.hs
{- |
Module : Data.GraphViz.Attributes.Colors
Description : Helper functions for converting to Dot format.
Copyright : (c) Ivan Lazar Miljenovic
License : 3-Clause BSD-style
Maintainer : Ivan.Miljenovic@gmail.com
This module defines the various colors, etc. for Graphviz. For
information on colors in general, see:
<http://graphviz.org/doc/info/attrs.html#k:color>
For named colors, see:
<http://graphviz.org/doc/info/colors.html>
Note that the ColorBrewer Color Schemes (shortened to just
\"Brewer\" for the rest of this module) are covered by the
following license (also available in the LICENSE file of this
library):
<http://graphviz.org/doc/info/colors.html#brewer_license>
When parsing and printing 'Color' values (more specifically, the
Brewer color values), the actual 'ColorScheme' being used isn't
taken into account. Also, the \"@\/foo\/bar@\" style of overriding
the 'ColorScheme' being used isn't supported for parsing purposes
(and will result in a parsing failure).
-}
module Data.GraphViz.Attributes.Colors
( -- * Color schemes.
ColorScheme(..)
, BrewerName(..)
-- * Colors
, Color(..)
, X11Color(..)
-- * Conversion to\/from @Colour@.
, toColour
, x11Colour
, fromColour
, fromAColour
) where
import Data.GraphViz.Types.Parsing
import Data.GraphViz.Types.Printing
import Data.Colour( AlphaColour, opaque, transparent, withOpacity
, over, black, alphaChannel, darken)
import Data.Colour.SRGB(Colour, sRGB, sRGB24, toSRGB24)
import Data.Colour.RGBSpace(uncurryRGB)
import Data.Colour.RGBSpace.HSV(hsv)
import Data.Char(isHexDigit)
import Numeric(showHex, readHex)
import Data.Word(Word8)
import Control.Monad(liftM, liftM2)
-- -----------------------------------------------------------------------------
-- | This represents the color schemes that Graphviz accepts. As
-- mentioned above, these are /not/ used for actual parsing or
-- printing.
data ColorScheme = X11
| BrewerScheme BrewerName Word8 -- ^ The value of the
-- scheme number
-- depends on
-- the name.
deriving (Eq, Ord, Show, Read)
instance PrintDot ColorScheme where
unqtDot X11 = unqtDot "X11"
unqtDot (BrewerScheme n l) = unqtDot n <> unqtDot l
instance ParseDot ColorScheme where
parseUnqt = stringRep X11 "X11"
`onFail`
liftM2 BrewerScheme parseUnqt parseUnqt
-- | All of these have a minimum level value of @3@, with a maximum
-- of @9@ unless otherwise specified.
data BrewerName = Accent -- ^ Maximum of @8@.
| Blues
| Brbg -- ^ Maximum of @11@.
| Bugn
| Bupu
| Dark2 -- ^ Maximum of @8@.
| Gnbu
| Greens
| Greys
| Oranges
| Orrd
| Paired -- ^ Maximum of @12@.
| Pastel1
| Pastel2 -- ^ Maximum of @8@.
| Piyg -- ^ Maximum of @11@.
| Prgn -- ^ Maximum of @11@.
| Pubu
| Pubugn
| Puor -- ^ Maximum of @11@; note that the last two are listed
-- after the @'Purd'@ values in the
-- documentation.
| Purd
| Purples
| Rdbu -- ^ Maximum of @11@; note that the last two are listed
-- first.
| Rdgy -- ^ Maximum of @11@; note that the last two are listed
-- after the @'Rdpu'@ values in the
-- documentation.
| Rdpu
| Rdylbu -- ^ Maximum of @11@.
| Rdylgn -- ^ Maximum of @11@.
| Reds
| Set1
| Set2 -- ^ Maximum of @8@.
| Set3 -- ^ Maximum of @12@.
| Spectral -- ^ Maximum of @11@.
| Ylgn
| Ylgnbu
| Ylorbr
| Ylorrd
deriving (Eq, Ord, Bounded, Enum, Show, Read)
instance PrintDot BrewerName where
unqtDot Accent = unqtDot "accent"
unqtDot Blues = unqtDot "blues"
unqtDot Brbg = unqtDot "brbg"
unqtDot Bugn = unqtDot "bugn"
unqtDot Bupu = unqtDot "bupu"
unqtDot Dark2 = unqtDot "dark2"
unqtDot Gnbu = unqtDot "gnbu"
unqtDot Greens = unqtDot "greens"
unqtDot Greys = unqtDot "greys"
unqtDot Oranges = unqtDot "oranges"
unqtDot Orrd = unqtDot "orrd"
unqtDot Paired = unqtDot "paired"
unqtDot Pastel1 = unqtDot "pastel1"
unqtDot Pastel2 = unqtDot "pastel2"
unqtDot Piyg = unqtDot "piyg"
unqtDot Prgn = unqtDot "prgn"
unqtDot Pubu = unqtDot "pubu"
unqtDot Pubugn = unqtDot "pubugn"
unqtDot Puor = unqtDot "puor"
unqtDot Purd = unqtDot "purd"
unqtDot Purples = unqtDot "purples"
unqtDot Rdbu = unqtDot "rdbu"
unqtDot Rdgy = unqtDot "rdgy"
unqtDot Rdpu = unqtDot "rdpu"
unqtDot Rdylbu = unqtDot "rdylbu"
unqtDot Rdylgn = unqtDot "rdylgn"
unqtDot Reds = unqtDot "reds"
unqtDot Set1 = unqtDot "set1"
unqtDot Set2 = unqtDot "set2"
unqtDot Set3 = unqtDot "set3"
unqtDot Spectral = unqtDot "spectral"
unqtDot Ylgn = unqtDot "ylgn"
unqtDot Ylgnbu = unqtDot "ylgnbu"
unqtDot Ylorbr = unqtDot "ylorbr"
unqtDot Ylorrd = unqtDot "ylorrd"
instance ParseDot BrewerName where
-- The order is different from above to make sure longer names are
-- parsed first.
parseUnqt = oneOf [ stringRep Accent "accent"
, stringRep Blues "blues"
, stringRep Brbg "brbg"
, stringRep Bugn "bugn"
, stringRep Bupu "bupu"
, stringRep Dark2 "dark2"
, stringRep Gnbu "gnbu"
, stringRep Greens "greens"
, stringRep Greys "greys"
, stringRep Oranges "oranges"
, stringRep Orrd "orrd"
, stringRep Paired "paired"
, stringRep Pastel1 "pastel1"
, stringRep Pastel2 "pastel2"
, stringRep Piyg "piyg"
, stringRep Prgn "prgn"
, stringRep Pubugn "pubugn"
, stringRep Pubu "pubu"
, stringRep Puor "puor"
, stringRep Purd "purd"
, stringRep Purples "purples"
, stringRep Rdbu "rdbu"
, stringRep Rdgy "rdgy"
, stringRep Rdpu "rdpu"
, stringRep Rdylbu "rdylbu"
, stringRep Rdylgn "rdylgn"
, stringRep Reds "reds"
, stringRep Set1 "set1"
, stringRep Set2 "set2"
, stringRep Set3 "set3"
, stringRep Spectral "spectral"
, stringRep Ylgnbu "ylgnbu"
, stringRep Ylgn "ylgn"
, stringRep Ylorbr "ylorbr"
, stringRep Ylorrd "ylorrd"
]
-- -----------------------------------------------------------------------------
-- | Defining a color for use with Graphviz. Note that named colors
-- have been split up into 'X11Color's and those based upon the
-- Brewer color schemes.
data Color = RGB { red :: Word8
, green :: Word8
, blue :: Word8
}
| RGBA { red :: Word8
, green :: Word8
, blue :: Word8
, alpha :: Word8
}
-- | The 'hue', 'saturation' and 'value' values must all
-- be @0 <= x <=1@.
| HSV { hue :: Double
, saturation :: Double
, value :: Double
}
| X11Color X11Color
| BrewerColor Word8 -- ^ This value should be between @1@
-- and the level of the 'BrewerName'
-- being used.
deriving (Eq, Ord, Show, Read)
instance PrintDot Color where
unqtDot (RGB r g b) = hexColor [r,g,b]
unqtDot (RGBA r g b a) = hexColor [r,g,b,a]
unqtDot (HSV h s v) = hcat . punctuate comma $ map unqtDot [h,s,v]
unqtDot (X11Color name) = unqtDot name
unqtDot (BrewerColor n) = unqtDot n
toDot (X11Color name) = toDot name
toDot (BrewerColor n) = toDot n
toDot c = doubleQuotes $ unqtDot c
unqtListToDot = hcat . punctuate colon . map unqtDot
-- These two don't need to be quoted if they're on their own.
listToDot [X11Color name] = toDot name
listToDot [BrewerColor n] = toDot n
listToDot cs = doubleQuotes $ unqtListToDot cs
hexColor :: [Word8] -> DotCode
hexColor = (<>) (char '#') . hcat . map word8Doc
word8Doc :: Word8 -> DotCode
word8Doc w = text $ padding ++ simple
where
simple = showHex w ""
padding = replicate count '0'
count = 2 - findCols 1 w
findCols :: Int -> Word8 -> Int
findCols c n
| n < 16 = c
| otherwise = findCols (c+1) (n `div` 16)
instance ParseDot Color where
parseUnqt = oneOf [ parseHexBased
, parseHSV
, liftM X11Color parseUnqt
, liftM BrewerColor parseUnqt
]
where
parseHexBased
= do character '#'
cs <- many1 parse2Hex
return $ case cs of
[r,g,b] -> RGB r g b
[r,g,b,a] -> RGBA r g b a
_ -> error $ "Not a valid hex Color specification: "
++ show cs
parseHSV = do h <- parse
parseSep
s <- parse
parseSep
v <- parse
return $ HSV h s v
parseSep = oneOf [ string ","
, whitespace
]
parse2Hex = do c1 <- satisfy isHexDigit
c2 <- satisfy isHexDigit
let [(n, [])] = readHex [c1, c2]
return n
parse = quotedParse parseUnqt
`onFail` -- These two can be unquoted
oneOf [ liftM X11Color parseUnqt
, liftM BrewerColor parseUnqt
]
parseUnqtList = sepBy1 parseUnqt (character ':')
parseList = liftM return
-- Unquoted single color
(oneOf [ liftM X11Color parseUnqt
, liftM BrewerColor parseUnqt
]
)
`onFail`
quotedParse parseUnqtList
-- -----------------------------------------------------------------------------
-- | The X11 colors that Graphviz uses. Note that these are slightly
-- different from the \"normal\" X11 colors used (e.g. the inclusion
-- of @Crimson@). Graphviz's list of colors also duplicated almost
-- all @Gray@ colors with @Grey@ ones; parsing of an 'X11Color'
-- which is specified using \"grey\" will succeed, even for those
-- that don't have the duplicate spelling (e.g. @DarkSlateGray1@).
data X11Color = AliceBlue
| AntiqueWhite
| AntiqueWhite1
| AntiqueWhite2
| AntiqueWhite3
| AntiqueWhite4
| Aquamarine
| Aquamarine1
| Aquamarine2
| Aquamarine3
| Aquamarine4
| Azure
| Azure1
| Azure2
| Azure3
| Azure4
| Beige
| Bisque
| Bisque1
| Bisque2
| Bisque3
| Bisque4
| Black
| BlanchedAlmond
| Blue
| Blue1
| Blue2
| Blue3
| Blue4
| BlueViolet
| Brown
| Brown1
| Brown2
| Brown3
| Brown4
| Burlywood
| Burlywood1
| Burlywood2
| Burlywood3
| Burlywood4
| CadetBlue
| CadetBlue1
| CadetBlue2
| CadetBlue3
| CadetBlue4
| Chartreuse
| Chartreuse1
| Chartreuse2
| Chartreuse3
| Chartreuse4
| Chocolate
| Chocolate1
| Chocolate2
| Chocolate3
| Chocolate4
| Coral
| Coral1
| Coral2
| Coral3
| Coral4
| CornFlowerBlue
| CornSilk
| CornSilk1
| CornSilk2
| CornSilk3
| CornSilk4
| Crimson
| Cyan
| Cyan1
| Cyan2
| Cyan3
| Cyan4
| DarkGoldenrod
| DarkGoldenrod1
| DarkGoldenrod2
| DarkGoldenrod3
| DarkGoldenrod4
| DarkGreen
| Darkkhaki
| DarkOliveGreen
| DarkOliveGreen1
| DarkOliveGreen2
| DarkOliveGreen3
| DarkOliveGreen4
| DarkOrange
| DarkOrange1
| DarkOrange2
| DarkOrange3
| DarkOrange4
| DarkOrchid
| DarkOrchid1
| DarkOrchid2
| DarkOrchid3
| DarkOrchid4
| DarkSalmon
| DarkSeaGreen
| DarkSeaGreen1
| DarkSeaGreen2
| DarkSeaGreen3
| DarkSeaGreen4
| DarkSlateBlue
| DarkSlateGray
| DarkSlateGray1
| DarkSlateGray2
| DarkSlateGray3
| DarkSlateGray4
| DarkTurquoise
| DarkViolet
| DeepPink
| DeepPink1
| DeepPink2
| DeepPink3
| DeepPink4
| DeepSkyBlue
| DeepSkyBlue1
| DeepSkyBlue2
| DeepSkyBlue3
| DeepSkyBlue4
| DimGray
| DodgerBlue
| DodgerBlue1
| DodgerBlue2
| DodgerBlue3
| DodgerBlue4
| Firebrick
| Firebrick1
| Firebrick2
| Firebrick3
| Firebrick4
| FloralWhite
| ForestGreen
| Gainsboro
| GhostWhite
| Gold
| Gold1
| Gold2
| Gold3
| Gold4
| Goldenrod
| Goldenrod1
| Goldenrod2
| Goldenrod3
| Goldenrod4
| Gray
| Gray0
| Gray1
| Gray2
| Gray3
| Gray4
| Gray5
| Gray6
| Gray7
| Gray8
| Gray9
| Gray10
| Gray11
| Gray12
| Gray13
| Gray14
| Gray15
| Gray16
| Gray17
| Gray18
| Gray19
| Gray20
| Gray21
| Gray22
| Gray23
| Gray24
| Gray25
| Gray26
| Gray27
| Gray28
| Gray29
| Gray30
| Gray31
| Gray32
| Gray33
| Gray34
| Gray35
| Gray36
| Gray37
| Gray38
| Gray39
| Gray40
| Gray41
| Gray42
| Gray43
| Gray44
| Gray45
| Gray46
| Gray47
| Gray48
| Gray49
| Gray50
| Gray51
| Gray52
| Gray53
| Gray54
| Gray55
| Gray56
| Gray57
| Gray58
| Gray59
| Gray60
| Gray61
| Gray62
| Gray63
| Gray64
| Gray65
| Gray66
| Gray67
| Gray68
| Gray69
| Gray70
| Gray71
| Gray72
| Gray73
| Gray74
| Gray75
| Gray76
| Gray77
| Gray78
| Gray79
| Gray80
| Gray81
| Gray82
| Gray83
| Gray84
| Gray85
| Gray86
| Gray87
| Gray88
| Gray89
| Gray90
| Gray91
| Gray92
| Gray93
| Gray94
| Gray95
| Gray96
| Gray97
| Gray98
| Gray99
| Gray100
| Green
| Green1
| Green2
| Green3
| Green4
| GreenYellow
| HoneyDew
| HoneyDew1
| HoneyDew2
| HoneyDew3
| HoneyDew4
| HotPink
| HotPink1
| HotPink2
| HotPink3
| HotPink4
| IndianRed
| IndianRed1
| IndianRed2
| IndianRed3
| IndianRed4
| Indigo
| Ivory
| Ivory1
| Ivory2
| Ivory3
| Ivory4
| Khaki
| Khaki1
| Khaki2
| Khaki3
| Khaki4
| Lavender
| LavenderBlush
| LavenderBlush1
| LavenderBlush2
| LavenderBlush3
| LavenderBlush4
| LawnGreen
| LemonChiffon
| LemonChiffon1
| LemonChiffon2
| LemonChiffon3
| LemonChiffon4
| LightBlue
| LightBlue1
| LightBlue2
| LightBlue3
| LightBlue4
| LightCoral
| LightCyan
| LightCyan1
| LightCyan2
| LightCyan3
| LightCyan4
| LightGoldenrod
| LightGoldenrod1
| LightGoldenrod2
| LightGoldenrod3
| LightGoldenrod4
| LightGoldenrodYellow
| LightGray
| LightPink
| LightPink1
| LightPink2
| LightPink3
| LightPink4
| LightSalmon
| LightSalmon1
| LightSalmon2
| LightSalmon3
| LightSalmon4
| LightSeaGreen
| LightSkyBlue
| LightSkyBlue1
| LightSkyBlue2
| LightSkyBlue3
| LightSkyBlue4
| LightSlateBlue
| LightSlateGray
| LightSteelBlue
| LightSteelBlue1
| LightSteelBlue2
| LightSteelBlue3
| LightSteelBlue4
| LightYellow
| LightYellow1
| LightYellow2
| LightYellow3
| LightYellow4
| LimeGreen
| Linen
| Magenta
| Magenta1
| Magenta2
| Magenta3
| Magenta4
| Maroon
| Maroon1
| Maroon2
| Maroon3
| Maroon4
| MediumAquamarine
| MediumBlue
| MediumOrchid
| MediumOrchid1
| MediumOrchid2
| MediumOrchid3
| MediumOrchid4
| MediumPurple
| MediumPurple1
| MediumPurple2
| MediumPurple3
| MediumPurple4
| MediumSeaGreen
| MediumSlateBlue
| MediumSpringGreen
| MediumTurquoise
| MediumVioletRed
| MidnightBlue
| MintCream
| MistyRose
| MistyRose1
| MistyRose2
| MistyRose3
| MistyRose4
| Moccasin
| NavajoWhite
| NavajoWhite1
| NavajoWhite2
| NavajoWhite3
| NavajoWhite4
| Navy
| NavyBlue
| OldLace
| OliveDrab
| OliveDrab1
| OliveDrab2
| OliveDrab3
| OliveDrab4
| Orange
| Orange1
| Orange2
| Orange3
| Orange4
| OrangeRed
| OrangeRed1
| OrangeRed2
| OrangeRed3
| OrangeRed4
| Orchid
| Orchid1
| Orchid2
| Orchid3
| Orchid4
| PaleGoldenrod
| PaleGreen
| PaleGreen1
| PaleGreen2
| PaleGreen3
| PaleGreen4
| PaleTurquoise
| PaleTurquoise1
| PaleTurquoise2
| PaleTurquoise3
| PaleTurquoise4
| PaleVioletRed
| PaleVioletRed1
| PaleVioletRed2
| PaleVioletRed3
| PaleVioletRed4
| PapayaWhip
| PeachPuff
| PeachPuff1
| PeachPuff2
| PeachPuff3
| PeachPuff4
| Peru
| Pink
| Pink1
| Pink2
| Pink3
| Pink4
| Plum
| Plum1
| Plum2
| Plum3
| Plum4
| PowderBlue
| Purple
| Purple1
| Purple2
| Purple3
| Purple4
| Red
| Red1
| Red2
| Red3
| Red4
| RosyBrown
| RosyBrown1
| RosyBrown2
| RosyBrown3
| RosyBrown4
| RoyalBlue
| RoyalBlue1
| RoyalBlue2
| RoyalBlue3
| RoyalBlue4
| SaddleBrown
| Salmon
| Salmon1
| Salmon2
| Salmon3
| Salmon4
| SandyBrown
| SeaGreen
| SeaGreen1
| SeaGreen2
| SeaGreen3
| SeaGreen4
| SeaShell
| SeaShell1
| SeaShell2
| SeaShell3
| SeaShell4
| Sienna
| Sienna1
| Sienna2
| Sienna3
| Sienna4
| SkyBlue
| SkyBlue1
| SkyBlue2
| SkyBlue3
| SkyBlue4
| SlateBlue
| SlateBlue1
| SlateBlue2
| SlateBlue3
| SlateBlue4
| SlateGray
| SlateGray1
| SlateGray2
| SlateGray3
| SlateGray4
| Snow
| Snow1
| Snow2
| Snow3
| Snow4
| SpringGreen
| SpringGreen1
| SpringGreen2
| SpringGreen3
| SpringGreen4
| SteelBlue
| SteelBlue1
| SteelBlue2
| SteelBlue3
| SteelBlue4
| Tan
| Tan1
| Tan2
| Tan3
| Tan4
| Thistle
| Thistle1
| Thistle2
| Thistle3
| Thistle4
| Tomato
| Tomato1
| Tomato2
| Tomato3
| Tomato4
| Transparent -- ^ Equivalent to setting @Style [SItem Invisible []]@.
| Turquoise
| Turquoise1
| Turquoise2
| Turquoise3
| Turquoise4
| Violet
| VioletRed
| VioletRed1
| VioletRed2
| VioletRed3
| VioletRed4
| Wheat
| Wheat1
| Wheat2
| Wheat3
| Wheat4
| White
| WhiteSmoke
| Yellow
| Yellow1
| Yellow2
| Yellow3
| Yellow4
| YellowGreen
deriving (Eq, Ord, Bounded, Enum, Show, Read)
instance PrintDot X11Color where
unqtDot AliceBlue = unqtDot "aliceblue"
unqtDot AntiqueWhite = unqtDot "antiquewhite"
unqtDot AntiqueWhite1 = unqtDot "antiquewhite1"
unqtDot AntiqueWhite2 = unqtDot "antiquewhite2"
unqtDot AntiqueWhite3 = unqtDot "antiquewhite3"
unqtDot AntiqueWhite4 = unqtDot "antiquewhite4"
unqtDot Aquamarine = unqtDot "aquamarine"
unqtDot Aquamarine1 = unqtDot "aquamarine1"
unqtDot Aquamarine2 = unqtDot "aquamarine2"
unqtDot Aquamarine3 = unqtDot "aquamarine3"
unqtDot Aquamarine4 = unqtDot "aquamarine4"
unqtDot Azure = unqtDot "azure"
unqtDot Azure1 = unqtDot "azure1"
unqtDot Azure2 = unqtDot "azure2"
unqtDot Azure3 = unqtDot "azure3"
unqtDot Azure4 = unqtDot "azure4"
unqtDot Beige = unqtDot "beige"
unqtDot Bisque = unqtDot "bisque"
unqtDot Bisque1 = unqtDot "bisque1"
unqtDot Bisque2 = unqtDot "bisque2"
unqtDot Bisque3 = unqtDot "bisque3"
unqtDot Bisque4 = unqtDot "bisque4"
unqtDot Black = unqtDot "black"
unqtDot BlanchedAlmond = unqtDot "blanchedalmond"
unqtDot Blue = unqtDot "blue"
unqtDot Blue1 = unqtDot "blue1"
unqtDot Blue2 = unqtDot "blue2"
unqtDot Blue3 = unqtDot "blue3"
unqtDot Blue4 = unqtDot "blue4"
unqtDot BlueViolet = unqtDot "blueviolet"
unqtDot Brown = unqtDot "brown"
unqtDot Brown1 = unqtDot "brown1"
unqtDot Brown2 = unqtDot "brown2"
unqtDot Brown3 = unqtDot "brown3"
unqtDot Brown4 = unqtDot "brown4"
unqtDot Burlywood = unqtDot "burlywood"
unqtDot Burlywood1 = unqtDot "burlywood1"
unqtDot Burlywood2 = unqtDot "burlywood2"
unqtDot Burlywood3 = unqtDot "burlywood3"
unqtDot Burlywood4 = unqtDot "burlywood4"
unqtDot CadetBlue = unqtDot "cadetblue"
unqtDot CadetBlue1 = unqtDot "cadetblue1"
unqtDot CadetBlue2 = unqtDot "cadetblue2"
unqtDot CadetBlue3 = unqtDot "cadetblue3"
unqtDot CadetBlue4 = unqtDot "cadetblue4"
unqtDot Chartreuse = unqtDot "chartreuse"
unqtDot Chartreuse1 = unqtDot "chartreuse1"
unqtDot Chartreuse2 = unqtDot "chartreuse2"
unqtDot Chartreuse3 = unqtDot "chartreuse3"
unqtDot Chartreuse4 = unqtDot "chartreuse4"
unqtDot Chocolate = unqtDot "chocolate"
unqtDot Chocolate1 = unqtDot "chocolate1"
unqtDot Chocolate2 = unqtDot "chocolate2"
unqtDot Chocolate3 = unqtDot "chocolate3"
unqtDot Chocolate4 = unqtDot "chocolate4"
unqtDot Coral = unqtDot "coral"
unqtDot Coral1 = unqtDot "coral1"
unqtDot Coral2 = unqtDot "coral2"
unqtDot Coral3 = unqtDot "coral3"
unqtDot Coral4 = unqtDot "coral4"
unqtDot CornFlowerBlue = unqtDot "cornflowerblue"
unqtDot CornSilk = unqtDot "cornsilk"
unqtDot CornSilk1 = unqtDot "cornsilk1"
unqtDot CornSilk2 = unqtDot "cornsilk2"
unqtDot CornSilk3 = unqtDot "cornsilk3"
unqtDot CornSilk4 = unqtDot "cornsilk4"
unqtDot Crimson = unqtDot "crimson"
unqtDot Cyan = unqtDot "cyan"
unqtDot Cyan1 = unqtDot "cyan1"
unqtDot Cyan2 = unqtDot "cyan2"
unqtDot Cyan3 = unqtDot "cyan3"
unqtDot Cyan4 = unqtDot "cyan4"
unqtDot DarkGoldenrod = unqtDot "darkgoldenrod"
unqtDot DarkGoldenrod1 = unqtDot "darkgoldenrod1"
unqtDot DarkGoldenrod2 = unqtDot "darkgoldenrod2"
unqtDot DarkGoldenrod3 = unqtDot "darkgoldenrod3"
unqtDot DarkGoldenrod4 = unqtDot "darkgoldenrod4"
unqtDot DarkGreen = unqtDot "darkgreen"
unqtDot Darkkhaki = unqtDot "darkkhaki"
unqtDot DarkOliveGreen = unqtDot "darkolivegreen"
unqtDot DarkOliveGreen1 = unqtDot "darkolivegreen1"
unqtDot DarkOliveGreen2 = unqtDot "darkolivegreen2"
unqtDot DarkOliveGreen3 = unqtDot "darkolivegreen3"
unqtDot DarkOliveGreen4 = unqtDot "darkolivegreen4"
unqtDot DarkOrange = unqtDot "darkorange"
unqtDot DarkOrange1 = unqtDot "darkorange1"
unqtDot DarkOrange2 = unqtDot "darkorange2"
unqtDot DarkOrange3 = unqtDot "darkorange3"
unqtDot DarkOrange4 = unqtDot "darkorange4"
unqtDot DarkOrchid = unqtDot "darkorchid"
unqtDot DarkOrchid1 = unqtDot "darkorchid1"
unqtDot DarkOrchid2 = unqtDot "darkorchid2"
unqtDot DarkOrchid3 = unqtDot "darkorchid3"
unqtDot DarkOrchid4 = unqtDot "darkorchid4"
unqtDot DarkSalmon = unqtDot "darksalmon"
unqtDot DarkSeaGreen = unqtDot "darkseagreen"
unqtDot DarkSeaGreen1 = unqtDot "darkseagreen1"
unqtDot DarkSeaGreen2 = unqtDot "darkseagreen2"
unqtDot DarkSeaGreen3 = unqtDot "darkseagreen3"
unqtDot DarkSeaGreen4 = unqtDot "darkseagreen4"
unqtDot DarkSlateBlue = unqtDot "darkslateblue"
unqtDot DarkSlateGray = unqtDot "darkslategray"
unqtDot DarkSlateGray1 = unqtDot "darkslategray1"
unqtDot DarkSlateGray2 = unqtDot "darkslategray2"
unqtDot DarkSlateGray3 = unqtDot "darkslategray3"
unqtDot DarkSlateGray4 = unqtDot "darkslategray4"
unqtDot DarkTurquoise = unqtDot "darkturquoise"
unqtDot DarkViolet = unqtDot "darkviolet"
unqtDot DeepPink = unqtDot "deeppink"
unqtDot DeepPink1 = unqtDot "deeppink1"
unqtDot DeepPink2 = unqtDot "deeppink2"
unqtDot DeepPink3 = unqtDot "deeppink3"
unqtDot DeepPink4 = unqtDot "deeppink4"
unqtDot DeepSkyBlue = unqtDot "deepskyblue"
unqtDot DeepSkyBlue1 = unqtDot "deepskyblue1"
unqtDot DeepSkyBlue2 = unqtDot "deepskyblue2"
unqtDot DeepSkyBlue3 = unqtDot "deepskyblue3"
unqtDot DeepSkyBlue4 = unqtDot "deepskyblue4"
unqtDot DimGray = unqtDot "dimgray"
unqtDot DodgerBlue = unqtDot "dodgerblue"
unqtDot DodgerBlue1 = unqtDot "dodgerblue1"
unqtDot DodgerBlue2 = unqtDot "dodgerblue2"
unqtDot DodgerBlue3 = unqtDot "dodgerblue3"
unqtDot DodgerBlue4 = unqtDot "dodgerblue4"
unqtDot Firebrick = unqtDot "firebrick"
unqtDot Firebrick1 = unqtDot "firebrick1"
unqtDot Firebrick2 = unqtDot "firebrick2"
unqtDot Firebrick3 = unqtDot "firebrick3"
unqtDot Firebrick4 = unqtDot "firebrick4"
unqtDot FloralWhite = unqtDot "floralwhite"
unqtDot ForestGreen = unqtDot "forestgreen"
unqtDot Gainsboro = unqtDot "gainsboro"
unqtDot GhostWhite = unqtDot "ghostwhite"
unqtDot Gold = unqtDot "gold"
unqtDot Gold1 = unqtDot "gold1"
unqtDot Gold2 = unqtDot "gold2"
unqtDot Gold3 = unqtDot "gold3"
unqtDot Gold4 = unqtDot "gold4"
unqtDot Goldenrod = unqtDot "goldenrod"
unqtDot Goldenrod1 = unqtDot "goldenrod1"
unqtDot Goldenrod2 = unqtDot "goldenrod2"
unqtDot Goldenrod3 = unqtDot "goldenrod3"
unqtDot Goldenrod4 = unqtDot "goldenrod4"
unqtDot Gray = unqtDot "gray"
unqtDot Gray0 = unqtDot "gray0"
unqtDot Gray1 = unqtDot "gray1"
unqtDot Gray2 = unqtDot "gray2"
unqtDot Gray3 = unqtDot "gray3"
unqtDot Gray4 = unqtDot "gray4"
unqtDot Gray5 = unqtDot "gray5"
unqtDot Gray6 = unqtDot "gray6"
unqtDot Gray7 = unqtDot "gray7"
unqtDot Gray8 = unqtDot "gray8"
unqtDot Gray9 = unqtDot "gray9"
unqtDot Gray10 = unqtDot "gray10"
unqtDot Gray11 = unqtDot "gray11"
unqtDot Gray12 = unqtDot "gray12"
unqtDot Gray13 = unqtDot "gray13"
unqtDot Gray14 = unqtDot "gray14"
unqtDot Gray15 = unqtDot "gray15"
unqtDot Gray16 = unqtDot "gray16"
unqtDot Gray17 = unqtDot "gray17"
unqtDot Gray18 = unqtDot "gray18"
unqtDot Gray19 = unqtDot "gray19"
unqtDot Gray20 = unqtDot "gray20"
unqtDot Gray21 = unqtDot "gray21"
unqtDot Gray22 = unqtDot "gray22"
unqtDot Gray23 = unqtDot "gray23"
unqtDot Gray24 = unqtDot "gray24"
unqtDot Gray25 = unqtDot "gray25"
unqtDot Gray26 = unqtDot "gray26"
unqtDot Gray27 = unqtDot "gray27"
unqtDot Gray28 = unqtDot "gray28"
unqtDot Gray29 = unqtDot "gray29"
unqtDot Gray30 = unqtDot "gray30"
unqtDot Gray31 = unqtDot "gray31"
unqtDot Gray32 = unqtDot "gray32"
unqtDot Gray33 = unqtDot "gray33"
unqtDot Gray34 = unqtDot "gray34"
unqtDot Gray35 = unqtDot "gray35"
unqtDot Gray36 = unqtDot "gray36"
unqtDot Gray37 = unqtDot "gray37"
unqtDot Gray38 = unqtDot "gray38"
unqtDot Gray39 = unqtDot "gray39"
unqtDot Gray40 = unqtDot "gray40"
unqtDot Gray41 = unqtDot "gray41"
unqtDot Gray42 = unqtDot "gray42"
unqtDot Gray43 = unqtDot "gray43"
unqtDot Gray44 = unqtDot "gray44"
unqtDot Gray45 = unqtDot "gray45"
unqtDot Gray46 = unqtDot "gray46"
unqtDot Gray47 = unqtDot "gray47"
unqtDot Gray48 = unqtDot "gray48"
unqtDot Gray49 = unqtDot "gray49"
unqtDot Gray50 = unqtDot "gray50"
unqtDot Gray51 = unqtDot "gray51"
unqtDot Gray52 = unqtDot "gray52"
unqtDot Gray53 = unqtDot "gray53"
unqtDot Gray54 = unqtDot "gray54"
unqtDot Gray55 = unqtDot "gray55"
unqtDot Gray56 = unqtDot "gray56"
unqtDot Gray57 = unqtDot "gray57"
unqtDot Gray58 = unqtDot "gray58"
unqtDot Gray59 = unqtDot "gray59"
unqtDot Gray60 = unqtDot "gray60"
unqtDot Gray61 = unqtDot "gray61"
unqtDot Gray62 = unqtDot "gray62"
unqtDot Gray63 = unqtDot "gray63"
unqtDot Gray64 = unqtDot "gray64"
unqtDot Gray65 = unqtDot "gray65"
unqtDot Gray66 = unqtDot "gray66"
unqtDot Gray67 = unqtDot "gray67"
unqtDot Gray68 = unqtDot "gray68"
unqtDot Gray69 = unqtDot "gray69"
unqtDot Gray70 = unqtDot "gray70"
unqtDot Gray71 = unqtDot "gray71"
unqtDot Gray72 = unqtDot "gray72"
unqtDot Gray73 = unqtDot "gray73"
unqtDot Gray74 = unqtDot "gray74"
unqtDot Gray75 = unqtDot "gray75"
unqtDot Gray76 = unqtDot "gray76"
unqtDot Gray77 = unqtDot "gray77"
unqtDot Gray78 = unqtDot "gray78"
unqtDot Gray79 = unqtDot "gray79"
unqtDot Gray80 = unqtDot "gray80"
unqtDot Gray81 = unqtDot "gray81"
unqtDot Gray82 = unqtDot "gray82"
unqtDot Gray83 = unqtDot "gray83"
unqtDot Gray84 = unqtDot "gray84"
unqtDot Gray85 = unqtDot "gray85"
unqtDot Gray86 = unqtDot "gray86"
unqtDot Gray87 = unqtDot "gray87"
unqtDot Gray88 = unqtDot "gray88"
unqtDot Gray89 = unqtDot "gray89"
unqtDot Gray90 = unqtDot "gray90"
unqtDot Gray91 = unqtDot "gray91"
unqtDot Gray92 = unqtDot "gray92"
unqtDot Gray93 = unqtDot "gray93"
unqtDot Gray94 = unqtDot "gray94"
unqtDot Gray95 = unqtDot "gray95"
unqtDot Gray96 = unqtDot "gray96"
unqtDot Gray97 = unqtDot "gray97"
unqtDot Gray98 = unqtDot "gray98"
unqtDot Gray99 = unqtDot "gray99"
unqtDot Gray100 = unqtDot "gray100"
unqtDot Green = unqtDot "green"
unqtDot Green1 = unqtDot "green1"
unqtDot Green2 = unqtDot "green2"
unqtDot Green3 = unqtDot "green3"
unqtDot Green4 = unqtDot "green4"
unqtDot GreenYellow = unqtDot "greenyellow"
unqtDot HoneyDew = unqtDot "honeydew"
unqtDot HoneyDew1 = unqtDot "honeydew1"
unqtDot HoneyDew2 = unqtDot "honeydew2"
unqtDot HoneyDew3 = unqtDot "honeydew3"
unqtDot HoneyDew4 = unqtDot "honeydew4"
unqtDot HotPink = unqtDot "hotpink"
unqtDot HotPink1 = unqtDot "hotpink1"
unqtDot HotPink2 = unqtDot "hotpink2"
unqtDot HotPink3 = unqtDot "hotpink3"
unqtDot HotPink4 = unqtDot "hotpink4"
unqtDot IndianRed = unqtDot "indianred"
unqtDot IndianRed1 = unqtDot "indianred1"
unqtDot IndianRed2 = unqtDot "indianred2"
unqtDot IndianRed3 = unqtDot "indianred3"
unqtDot IndianRed4 = unqtDot "indianred4"
unqtDot Indigo = unqtDot "indigo"
unqtDot Ivory = unqtDot "ivory"
unqtDot Ivory1 = unqtDot "ivory1"
unqtDot Ivory2 = unqtDot "ivory2"
unqtDot Ivory3 = unqtDot "ivory3"
unqtDot Ivory4 = unqtDot "ivory4"
unqtDot Khaki = unqtDot "khaki"
unqtDot Khaki1 = unqtDot "khaki1"
unqtDot Khaki2 = unqtDot "khaki2"
unqtDot Khaki3 = unqtDot "khaki3"
unqtDot Khaki4 = unqtDot "khaki4"
unqtDot Lavender = unqtDot "lavender"
unqtDot LavenderBlush = unqtDot "lavenderblush"
unqtDot LavenderBlush1 = unqtDot "lavenderblush1"
unqtDot LavenderBlush2 = unqtDot "lavenderblush2"
unqtDot LavenderBlush3 = unqtDot "lavenderblush3"
unqtDot LavenderBlush4 = unqtDot "lavenderblush4"
unqtDot LawnGreen = unqtDot "lawngreen"
unqtDot LemonChiffon = unqtDot "lemonchiffon"
unqtDot LemonChiffon1 = unqtDot "lemonchiffon1"
unqtDot LemonChiffon2 = unqtDot "lemonchiffon2"
unqtDot LemonChiffon3 = unqtDot "lemonchiffon3"
unqtDot LemonChiffon4 = unqtDot "lemonchiffon4"
unqtDot LightBlue = unqtDot "lightblue"
unqtDot LightBlue1 = unqtDot "lightblue1"
unqtDot LightBlue2 = unqtDot "lightblue2"
unqtDot LightBlue3 = unqtDot "lightblue3"
unqtDot LightBlue4 = unqtDot "lightblue4"
unqtDot LightCoral = unqtDot "lightcoral"
unqtDot LightCyan = unqtDot "lightcyan"
unqtDot LightCyan1 = unqtDot "lightcyan1"
unqtDot LightCyan2 = unqtDot "lightcyan2"
unqtDot LightCyan3 = unqtDot "lightcyan3"
unqtDot LightCyan4 = unqtDot "lightcyan4"
unqtDot LightGoldenrod = unqtDot "lightgoldenrod"
unqtDot LightGoldenrod1 = unqtDot "lightgoldenrod1"
unqtDot LightGoldenrod2 = unqtDot "lightgoldenrod2"
unqtDot LightGoldenrod3 = unqtDot "lightgoldenrod3"
unqtDot LightGoldenrod4 = unqtDot "lightgoldenrod4"
unqtDot LightGoldenrodYellow = unqtDot "lightgoldenrodyellow"
unqtDot LightGray = unqtDot "lightgray"
unqtDot LightPink = unqtDot "lightpink"
unqtDot LightPink1 = unqtDot "lightpink1"
unqtDot LightPink2 = unqtDot "lightpink2"
unqtDot LightPink3 = unqtDot "lightpink3"
unqtDot LightPink4 = unqtDot "lightpink4"
unqtDot LightSalmon = unqtDot "lightsalmon"
unqtDot LightSalmon1 = unqtDot "lightsalmon1"
unqtDot LightSalmon2 = unqtDot "lightsalmon2"
unqtDot LightSalmon3 = unqtDot "lightsalmon3"
unqtDot LightSalmon4 = unqtDot "lightsalmon4"
unqtDot LightSeaGreen = unqtDot "lightseagreen"
unqtDot LightSkyBlue = unqtDot "lightskyblue"
unqtDot LightSkyBlue1 = unqtDot "lightskyblue1"
unqtDot LightSkyBlue2 = unqtDot "lightskyblue2"
unqtDot LightSkyBlue3 = unqtDot "lightskyblue3"
unqtDot LightSkyBlue4 = unqtDot "lightskyblue4"
unqtDot LightSlateBlue = unqtDot "lightslateblue"
unqtDot LightSlateGray = unqtDot "lightslategray"
unqtDot LightSteelBlue = unqtDot "lightsteelblue"
unqtDot LightSteelBlue1 = unqtDot "lightsteelblue1"
unqtDot LightSteelBlue2 = unqtDot "lightsteelblue2"
unqtDot LightSteelBlue3 = unqtDot "lightsteelblue3"
unqtDot LightSteelBlue4 = unqtDot "lightsteelblue4"
unqtDot LightYellow = unqtDot "lightyellow"
unqtDot LightYellow1 = unqtDot "lightyellow1"
unqtDot LightYellow2 = unqtDot "lightyellow2"
unqtDot LightYellow3 = unqtDot "lightyellow3"
unqtDot LightYellow4 = unqtDot "lightyellow4"
unqtDot LimeGreen = unqtDot "limegreen"
unqtDot Linen = unqtDot "linen"
unqtDot Magenta = unqtDot "magenta"
unqtDot Magenta1 = unqtDot "magenta1"
unqtDot Magenta2 = unqtDot "magenta2"
unqtDot Magenta3 = unqtDot "magenta3"
unqtDot Magenta4 = unqtDot "magenta4"
unqtDot Maroon = unqtDot "maroon"
unqtDot Maroon1 = unqtDot "maroon1"
unqtDot Maroon2 = unqtDot "maroon2"
unqtDot Maroon3 = unqtDot "maroon3"
unqtDot Maroon4 = unqtDot "maroon4"
unqtDot MediumAquamarine = unqtDot "mediumaquamarine"
unqtDot MediumBlue = unqtDot "mediumblue"
unqtDot MediumOrchid = unqtDot "mediumorchid"
unqtDot MediumOrchid1 = unqtDot "mediumorchid1"
unqtDot MediumOrchid2 = unqtDot "mediumorchid2"
unqtDot MediumOrchid3 = unqtDot "mediumorchid3"
unqtDot MediumOrchid4 = unqtDot "mediumorchid4"
unqtDot MediumPurple = unqtDot "mediumpurple"
unqtDot MediumPurple1 = unqtDot "mediumpurple1"
unqtDot MediumPurple2 = unqtDot "mediumpurple2"
unqtDot MediumPurple3 = unqtDot "mediumpurple3"
unqtDot MediumPurple4 = unqtDot "mediumpurple4"
unqtDot MediumSeaGreen = unqtDot "mediumseagreen"
unqtDot MediumSlateBlue = unqtDot "mediumslateblue"
unqtDot MediumSpringGreen = unqtDot "mediumspringgreen"
unqtDot MediumTurquoise = unqtDot "mediumturquoise"
unqtDot MediumVioletRed = unqtDot "mediumvioletred"
unqtDot MidnightBlue = unqtDot "midnightblue"
unqtDot MintCream = unqtDot "mintcream"
unqtDot MistyRose = unqtDot "mistyrose"
unqtDot MistyRose1 = unqtDot "mistyrose1"
unqtDot MistyRose2 = unqtDot "mistyrose2"
unqtDot MistyRose3 = unqtDot "mistyrose3"
unqtDot MistyRose4 = unqtDot "mistyrose4"
unqtDot Moccasin = unqtDot "moccasin"
unqtDot NavajoWhite = unqtDot "navajowhite"
unqtDot NavajoWhite1 = unqtDot "navajowhite1"
unqtDot NavajoWhite2 = unqtDot "navajowhite2"
unqtDot NavajoWhite3 = unqtDot "navajowhite3"
unqtDot NavajoWhite4 = unqtDot "navajowhite4"
unqtDot Navy = unqtDot "navy"
unqtDot NavyBlue = unqtDot "navyblue"
unqtDot OldLace = unqtDot "oldlace"
unqtDot OliveDrab = unqtDot "olivedrab"
unqtDot OliveDrab1 = unqtDot "olivedrab1"
unqtDot OliveDrab2 = unqtDot "olivedrab2"
unqtDot OliveDrab3 = unqtDot "olivedrab3"
unqtDot OliveDrab4 = unqtDot "olivedrab4"
unqtDot Orange = unqtDot "orange"
unqtDot Orange1 = unqtDot "orange1"
unqtDot Orange2 = unqtDot "orange2"
unqtDot Orange3 = unqtDot "orange3"
unqtDot Orange4 = unqtDot "orange4"
unqtDot OrangeRed = unqtDot "orangered"
unqtDot OrangeRed1 = unqtDot "orangered1"
unqtDot OrangeRed2 = unqtDot "orangered2"
unqtDot OrangeRed3 = unqtDot "orangered3"
unqtDot OrangeRed4 = unqtDot "orangered4"
unqtDot Orchid = unqtDot "orchid"
unqtDot Orchid1 = unqtDot "orchid1"
unqtDot Orchid2 = unqtDot "orchid2"
unqtDot Orchid3 = unqtDot "orchid3"
unqtDot Orchid4 = unqtDot "orchid4"
unqtDot PaleGoldenrod = unqtDot "palegoldenrod"
unqtDot PaleGreen = unqtDot "palegreen"
unqtDot PaleGreen1 = unqtDot "palegreen1"
unqtDot PaleGreen2 = unqtDot "palegreen2"
unqtDot PaleGreen3 = unqtDot "palegreen3"
unqtDot PaleGreen4 = unqtDot "palegreen4"
unqtDot PaleTurquoise = unqtDot "paleturquoise"
unqtDot PaleTurquoise1 = unqtDot "paleturquoise1"
unqtDot PaleTurquoise2 = unqtDot "paleturquoise2"
unqtDot PaleTurquoise3 = unqtDot "paleturquoise3"
unqtDot PaleTurquoise4 = unqtDot "paleturquoise4"
unqtDot PaleVioletRed = unqtDot "palevioletred"
unqtDot PaleVioletRed1 = unqtDot "palevioletred1"
unqtDot PaleVioletRed2 = unqtDot "palevioletred2"
unqtDot PaleVioletRed3 = unqtDot "palevioletred3"
unqtDot PaleVioletRed4 = unqtDot "palevioletred4"
unqtDot PapayaWhip = unqtDot "papayawhip"
unqtDot PeachPuff = unqtDot "peachpuff"
unqtDot PeachPuff1 = unqtDot "peachpuff1"
unqtDot PeachPuff2 = unqtDot "peachpuff2"
unqtDot PeachPuff3 = unqtDot "peachpuff3"
unqtDot PeachPuff4 = unqtDot "peachpuff4"
unqtDot Peru = unqtDot "peru"
unqtDot Pink = unqtDot "pink"
unqtDot Pink1 = unqtDot "pink1"
unqtDot Pink2 = unqtDot "pink2"
unqtDot Pink3 = unqtDot "pink3"
unqtDot Pink4 = unqtDot "pink4"
unqtDot Plum = unqtDot "plum"
unqtDot Plum1 = unqtDot "plum1"
unqtDot Plum2 = unqtDot "plum2"
unqtDot Plum3 = unqtDot "plum3"
unqtDot Plum4 = unqtDot "plum4"
unqtDot PowderBlue = unqtDot "powderblue"
unqtDot Purple = unqtDot "purple"
unqtDot Purple1 = unqtDot "purple1"
unqtDot Purple2 = unqtDot "purple2"
unqtDot Purple3 = unqtDot "purple3"
unqtDot Purple4 = unqtDot "purple4"
unqtDot Red = unqtDot "red"
unqtDot Red1 = unqtDot "red1"
unqtDot Red2 = unqtDot "red2"
unqtDot Red3 = unqtDot "red3"
unqtDot Red4 = unqtDot "red4"
unqtDot RosyBrown = unqtDot "rosybrown"
unqtDot RosyBrown1 = unqtDot "rosybrown1"
unqtDot RosyBrown2 = unqtDot "rosybrown2"
unqtDot RosyBrown3 = unqtDot "rosybrown3"
unqtDot RosyBrown4 = unqtDot "rosybrown4"
unqtDot RoyalBlue = unqtDot "royalblue"
unqtDot RoyalBlue1 = unqtDot "royalblue1"
unqtDot RoyalBlue2 = unqtDot "royalblue2"
unqtDot RoyalBlue3 = unqtDot "royalblue3"
unqtDot RoyalBlue4 = unqtDot "royalblue4"
unqtDot SaddleBrown = unqtDot "saddlebrown"
unqtDot Salmon = unqtDot "salmon"
unqtDot Salmon1 = unqtDot "salmon1"
unqtDot Salmon2 = unqtDot "salmon2"
unqtDot Salmon3 = unqtDot "salmon3"
unqtDot Salmon4 = unqtDot "salmon4"
unqtDot SandyBrown = unqtDot "sandybrown"
unqtDot SeaGreen = unqtDot "seagreen"
unqtDot SeaGreen1 = unqtDot "seagreen1"
unqtDot SeaGreen2 = unqtDot "seagreen2"
unqtDot SeaGreen3 = unqtDot "seagreen3"
unqtDot SeaGreen4 = unqtDot "seagreen4"
unqtDot SeaShell = unqtDot "seashell"
unqtDot SeaShell1 = unqtDot "seashell1"
unqtDot SeaShell2 = unqtDot "seashell2"
unqtDot SeaShell3 = unqtDot "seashell3"
unqtDot SeaShell4 = unqtDot "seashell4"
unqtDot Sienna = unqtDot "sienna"
unqtDot Sienna1 = unqtDot "sienna1"
unqtDot Sienna2 = unqtDot "sienna2"
unqtDot Sienna3 = unqtDot "sienna3"
unqtDot Sienna4 = unqtDot "sienna4"
unqtDot SkyBlue = unqtDot "skyblue"
unqtDot SkyBlue1 = unqtDot "skyblue1"
unqtDot SkyBlue2 = unqtDot "skyblue2"
unqtDot SkyBlue3 = unqtDot "skyblue3"
unqtDot SkyBlue4 = unqtDot "skyblue4"
unqtDot SlateBlue = unqtDot "slateblue"
unqtDot SlateBlue1 = unqtDot "slateblue1"
unqtDot SlateBlue2 = unqtDot "slateblue2"
unqtDot SlateBlue3 = unqtDot "slateblue3"
unqtDot SlateBlue4 = unqtDot "slateblue4"
unqtDot SlateGray = unqtDot "slategray"
unqtDot SlateGray1 = unqtDot "slategray1"
unqtDot SlateGray2 = unqtDot "slategray2"
unqtDot SlateGray3 = unqtDot "slategray3"
unqtDot SlateGray4 = unqtDot "slategray4"
unqtDot Snow = unqtDot "snow"
unqtDot Snow1 = unqtDot "snow1"
unqtDot Snow2 = unqtDot "snow2"
unqtDot Snow3 = unqtDot "snow3"
unqtDot Snow4 = unqtDot "snow4"
unqtDot SpringGreen = unqtDot "springgreen"
unqtDot SpringGreen1 = unqtDot "springgreen1"
unqtDot SpringGreen2 = unqtDot "springgreen2"
unqtDot SpringGreen3 = unqtDot "springgreen3"
unqtDot SpringGreen4 = unqtDot "springgreen4"
unqtDot SteelBlue = unqtDot "steelblue"
unqtDot SteelBlue1 = unqtDot "steelblue1"
unqtDot SteelBlue2 = unqtDot "steelblue2"
unqtDot SteelBlue3 = unqtDot "steelblue3"
unqtDot SteelBlue4 = unqtDot "steelblue4"
unqtDot Tan = unqtDot "tan"
unqtDot Tan1 = unqtDot "tan1"
unqtDot Tan2 = unqtDot "tan2"
unqtDot Tan3 = unqtDot "tan3"
unqtDot Tan4 = unqtDot "tan4"
unqtDot Thistle = unqtDot "thistle"
unqtDot Thistle1 = unqtDot "thistle1"
unqtDot Thistle2 = unqtDot "thistle2"
unqtDot Thistle3 = unqtDot "thistle3"
unqtDot Thistle4 = unqtDot "thistle4"
unqtDot Tomato = unqtDot "tomato"
unqtDot Tomato1 = unqtDot "tomato1"
unqtDot Tomato2 = unqtDot "tomato2"
unqtDot Tomato3 = unqtDot "tomato3"
unqtDot Tomato4 = unqtDot "tomato4"
unqtDot Transparent = unqtDot "transparent"
unqtDot Turquoise = unqtDot "turquoise"
unqtDot Turquoise1 = unqtDot "turquoise1"
unqtDot Turquoise2 = unqtDot "turquoise2"
unqtDot Turquoise3 = unqtDot "turquoise3"
unqtDot Turquoise4 = unqtDot "turquoise4"
unqtDot Violet = unqtDot "violet"
unqtDot VioletRed = unqtDot "violetred"
unqtDot VioletRed1 = unqtDot "violetred1"
unqtDot VioletRed2 = unqtDot "violetred2"
unqtDot VioletRed3 = unqtDot "violetred3"
unqtDot VioletRed4 = unqtDot "violetred4"
unqtDot Wheat = unqtDot "wheat"
unqtDot Wheat1 = unqtDot "wheat1"
unqtDot Wheat2 = unqtDot "wheat2"
unqtDot Wheat3 = unqtDot "wheat3"
unqtDot Wheat4 = unqtDot "wheat4"
unqtDot White = unqtDot "white"
unqtDot WhiteSmoke = unqtDot "whitesmoke"
unqtDot Yellow = unqtDot "yellow"
unqtDot Yellow1 = unqtDot "yellow1"
unqtDot Yellow2 = unqtDot "yellow2"
unqtDot Yellow3 = unqtDot "yellow3"
unqtDot Yellow4 = unqtDot "yellow4"
unqtDot YellowGreen = unqtDot "yellowgreen"
instance ParseDot X11Color where
parseUnqt = oneOf
$ reverse [ stringRep AliceBlue "aliceblue"
, stringRep AntiqueWhite "antiquewhite"
, stringRep AntiqueWhite1 "antiquewhite1"
, stringRep AntiqueWhite2 "antiquewhite2"
, stringRep AntiqueWhite3 "antiquewhite3"
, stringRep AntiqueWhite4 "antiquewhite4"
, stringRep Aquamarine "aquamarine"
, stringRep Aquamarine1 "aquamarine1"
, stringRep Aquamarine2 "aquamarine2"
, stringRep Aquamarine3 "aquamarine3"
, stringRep Aquamarine4 "aquamarine4"
, stringRep Azure "azure"
, stringRep Azure1 "azure1"
, stringRep Azure2 "azure2"
, stringRep Azure3 "azure3"
, stringRep Azure4 "azure4"
, stringRep Beige "beige"
, stringRep Bisque "bisque"
, stringRep Bisque1 "bisque1"
, stringRep Bisque2 "bisque2"
, stringRep Bisque3 "bisque3"
, stringRep Bisque4 "bisque4"
, stringRep Black "black"
, stringRep BlanchedAlmond "blanchedalmond"
, stringRep Blue "blue"
, stringRep Blue1 "blue1"
, stringRep Blue2 "blue2"
, stringRep Blue3 "blue3"
, stringRep Blue4 "blue4"
, stringRep BlueViolet "blueviolet"
, stringRep Brown "brown"
, stringRep Brown1 "brown1"
, stringRep Brown2 "brown2"
, stringRep Brown3 "brown3"
, stringRep Brown4 "brown4"
, stringRep Burlywood "burlywood"
, stringRep Burlywood1 "burlywood1"
, stringRep Burlywood2 "burlywood2"
, stringRep Burlywood3 "burlywood3"
, stringRep Burlywood4 "burlywood4"
, stringRep CadetBlue "cadetblue"
, stringRep CadetBlue1 "cadetblue1"
, stringRep CadetBlue2 "cadetblue2"
, stringRep CadetBlue3 "cadetblue3"
, stringRep CadetBlue4 "cadetblue4"
, stringRep Chartreuse "chartreuse"
, stringRep Chartreuse1 "chartreuse1"
, stringRep Chartreuse2 "chartreuse2"
, stringRep Chartreuse3 "chartreuse3"
, stringRep Chartreuse4 "chartreuse4"
, stringRep Chocolate "chocolate"
, stringRep Chocolate1 "chocolate1"
, stringRep Chocolate2 "chocolate2"
, stringRep Chocolate3 "chocolate3"
, stringRep Chocolate4 "chocolate4"
, stringRep Coral "coral"
, stringRep Coral1 "coral1"
, stringRep Coral2 "coral2"
, stringRep Coral3 "coral3"
, stringRep Coral4 "coral4"
, stringRep CornFlowerBlue "cornflowerblue"
, stringRep CornSilk "cornsilk"
, stringRep CornSilk1 "cornsilk1"
, stringRep CornSilk2 "cornsilk2"
, stringRep CornSilk3 "cornsilk3"
, stringRep CornSilk4 "cornsilk4"
, stringRep Crimson "crimson"
, stringRep Cyan "cyan"
, stringRep Cyan1 "cyan1"
, stringRep Cyan2 "cyan2"
, stringRep Cyan3 "cyan3"
, stringRep Cyan4 "cyan4"
, stringRep DarkGoldenrod "darkgoldenrod"
, stringRep DarkGoldenrod1 "darkgoldenrod1"
, stringRep DarkGoldenrod2 "darkgoldenrod2"
, stringRep DarkGoldenrod3 "darkgoldenrod3"
, stringRep DarkGoldenrod4 "darkgoldenrod4"
, stringRep DarkGreen "darkgreen"
, stringRep Darkkhaki "darkkhaki"
, stringRep DarkOliveGreen "darkolivegreen"
, stringRep DarkOliveGreen1 "darkolivegreen1"
, stringRep DarkOliveGreen2 "darkolivegreen2"
, stringRep DarkOliveGreen3 "darkolivegreen3"
, stringRep DarkOliveGreen4 "darkolivegreen4"
, stringRep DarkOrange "darkorange"
, stringRep DarkOrange1 "darkorange1"
, stringRep DarkOrange2 "darkorange2"
, stringRep DarkOrange3 "darkorange3"
, stringRep DarkOrange4 "darkorange4"
, stringRep DarkOrchid "darkorchid"
, stringRep DarkOrchid1 "darkorchid1"
, stringRep DarkOrchid2 "darkorchid2"
, stringRep DarkOrchid3 "darkorchid3"
, stringRep DarkOrchid4 "darkorchid4"
, stringRep DarkSalmon "darksalmon"
, stringRep DarkSeaGreen "darkseagreen"
, stringRep DarkSeaGreen1 "darkseagreen1"
, stringRep DarkSeaGreen2 "darkseagreen2"
, stringRep DarkSeaGreen3 "darkseagreen3"
, stringRep DarkSeaGreen4 "darkseagreen4"
, stringRep DarkSlateBlue "darkslateblue"
, stringReps DarkSlateGray ["darkslategray", "darkslategrey"]
, stringReps DarkSlateGray1 ["darkslategray1", "darkslategrey1"]
, stringReps DarkSlateGray2 ["darkslategray2", "darkslategrey2"]
, stringReps DarkSlateGray3 ["darkslategray3", "darkslategrey3"]
, stringReps DarkSlateGray4 ["darkslategray4", "darkslategrey4"]
, stringRep DarkTurquoise "darkturquoise"
, stringRep DarkViolet "darkviolet"
, stringRep DeepPink "deeppink"
, stringRep DeepPink1 "deeppink1"
, stringRep DeepPink2 "deeppink2"
, stringRep DeepPink3 "deeppink3"
, stringRep DeepPink4 "deeppink4"
, stringRep DeepSkyBlue "deepskyblue"
, stringRep DeepSkyBlue1 "deepskyblue1"
, stringRep DeepSkyBlue2 "deepskyblue2"
, stringRep DeepSkyBlue3 "deepskyblue3"
, stringRep DeepSkyBlue4 "deepskyblue4"
, stringReps DimGray ["dimgray", "dimgrey"]
, stringRep DodgerBlue "dodgerblue"
, stringRep DodgerBlue1 "dodgerblue1"
, stringRep DodgerBlue2 "dodgerblue2"
, stringRep DodgerBlue3 "dodgerblue3"
, stringRep DodgerBlue4 "dodgerblue4"
, stringRep Firebrick "firebrick"
, stringRep Firebrick1 "firebrick1"
, stringRep Firebrick2 "firebrick2"
, stringRep Firebrick3 "firebrick3"
, stringRep Firebrick4 "firebrick4"
, stringRep FloralWhite "floralwhite"
, stringRep ForestGreen "forestgreen"
, stringRep Gainsboro "gainsboro"
, stringRep GhostWhite "ghostwhite"
, stringRep Gold "gold"
, stringRep Gold1 "gold1"
, stringRep Gold2 "gold2"
, stringRep Gold3 "gold3"
, stringRep Gold4 "gold4"
, stringRep Goldenrod "goldenrod"
, stringRep Goldenrod1 "goldenrod1"
, stringRep Goldenrod2 "goldenrod2"
, stringRep Goldenrod3 "goldenrod3"
, stringRep Goldenrod4 "goldenrod4"
, stringReps Gray ["gray", "grey"]
, stringReps Gray0 ["gray0", "grey0"]
, stringReps Gray1 ["gray1", "grey1"]
, stringReps Gray2 ["gray2", "grey2"]
, stringReps Gray3 ["gray3", "grey3"]
, stringReps Gray4 ["gray4", "grey4"]
, stringReps Gray5 ["gray5", "grey5"]
, stringReps Gray6 ["gray6", "grey6"]
, stringReps Gray7 ["gray7", "grey7"]
, stringReps Gray8 ["gray8", "grey8"]
, stringReps Gray9 ["gray9", "grey9"]
, stringReps Gray10 ["gray10", "grey10"]
, stringReps Gray11 ["gray11", "grey11"]
, stringReps Gray12 ["gray12", "grey12"]
, stringReps Gray13 ["gray13", "grey13"]
, stringReps Gray14 ["gray14", "grey14"]
, stringReps Gray15 ["gray15", "grey15"]
, stringReps Gray16 ["gray16", "grey16"]
, stringReps Gray17 ["gray17", "grey17"]
, stringReps Gray18 ["gray18", "grey18"]
, stringReps Gray19 ["gray19", "grey19"]
, stringReps Gray20 ["gray20", "grey20"]
, stringReps Gray21 ["gray21", "grey21"]
, stringReps Gray22 ["gray22", "grey22"]
, stringReps Gray23 ["gray23", "grey23"]
, stringReps Gray24 ["gray24", "grey24"]
, stringReps Gray25 ["gray25", "grey25"]
, stringReps Gray26 ["gray26", "grey26"]
, stringReps Gray27 ["gray27", "grey27"]
, stringReps Gray28 ["gray28", "grey28"]
, stringReps Gray29 ["gray29", "grey29"]
, stringReps Gray30 ["gray30", "grey30"]
, stringReps Gray31 ["gray31", "grey31"]
, stringReps Gray32 ["gray32", "grey32"]
, stringReps Gray33 ["gray33", "grey33"]
, stringReps Gray34 ["gray34", "grey34"]
, stringReps Gray35 ["gray35", "grey35"]
, stringReps Gray36 ["gray36", "grey36"]
, stringReps Gray37 ["gray37", "grey37"]
, stringReps Gray38 ["gray38", "grey38"]
, stringReps Gray39 ["gray39", "grey39"]
, stringReps Gray40 ["gray40", "grey40"]
, stringReps Gray41 ["gray41", "grey41"]
, stringReps Gray42 ["gray42", "grey42"]
, stringReps Gray43 ["gray43", "grey43"]
, stringReps Gray44 ["gray44", "grey44"]
, stringReps Gray45 ["gray45", "grey45"]
, stringReps Gray46 ["gray46", "grey46"]
, stringReps Gray47 ["gray47", "grey47"]
, stringReps Gray48 ["gray48", "grey48"]
, stringReps Gray49 ["gray49", "grey49"]
, stringReps Gray50 ["gray50", "grey50"]
, stringReps Gray51 ["gray51", "grey51"]
, stringReps Gray52 ["gray52", "grey52"]
, stringReps Gray53 ["gray53", "grey53"]
, stringReps Gray54 ["gray54", "grey54"]
, stringReps Gray55 ["gray55", "grey55"]
, stringReps Gray56 ["gray56", "grey56"]
, stringReps Gray57 ["gray57", "grey57"]
, stringReps Gray58 ["gray58", "grey58"]
, stringReps Gray59 ["gray59", "grey59"]
, stringReps Gray60 ["gray60", "grey60"]
, stringReps Gray61 ["gray61", "grey61"]
, stringReps Gray62 ["gray62", "grey62"]
, stringReps Gray63 ["gray63", "grey63"]
, stringReps Gray64 ["gray64", "grey64"]
, stringReps Gray65 ["gray65", "grey65"]
, stringReps Gray66 ["gray66", "grey66"]
, stringReps Gray67 ["gray67", "grey67"]
, stringReps Gray68 ["gray68", "grey68"]
, stringReps Gray69 ["gray69", "grey69"]
, stringReps Gray70 ["gray70", "grey70"]
, stringReps Gray71 ["gray71", "grey71"]
, stringReps Gray72 ["gray72", "grey72"]
, stringReps Gray73 ["gray73", "grey73"]
, stringReps Gray74 ["gray74", "grey74"]
, stringReps Gray75 ["gray75", "grey75"]
, stringReps Gray76 ["gray76", "grey76"]
, stringReps Gray77 ["gray77", "grey77"]
, stringReps Gray78 ["gray78", "grey78"]
, stringReps Gray79 ["gray79", "grey79"]
, stringReps Gray80 ["gray80", "grey80"]
, stringReps Gray81 ["gray81", "grey81"]
, stringReps Gray82 ["gray82", "grey82"]
, stringReps Gray83 ["gray83", "grey83"]
, stringReps Gray84 ["gray84", "grey84"]
, stringReps Gray85 ["gray85", "grey85"]
, stringReps Gray86 ["gray86", "grey86"]
, stringReps Gray87 ["gray87", "grey87"]
, stringReps Gray88 ["gray88", "grey88"]
, stringReps Gray89 ["gray89", "grey89"]
, stringReps Gray90 ["gray90", "grey90"]
, stringReps Gray91 ["gray91", "grey91"]
, stringReps Gray92 ["gray92", "grey92"]
, stringReps Gray93 ["gray93", "grey93"]
, stringReps Gray94 ["gray94", "grey94"]
, stringReps Gray95 ["gray95", "grey95"]
, stringReps Gray96 ["gray96", "grey96"]
, stringReps Gray97 ["gray97", "grey97"]
, stringReps Gray98 ["gray98", "grey98"]
, stringReps Gray99 ["gray99", "grey99"]
, stringReps Gray100 ["gray100", "grey100"]
, stringRep Green "green"
, stringRep Green1 "green1"
, stringRep Green2 "green2"
, stringRep Green3 "green3"
, stringRep Green4 "green4"
, stringRep GreenYellow "greenyellow"
, stringRep HoneyDew "honeydew"
, stringRep HoneyDew1 "honeydew1"
, stringRep HoneyDew2 "honeydew2"
, stringRep HoneyDew3 "honeydew3"
, stringRep HoneyDew4 "honeydew4"
, stringRep HotPink "hotpink"
, stringRep HotPink1 "hotpink1"
, stringRep HotPink2 "hotpink2"
, stringRep HotPink3 "hotpink3"
, stringRep HotPink4 "hotpink4"
, stringRep IndianRed "indianred"
, stringRep IndianRed1 "indianred1"
, stringRep IndianRed2 "indianred2"
, stringRep IndianRed3 "indianred3"
, stringRep IndianRed4 "indianred4"
, stringRep Indigo "indigo"
, stringRep Ivory "ivory"
, stringRep Ivory1 "ivory1"
, stringRep Ivory2 "ivory2"
, stringRep Ivory3 "ivory3"
, stringRep Ivory4 "ivory4"
, stringRep Khaki "khaki"
, stringRep Khaki1 "khaki1"
, stringRep Khaki2 "khaki2"
, stringRep Khaki3 "khaki3"
, stringRep Khaki4 "khaki4"
, stringRep Lavender "lavender"
, stringRep LavenderBlush "lavenderblush"
, stringRep LavenderBlush1 "lavenderblush1"
, stringRep LavenderBlush2 "lavenderblush2"
, stringRep LavenderBlush3 "lavenderblush3"
, stringRep LavenderBlush4 "lavenderblush4"
, stringRep LawnGreen "lawngreen"
, stringRep LemonChiffon "lemonchiffon"
, stringRep LemonChiffon1 "lemonchiffon1"
, stringRep LemonChiffon2 "lemonchiffon2"
, stringRep LemonChiffon3 "lemonchiffon3"
, stringRep LemonChiffon4 "lemonchiffon4"
, stringRep LightBlue "lightblue"
, stringRep LightBlue1 "lightblue1"
, stringRep LightBlue2 "lightblue2"
, stringRep LightBlue3 "lightblue3"
, stringRep LightBlue4 "lightblue4"
, stringRep LightCoral "lightcoral"
, stringRep LightCyan "lightcyan"
, stringRep LightCyan1 "lightcyan1"
, stringRep LightCyan2 "lightcyan2"
, stringRep LightCyan3 "lightcyan3"
, stringRep LightCyan4 "lightcyan4"
, stringRep LightGoldenrod "lightgoldenrod"
, stringRep LightGoldenrod1 "lightgoldenrod1"
, stringRep LightGoldenrod2 "lightgoldenrod2"
, stringRep LightGoldenrod3 "lightgoldenrod3"
, stringRep LightGoldenrod4 "lightgoldenrod4"
, stringRep LightGoldenrodYellow "lightgoldenrodyellow"
, stringReps LightGray ["lightgray", "lightgrey"]
, stringRep LightPink "lightpink"
, stringRep LightPink1 "lightpink1"
, stringRep LightPink2 "lightpink2"
, stringRep LightPink3 "lightpink3"
, stringRep LightPink4 "lightpink4"
, stringRep LightSalmon "lightsalmon"
, stringRep LightSalmon1 "lightsalmon1"
, stringRep LightSalmon2 "lightsalmon2"
, stringRep LightSalmon3 "lightsalmon3"
, stringRep LightSalmon4 "lightsalmon4"
, stringRep LightSeaGreen "lightseagreen"
, stringRep LightSkyBlue "lightskyblue"
, stringRep LightSkyBlue1 "lightskyblue1"
, stringRep LightSkyBlue2 "lightskyblue2"
, stringRep LightSkyBlue3 "lightskyblue3"
, stringRep LightSkyBlue4 "lightskyblue4"
, stringRep LightSlateBlue "lightslateblue"
, stringReps LightSlateGray ["lightslategray", "lightslategrey"]
, stringRep LightSteelBlue "lightsteelblue"
, stringRep LightSteelBlue1 "lightsteelblue1"
, stringRep LightSteelBlue2 "lightsteelblue2"
, stringRep LightSteelBlue3 "lightsteelblue3"
, stringRep LightSteelBlue4 "lightsteelblue4"
, stringRep LightYellow "lightyellow"
, stringRep LightYellow1 "lightyellow1"
, stringRep LightYellow2 "lightyellow2"
, stringRep LightYellow3 "lightyellow3"
, stringRep LightYellow4 "lightyellow4"
, stringRep LimeGreen "limegreen"
, stringRep Linen "linen"
, stringRep Magenta "magenta"
, stringRep Magenta1 "magenta1"
, stringRep Magenta2 "magenta2"
, stringRep Magenta3 "magenta3"
, stringRep Magenta4 "magenta4"
, stringRep Maroon "maroon"
, stringRep Maroon1 "maroon1"
, stringRep Maroon2 "maroon2"
, stringRep Maroon3 "maroon3"
, stringRep Maroon4 "maroon4"
, stringRep MediumAquamarine "mediumaquamarine"
, stringRep MediumBlue "mediumblue"
, stringRep MediumOrchid "mediumorchid"
, stringRep MediumOrchid1 "mediumorchid1"
, stringRep MediumOrchid2 "mediumorchid2"
, stringRep MediumOrchid3 "mediumorchid3"
, stringRep MediumOrchid4 "mediumorchid4"
, stringRep MediumPurple "mediumpurple"
, stringRep MediumPurple1 "mediumpurple1"
, stringRep MediumPurple2 "mediumpurple2"
, stringRep MediumPurple3 "mediumpurple3"
, stringRep MediumPurple4 "mediumpurple4"
, stringRep MediumSeaGreen "mediumseagreen"
, stringRep MediumSlateBlue "mediumslateblue"
, stringRep MediumSpringGreen "mediumspringgreen"
, stringRep MediumTurquoise "mediumturquoise"
, stringRep MediumVioletRed "mediumvioletred"
, stringRep MidnightBlue "midnightblue"
, stringRep MintCream "mintcream"
, stringRep MistyRose "mistyrose"
, stringRep MistyRose1 "mistyrose1"
, stringRep MistyRose2 "mistyrose2"
, stringRep MistyRose3 "mistyrose3"
, stringRep MistyRose4 "mistyrose4"
, stringRep Moccasin "moccasin"
, stringRep NavajoWhite "navajowhite"
, stringRep NavajoWhite1 "navajowhite1"
, stringRep NavajoWhite2 "navajowhite2"
, stringRep NavajoWhite3 "navajowhite3"
, stringRep NavajoWhite4 "navajowhite4"
, stringRep Navy "navy"
, stringRep NavyBlue "navyblue"
, stringRep OldLace "oldlace"
, stringRep OliveDrab "olivedrab"
, stringRep OliveDrab1 "olivedrab1"
, stringRep OliveDrab2 "olivedrab2"
, stringRep OliveDrab3 "olivedrab3"
, stringRep OliveDrab4 "olivedrab4"
, stringRep Orange "orange"
, stringRep Orange1 "orange1"
, stringRep Orange2 "orange2"
, stringRep Orange3 "orange3"
, stringRep Orange4 "orange4"
, stringRep OrangeRed "orangered"
, stringRep OrangeRed1 "orangered1"
, stringRep OrangeRed2 "orangered2"
, stringRep OrangeRed3 "orangered3"
, stringRep OrangeRed4 "orangered4"
, stringRep Orchid "orchid"
, stringRep Orchid1 "orchid1"
, stringRep Orchid2 "orchid2"
, stringRep Orchid3 "orchid3"
, stringRep Orchid4 "orchid4"
, stringRep PaleGoldenrod "palegoldenrod"
, stringRep PaleGreen "palegreen"
, stringRep PaleGreen1 "palegreen1"
, stringRep PaleGreen2 "palegreen2"
, stringRep PaleGreen3 "palegreen3"
, stringRep PaleGreen4 "palegreen4"
, stringRep PaleTurquoise "paleturquoise"
, stringRep PaleTurquoise1 "paleturquoise1"
, stringRep PaleTurquoise2 "paleturquoise2"
, stringRep PaleTurquoise3 "paleturquoise3"
, stringRep PaleTurquoise4 "paleturquoise4"
, stringRep PaleVioletRed "palevioletred"
, stringRep PaleVioletRed1 "palevioletred1"
, stringRep PaleVioletRed2 "palevioletred2"
, stringRep PaleVioletRed3 "palevioletred3"
, stringRep PaleVioletRed4 "palevioletred4"
, stringRep PapayaWhip "papayawhip"
, stringRep PeachPuff "peachpuff"
, stringRep PeachPuff1 "peachpuff1"
, stringRep PeachPuff2 "peachpuff2"
, stringRep PeachPuff3 "peachpuff3"
, stringRep PeachPuff4 "peachpuff4"
, stringRep Peru "peru"
, stringRep Pink "pink"
, stringRep Pink1 "pink1"
, stringRep Pink2 "pink2"
, stringRep Pink3 "pink3"
, stringRep Pink4 "pink4"
, stringRep Plum "plum"
, stringRep Plum1 "plum1"
, stringRep Plum2 "plum2"
, stringRep Plum3 "plum3"
, stringRep Plum4 "plum4"
, stringRep PowderBlue "powderblue"
, stringRep Purple "purple"
, stringRep Purple1 "purple1"
, stringRep Purple2 "purple2"
, stringRep Purple3 "purple3"
, stringRep Purple4 "purple4"
, stringRep Red "red"
, stringRep Red1 "red1"
, stringRep Red2 "red2"
, stringRep Red3 "red3"
, stringRep Red4 "red4"
, stringRep RosyBrown "rosybrown"
, stringRep RosyBrown1 "rosybrown1"
, stringRep RosyBrown2 "rosybrown2"
, stringRep RosyBrown3 "rosybrown3"
, stringRep RosyBrown4 "rosybrown4"
, stringRep RoyalBlue "royalblue"
, stringRep RoyalBlue1 "royalblue1"
, stringRep RoyalBlue2 "royalblue2"
, stringRep RoyalBlue3 "royalblue3"
, stringRep RoyalBlue4 "royalblue4"
, stringRep SaddleBrown "saddlebrown"
, stringRep Salmon "salmon"
, stringRep Salmon1 "salmon1"
, stringRep Salmon2 "salmon2"
, stringRep Salmon3 "salmon3"
, stringRep Salmon4 "salmon4"
, stringRep SandyBrown "sandybrown"
, stringRep SeaGreen "seagreen"
, stringRep SeaGreen1 "seagreen1"
, stringRep SeaGreen2 "seagreen2"
, stringRep SeaGreen3 "seagreen3"
, stringRep SeaGreen4 "seagreen4"
, stringRep SeaShell "seashell"
, stringRep SeaShell1 "seashell1"
, stringRep SeaShell2 "seashell2"
, stringRep SeaShell3 "seashell3"
, stringRep SeaShell4 "seashell4"
, stringRep Sienna "sienna"
, stringRep Sienna1 "sienna1"
, stringRep Sienna2 "sienna2"
, stringRep Sienna3 "sienna3"
, stringRep Sienna4 "sienna4"
, stringRep SkyBlue "skyblue"
, stringRep SkyBlue1 "skyblue1"
, stringRep SkyBlue2 "skyblue2"
, stringRep SkyBlue3 "skyblue3"
, stringRep SkyBlue4 "skyblue4"
, stringRep SlateBlue "slateblue"
, stringRep SlateBlue1 "slateblue1"
, stringRep SlateBlue2 "slateblue2"
, stringRep SlateBlue3 "slateblue3"
, stringRep SlateBlue4 "slateblue4"
, stringReps SlateGray ["slategray", "slategrey"]
, stringReps SlateGray1 ["slategray1", "slategrey1"]
, stringReps SlateGray2 ["slategray2", "slategrey2"]
, stringReps SlateGray3 ["slategray3", "slategrey3"]
, stringReps SlateGray4 ["slategray4", "slategrey4"]
, stringRep Snow "snow"
, stringRep Snow1 "snow1"
, stringRep Snow2 "snow2"
, stringRep Snow3 "snow3"
, stringRep Snow4 "snow4"
, stringRep SpringGreen "springgreen"
, stringRep SpringGreen1 "springgreen1"
, stringRep SpringGreen2 "springgreen2"
, stringRep SpringGreen3 "springgreen3"
, stringRep SpringGreen4 "springgreen4"
, stringRep SteelBlue "steelblue"
, stringRep SteelBlue1 "steelblue1"
, stringRep SteelBlue2 "steelblue2"
, stringRep SteelBlue3 "steelblue3"
, stringRep SteelBlue4 "steelblue4"
, stringRep Tan "tan"
, stringRep Tan1 "tan1"
, stringRep Tan2 "tan2"
, stringRep Tan3 "tan3"
, stringRep Tan4 "tan4"
, stringRep Thistle "thistle"
, stringRep Thistle1 "thistle1"
, stringRep Thistle2 "thistle2"
, stringRep Thistle3 "thistle3"
, stringRep Thistle4 "thistle4"
, stringRep Tomato "tomato"
, stringRep Tomato1 "tomato1"
, stringRep Tomato2 "tomato2"
, stringRep Tomato3 "tomato3"
, stringRep Tomato4 "tomato4"
, stringReps Transparent ["transparent", "invis", "none"]
, stringRep Turquoise "turquoise"
, stringRep Turquoise1 "turquoise1"
, stringRep Turquoise2 "turquoise2"
, stringRep Turquoise3 "turquoise3"
, stringRep Turquoise4 "turquoise4"
, stringRep Violet "violet"
, stringRep VioletRed "violetred"
, stringRep VioletRed1 "violetred1"
, stringRep VioletRed2 "violetred2"
, stringRep VioletRed3 "violetred3"
, stringRep VioletRed4 "violetred4"
, stringRep Wheat "wheat"
, stringRep Wheat1 "wheat1"
, stringRep Wheat2 "wheat2"
, stringRep Wheat3 "wheat3"
, stringRep Wheat4 "wheat4"
, stringRep White "white"
, stringRep WhiteSmoke "whitesmoke"
, stringRep Yellow "yellow"
, stringRep Yellow1 "yellow1"
, stringRep Yellow2 "yellow2"
, stringRep Yellow3 "yellow3"
, stringRep Yellow4 "yellow4"
, stringRep YellowGreen "yellowgreen"
]
-- | Attempt to convert a 'Color' into a 'Colour' value with an alpha
-- channel. The use of 'Maybe' is because 'BrewerColor' values
-- cannot be converted without knowing which actual 'BrewerName' and
-- level color scheme is being used.
toColour :: Color -> Maybe (AlphaColour Double)
toColour (RGB r g b) = Just . opaque $ sRGB24 r g b
toColour (RGBA r g b a) = Just . withOpacity (sRGB24 r g b) $ toOpacity a
-- Colour expects the hue to be an angle, so multiply by 360
toColour (HSV h s v) = Just . opaque . uncurryRGB sRGB $ hsv (h*360) s v
toColour (X11Color c) = Just $ x11Colour c
toColour BrewerColor{} = Nothing
toOpacity :: Word8 -> Double
toOpacity a = fromIntegral a / maxWord
-- | Convert an 'X11Color' to its equivalent 'Colour' value. Note
-- that it uses 'AlphaColour' because of 'Transparent'; all other
-- 'X11Color' values are completely opaque.
x11Colour :: X11Color -> AlphaColour Double
x11Colour AliceBlue = opaque $ sRGB24 240 248 255
x11Colour AntiqueWhite = opaque $ sRGB24 250 235 215
x11Colour AntiqueWhite1 = opaque $ sRGB24 255 239 219
x11Colour AntiqueWhite2 = opaque $ sRGB24 238 223 204
x11Colour AntiqueWhite3 = opaque $ sRGB24 205 192 176
x11Colour AntiqueWhite4 = opaque $ sRGB24 139 131 120
x11Colour Aquamarine = opaque $ sRGB24 127 255 212
x11Colour Aquamarine1 = opaque $ sRGB24 127 255 212
x11Colour Aquamarine2 = opaque $ sRGB24 118 238 198
x11Colour Aquamarine3 = opaque $ sRGB24 102 205 170
x11Colour Aquamarine4 = opaque $ sRGB24 69 139 116
x11Colour Azure = opaque $ sRGB24 240 255 255
x11Colour Azure1 = opaque $ sRGB24 240 255 255
x11Colour Azure2 = opaque $ sRGB24 224 238 238
x11Colour Azure3 = opaque $ sRGB24 193 205 205
x11Colour Azure4 = opaque $ sRGB24 131 139 139
x11Colour Beige = opaque $ sRGB24 245 245 220
x11Colour Bisque = opaque $ sRGB24 255 228 196
x11Colour Bisque1 = opaque $ sRGB24 255 228 196
x11Colour Bisque2 = opaque $ sRGB24 238 213 183
x11Colour Bisque3 = opaque $ sRGB24 205 183 158
x11Colour Bisque4 = opaque $ sRGB24 139 125 107
x11Colour Black = opaque $ sRGB24 0 0 0
x11Colour BlanchedAlmond = opaque $ sRGB24 255 235 205
x11Colour Blue = opaque $ sRGB24 0 0 255
x11Colour Blue1 = opaque $ sRGB24 0 0 255
x11Colour Blue2 = opaque $ sRGB24 0 0 238
x11Colour Blue3 = opaque $ sRGB24 0 0 205
x11Colour Blue4 = opaque $ sRGB24 0 0 139
x11Colour BlueViolet = opaque $ sRGB24 138 43 226
x11Colour Brown = opaque $ sRGB24 165 42 42
x11Colour Brown1 = opaque $ sRGB24 255 64 64
x11Colour Brown2 = opaque $ sRGB24 238 59 59
x11Colour Brown3 = opaque $ sRGB24 205 51 51
x11Colour Brown4 = opaque $ sRGB24 139 35 35
x11Colour Burlywood = opaque $ sRGB24 222 184 135
x11Colour Burlywood1 = opaque $ sRGB24 255 211 155
x11Colour Burlywood2 = opaque $ sRGB24 238 197 145
x11Colour Burlywood3 = opaque $ sRGB24 205 170 125
x11Colour Burlywood4 = opaque $ sRGB24 139 115 85
x11Colour CadetBlue = opaque $ sRGB24 95 158 160
x11Colour CadetBlue1 = opaque $ sRGB24 152 245 255
x11Colour CadetBlue2 = opaque $ sRGB24 142 229 238
x11Colour CadetBlue3 = opaque $ sRGB24 122 197 205
x11Colour CadetBlue4 = opaque $ sRGB24 83 134 139
x11Colour Chartreuse = opaque $ sRGB24 127 255 0
x11Colour Chartreuse1 = opaque $ sRGB24 127 255 0
x11Colour Chartreuse2 = opaque $ sRGB24 118 238 0
x11Colour Chartreuse3 = opaque $ sRGB24 102 205 0
x11Colour Chartreuse4 = opaque $ sRGB24 69 139 0
x11Colour Chocolate = opaque $ sRGB24 210 105 30
x11Colour Chocolate1 = opaque $ sRGB24 255 127 36
x11Colour Chocolate2 = opaque $ sRGB24 238 118 33
x11Colour Chocolate3 = opaque $ sRGB24 205 102 29
x11Colour Chocolate4 = opaque $ sRGB24 139 69 19
x11Colour Coral = opaque $ sRGB24 255 127 80
x11Colour Coral1 = opaque $ sRGB24 255 114 86
x11Colour Coral2 = opaque $ sRGB24 238 106 80
x11Colour Coral3 = opaque $ sRGB24 205 91 69
x11Colour Coral4 = opaque $ sRGB24 139 62 47
x11Colour CornFlowerBlue = opaque $ sRGB24 100 149 237
x11Colour CornSilk = opaque $ sRGB24 255 248 220
x11Colour CornSilk1 = opaque $ sRGB24 255 248 220
x11Colour CornSilk2 = opaque $ sRGB24 238 232 205
x11Colour CornSilk3 = opaque $ sRGB24 205 200 177
x11Colour CornSilk4 = opaque $ sRGB24 139 136 120
x11Colour Crimson = opaque $ sRGB24 220 20 60
x11Colour Cyan = opaque $ sRGB24 0 255 255
x11Colour Cyan1 = opaque $ sRGB24 0 255 255
x11Colour Cyan2 = opaque $ sRGB24 0 238 238
x11Colour Cyan3 = opaque $ sRGB24 0 205 205
x11Colour Cyan4 = opaque $ sRGB24 0 139 139
x11Colour DarkGoldenrod = opaque $ sRGB24 184 134 11
x11Colour DarkGoldenrod1 = opaque $ sRGB24 255 185 15
x11Colour DarkGoldenrod2 = opaque $ sRGB24 238 173 14
x11Colour DarkGoldenrod3 = opaque $ sRGB24 205 149 12
x11Colour DarkGoldenrod4 = opaque $ sRGB24 139 101 8
x11Colour DarkGreen = opaque $ sRGB24 0 100 0
x11Colour Darkkhaki = opaque $ sRGB24 189 183 107
x11Colour DarkOliveGreen = opaque $ sRGB24 85 107 47
x11Colour DarkOliveGreen1 = opaque $ sRGB24 202 255 112
x11Colour DarkOliveGreen2 = opaque $ sRGB24 188 238 104
x11Colour DarkOliveGreen3 = opaque $ sRGB24 162 205 90
x11Colour DarkOliveGreen4 = opaque $ sRGB24 110 139 61
x11Colour DarkOrange = opaque $ sRGB24 255 140 0
x11Colour DarkOrange1 = opaque $ sRGB24 255 127 0
x11Colour DarkOrange2 = opaque $ sRGB24 238 118 0
x11Colour DarkOrange3 = opaque $ sRGB24 205 102 0
x11Colour DarkOrange4 = opaque $ sRGB24 139 69 0
x11Colour DarkOrchid = opaque $ sRGB24 153 50 204
x11Colour DarkOrchid1 = opaque $ sRGB24 191 62 255
x11Colour DarkOrchid2 = opaque $ sRGB24 178 58 238
x11Colour DarkOrchid3 = opaque $ sRGB24 154 50 205
x11Colour DarkOrchid4 = opaque $ sRGB24 104 34 139
x11Colour DarkSalmon = opaque $ sRGB24 233 150 122
x11Colour DarkSeaGreen = opaque $ sRGB24 143 188 143
x11Colour DarkSeaGreen1 = opaque $ sRGB24 193 255 193
x11Colour DarkSeaGreen2 = opaque $ sRGB24 180 238 180
x11Colour DarkSeaGreen3 = opaque $ sRGB24 155 205 155
x11Colour DarkSeaGreen4 = opaque $ sRGB24 105 139 105
x11Colour DarkSlateBlue = opaque $ sRGB24 72 61 139
x11Colour DarkSlateGray = opaque $ sRGB24 47 79 79
x11Colour DarkSlateGray1 = opaque $ sRGB24 151 255 255
x11Colour DarkSlateGray2 = opaque $ sRGB24 141 238 238
x11Colour DarkSlateGray3 = opaque $ sRGB24 121 205 205
x11Colour DarkSlateGray4 = opaque $ sRGB24 82 139 139
x11Colour DarkTurquoise = opaque $ sRGB24 0 206 209
x11Colour DarkViolet = opaque $ sRGB24 148 0 211
x11Colour DeepPink = opaque $ sRGB24 255 20 147
x11Colour DeepPink1 = opaque $ sRGB24 255 20 147
x11Colour DeepPink2 = opaque $ sRGB24 238 18 137
x11Colour DeepPink3 = opaque $ sRGB24 205 16 118
x11Colour DeepPink4 = opaque $ sRGB24 139 10 80
x11Colour DeepSkyBlue = opaque $ sRGB24 0 191 255
x11Colour DeepSkyBlue1 = opaque $ sRGB24 0 191 255
x11Colour DeepSkyBlue2 = opaque $ sRGB24 0 178 238
x11Colour DeepSkyBlue3 = opaque $ sRGB24 0 154 205
x11Colour DeepSkyBlue4 = opaque $ sRGB24 0 104 139
x11Colour DimGray = opaque $ sRGB24 105 105 105
x11Colour DodgerBlue = opaque $ sRGB24 30 144 255
x11Colour DodgerBlue1 = opaque $ sRGB24 30 144 255
x11Colour DodgerBlue2 = opaque $ sRGB24 28 134 238
x11Colour DodgerBlue3 = opaque $ sRGB24 24 116 205
x11Colour DodgerBlue4 = opaque $ sRGB24 16 78 139
x11Colour Firebrick = opaque $ sRGB24 178 34 34
x11Colour Firebrick1 = opaque $ sRGB24 255 48 48
x11Colour Firebrick2 = opaque $ sRGB24 238 44 44
x11Colour Firebrick3 = opaque $ sRGB24 205 38 38
x11Colour Firebrick4 = opaque $ sRGB24 139 26 26
x11Colour FloralWhite = opaque $ sRGB24 255 250 240
x11Colour ForestGreen = opaque $ sRGB24 34 139 34
x11Colour Gainsboro = opaque $ sRGB24 220 220 220
x11Colour GhostWhite = opaque $ sRGB24 248 248 255
x11Colour Gold = opaque $ sRGB24 255 215 0
x11Colour Gold1 = opaque $ sRGB24 255 215 0
x11Colour Gold2 = opaque $ sRGB24 238 201 0
x11Colour Gold3 = opaque $ sRGB24 205 173 0
x11Colour Gold4 = opaque $ sRGB24 139 117 0
x11Colour Goldenrod = opaque $ sRGB24 218 165 32
x11Colour Goldenrod1 = opaque $ sRGB24 255 193 37
x11Colour Goldenrod2 = opaque $ sRGB24 238 180 34
x11Colour Goldenrod3 = opaque $ sRGB24 205 155 29
x11Colour Goldenrod4 = opaque $ sRGB24 139 105 20
x11Colour Gray = opaque $ sRGB24 192 192 192
x11Colour Gray0 = opaque $ sRGB24 0 0 0
x11Colour Gray1 = opaque $ sRGB24 3 3 3
x11Colour Gray2 = opaque $ sRGB24 5 5 5
x11Colour Gray3 = opaque $ sRGB24 8 8 8
x11Colour Gray4 = opaque $ sRGB24 10 10 10
x11Colour Gray5 = opaque $ sRGB24 13 13 13
x11Colour Gray6 = opaque $ sRGB24 15 15 15
x11Colour Gray7 = opaque $ sRGB24 18 18 18
x11Colour Gray8 = opaque $ sRGB24 20 20 20
x11Colour Gray9 = opaque $ sRGB24 23 23 23
x11Colour Gray10 = opaque $ sRGB24 26 26 26
x11Colour Gray11 = opaque $ sRGB24 28 28 28
x11Colour Gray12 = opaque $ sRGB24 31 31 31
x11Colour Gray13 = opaque $ sRGB24 33 33 33
x11Colour Gray14 = opaque $ sRGB24 36 36 36
x11Colour Gray15 = opaque $ sRGB24 38 38 38
x11Colour Gray16 = opaque $ sRGB24 41 41 41
x11Colour Gray17 = opaque $ sRGB24 43 43 43
x11Colour Gray18 = opaque $ sRGB24 46 46 46
x11Colour Gray19 = opaque $ sRGB24 48 48 48
x11Colour Gray20 = opaque $ sRGB24 51 51 51
x11Colour Gray21 = opaque $ sRGB24 54 54 54
x11Colour Gray22 = opaque $ sRGB24 56 56 56
x11Colour Gray23 = opaque $ sRGB24 59 59 59
x11Colour Gray24 = opaque $ sRGB24 61 61 61
x11Colour Gray25 = opaque $ sRGB24 64 64 64
x11Colour Gray26 = opaque $ sRGB24 66 66 66
x11Colour Gray27 = opaque $ sRGB24 69 69 69
x11Colour Gray28 = opaque $ sRGB24 71 71 71
x11Colour Gray29 = opaque $ sRGB24 74 74 74
x11Colour Gray30 = opaque $ sRGB24 77 77 77
x11Colour Gray31 = opaque $ sRGB24 79 79 79
x11Colour Gray32 = opaque $ sRGB24 82 82 82
x11Colour Gray33 = opaque $ sRGB24 84 84 84
x11Colour Gray34 = opaque $ sRGB24 87 87 87
x11Colour Gray35 = opaque $ sRGB24 89 89 89
x11Colour Gray36 = opaque $ sRGB24 92 92 92
x11Colour Gray37 = opaque $ sRGB24 94 94 94
x11Colour Gray38 = opaque $ sRGB24 97 97 97
x11Colour Gray39 = opaque $ sRGB24 99 99 99
x11Colour Gray40 = opaque $ sRGB24 102 102 102
x11Colour Gray41 = opaque $ sRGB24 105 105 105
x11Colour Gray42 = opaque $ sRGB24 107 107 107
x11Colour Gray43 = opaque $ sRGB24 110 110 110
x11Colour Gray44 = opaque $ sRGB24 112 112 112
x11Colour Gray45 = opaque $ sRGB24 115 115 115
x11Colour Gray46 = opaque $ sRGB24 117 117 117
x11Colour Gray47 = opaque $ sRGB24 120 120 120
x11Colour Gray48 = opaque $ sRGB24 122 122 122
x11Colour Gray49 = opaque $ sRGB24 125 125 125
x11Colour Gray50 = opaque $ sRGB24 127 127 127
x11Colour Gray51 = opaque $ sRGB24 130 130 130
x11Colour Gray52 = opaque $ sRGB24 133 133 133
x11Colour Gray53 = opaque $ sRGB24 135 135 135
x11Colour Gray54 = opaque $ sRGB24 138 138 138
x11Colour Gray55 = opaque $ sRGB24 140 140 140
x11Colour Gray56 = opaque $ sRGB24 143 143 143
x11Colour Gray57 = opaque $ sRGB24 145 145 145
x11Colour Gray58 = opaque $ sRGB24 148 148 148
x11Colour Gray59 = opaque $ sRGB24 150 150 150
x11Colour Gray60 = opaque $ sRGB24 153 153 153
x11Colour Gray61 = opaque $ sRGB24 156 156 156
x11Colour Gray62 = opaque $ sRGB24 158 158 158
x11Colour Gray63 = opaque $ sRGB24 161 161 161
x11Colour Gray64 = opaque $ sRGB24 163 163 163
x11Colour Gray65 = opaque $ sRGB24 166 166 166
x11Colour Gray66 = opaque $ sRGB24 168 168 168
x11Colour Gray67 = opaque $ sRGB24 171 171 171
x11Colour Gray68 = opaque $ sRGB24 173 173 173
x11Colour Gray69 = opaque $ sRGB24 176 176 176
x11Colour Gray70 = opaque $ sRGB24 179 179 179
x11Colour Gray71 = opaque $ sRGB24 181 181 181
x11Colour Gray72 = opaque $ sRGB24 184 184 184
x11Colour Gray73 = opaque $ sRGB24 186 186 186
x11Colour Gray74 = opaque $ sRGB24 189 189 189
x11Colour Gray75 = opaque $ sRGB24 191 191 191
x11Colour Gray76 = opaque $ sRGB24 194 194 194
x11Colour Gray77 = opaque $ sRGB24 196 196 196
x11Colour Gray78 = opaque $ sRGB24 199 199 199
x11Colour Gray79 = opaque $ sRGB24 201 201 201
x11Colour Gray80 = opaque $ sRGB24 204 204 204
x11Colour Gray81 = opaque $ sRGB24 207 207 207
x11Colour Gray82 = opaque $ sRGB24 209 209 209
x11Colour Gray83 = opaque $ sRGB24 212 212 212
x11Colour Gray84 = opaque $ sRGB24 214 214 214
x11Colour Gray85 = opaque $ sRGB24 217 217 217
x11Colour Gray86 = opaque $ sRGB24 219 219 219
x11Colour Gray87 = opaque $ sRGB24 222 222 222
x11Colour Gray88 = opaque $ sRGB24 224 224 224
x11Colour Gray89 = opaque $ sRGB24 227 227 227
x11Colour Gray90 = opaque $ sRGB24 229 229 229
x11Colour Gray91 = opaque $ sRGB24 232 232 232
x11Colour Gray92 = opaque $ sRGB24 235 235 235
x11Colour Gray93 = opaque $ sRGB24 237 237 237
x11Colour Gray94 = opaque $ sRGB24 240 240 240
x11Colour Gray95 = opaque $ sRGB24 242 242 242
x11Colour Gray96 = opaque $ sRGB24 245 245 245
x11Colour Gray97 = opaque $ sRGB24 247 247 247
x11Colour Gray98 = opaque $ sRGB24 250 250 250
x11Colour Gray99 = opaque $ sRGB24 252 252 252
x11Colour Gray100 = opaque $ sRGB24 255 255 255
x11Colour Green = opaque $ sRGB24 0 255 0
x11Colour Green1 = opaque $ sRGB24 0 255 0
x11Colour Green2 = opaque $ sRGB24 0 238 0
x11Colour Green3 = opaque $ sRGB24 0 205 0
x11Colour Green4 = opaque $ sRGB24 0 139 0
x11Colour GreenYellow = opaque $ sRGB24 173 255 47
x11Colour HoneyDew = opaque $ sRGB24 240 255 240
x11Colour HoneyDew1 = opaque $ sRGB24 240 255 240
x11Colour HoneyDew2 = opaque $ sRGB24 224 238 224
x11Colour HoneyDew3 = opaque $ sRGB24 193 205 193
x11Colour HoneyDew4 = opaque $ sRGB24 131 139 131
x11Colour HotPink = opaque $ sRGB24 255 105 180
x11Colour HotPink1 = opaque $ sRGB24 255 110 180
x11Colour HotPink2 = opaque $ sRGB24 238 106 167
x11Colour HotPink3 = opaque $ sRGB24 205 96 144
x11Colour HotPink4 = opaque $ sRGB24 139 58 98
x11Colour IndianRed = opaque $ sRGB24 205 92 92
x11Colour IndianRed1 = opaque $ sRGB24 255 106 106
x11Colour IndianRed2 = opaque $ sRGB24 238 99 99
x11Colour IndianRed3 = opaque $ sRGB24 205 85 85
x11Colour IndianRed4 = opaque $ sRGB24 139 58 58
x11Colour Indigo = opaque $ sRGB24 75 0 130
x11Colour Ivory = opaque $ sRGB24 255 255 240
x11Colour Ivory1 = opaque $ sRGB24 255 255 240
x11Colour Ivory2 = opaque $ sRGB24 238 238 224
x11Colour Ivory3 = opaque $ sRGB24 205 205 193
x11Colour Ivory4 = opaque $ sRGB24 139 139 131
x11Colour Khaki = opaque $ sRGB24 240 230 140
x11Colour Khaki1 = opaque $ sRGB24 255 246 143
x11Colour Khaki2 = opaque $ sRGB24 238 230 133
x11Colour Khaki3 = opaque $ sRGB24 205 198 115
x11Colour Khaki4 = opaque $ sRGB24 139 134 78
x11Colour Lavender = opaque $ sRGB24 230 230 250
x11Colour LavenderBlush = opaque $ sRGB24 255 240 245
x11Colour LavenderBlush1 = opaque $ sRGB24 255 240 245
x11Colour LavenderBlush2 = opaque $ sRGB24 238 224 229
x11Colour LavenderBlush3 = opaque $ sRGB24 205 193 197
x11Colour LavenderBlush4 = opaque $ sRGB24 139 131 134
x11Colour LawnGreen = opaque $ sRGB24 124 252 0
x11Colour LemonChiffon = opaque $ sRGB24 255 250 205
x11Colour LemonChiffon1 = opaque $ sRGB24 255 250 205
x11Colour LemonChiffon2 = opaque $ sRGB24 238 233 191
x11Colour LemonChiffon3 = opaque $ sRGB24 205 201 165
x11Colour LemonChiffon4 = opaque $ sRGB24 139 137 112
x11Colour LightBlue = opaque $ sRGB24 173 216 230
x11Colour LightBlue1 = opaque $ sRGB24 191 239 255
x11Colour LightBlue2 = opaque $ sRGB24 178 223 238
x11Colour LightBlue3 = opaque $ sRGB24 154 192 205
x11Colour LightBlue4 = opaque $ sRGB24 104 131 139
x11Colour LightCoral = opaque $ sRGB24 240 128 128
x11Colour LightCyan = opaque $ sRGB24 224 255 255
x11Colour LightCyan1 = opaque $ sRGB24 224 255 255
x11Colour LightCyan2 = opaque $ sRGB24 209 238 238
x11Colour LightCyan3 = opaque $ sRGB24 180 205 205
x11Colour LightCyan4 = opaque $ sRGB24 122 139 139
x11Colour LightGoldenrod = opaque $ sRGB24 238 221 130
x11Colour LightGoldenrod1 = opaque $ sRGB24 255 236 139
x11Colour LightGoldenrod2 = opaque $ sRGB24 238 220 130
x11Colour LightGoldenrod3 = opaque $ sRGB24 205 190 112
x11Colour LightGoldenrod4 = opaque $ sRGB24 139 129 76
x11Colour LightGoldenrodYellow = opaque $ sRGB24 250 250 210
x11Colour LightGray = opaque $ sRGB24 211 211 211
x11Colour LightPink = opaque $ sRGB24 255 182 193
x11Colour LightPink1 = opaque $ sRGB24 255 174 185
x11Colour LightPink2 = opaque $ sRGB24 238 162 173
x11Colour LightPink3 = opaque $ sRGB24 205 140 149
x11Colour LightPink4 = opaque $ sRGB24 139 95 101
x11Colour LightSalmon = opaque $ sRGB24 255 160 122
x11Colour LightSalmon1 = opaque $ sRGB24 255 160 122
x11Colour LightSalmon2 = opaque $ sRGB24 238 149 114
x11Colour LightSalmon3 = opaque $ sRGB24 205 129 98
x11Colour LightSalmon4 = opaque $ sRGB24 139 87 66
x11Colour LightSeaGreen = opaque $ sRGB24 32 178 170
x11Colour LightSkyBlue = opaque $ sRGB24 135 206 250
x11Colour LightSkyBlue1 = opaque $ sRGB24 176 226 255
x11Colour LightSkyBlue2 = opaque $ sRGB24 164 211 238
x11Colour LightSkyBlue3 = opaque $ sRGB24 141 182 205
x11Colour LightSkyBlue4 = opaque $ sRGB24 96 123 139
x11Colour LightSlateBlue = opaque $ sRGB24 132 112 255
x11Colour LightSlateGray = opaque $ sRGB24 119 136 153
x11Colour LightSteelBlue = opaque $ sRGB24 176 196 222
x11Colour LightSteelBlue1 = opaque $ sRGB24 202 225 255
x11Colour LightSteelBlue2 = opaque $ sRGB24 188 210 238
x11Colour LightSteelBlue3 = opaque $ sRGB24 162 181 205
x11Colour LightSteelBlue4 = opaque $ sRGB24 110 123 139
x11Colour LightYellow = opaque $ sRGB24 255 255 224
x11Colour LightYellow1 = opaque $ sRGB24 255 255 224
x11Colour LightYellow2 = opaque $ sRGB24 238 238 209
x11Colour LightYellow3 = opaque $ sRGB24 205 205 180
x11Colour LightYellow4 = opaque $ sRGB24 139 139 122
x11Colour LimeGreen = opaque $ sRGB24 50 205 50
x11Colour Linen = opaque $ sRGB24 250 240 230
x11Colour Magenta = opaque $ sRGB24 255 0 255
x11Colour Magenta1 = opaque $ sRGB24 255 0 255
x11Colour Magenta2 = opaque $ sRGB24 238 0 238
x11Colour Magenta3 = opaque $ sRGB24 205 0 205
x11Colour Magenta4 = opaque $ sRGB24 139 0 139
x11Colour Maroon = opaque $ sRGB24 176 48 96
x11Colour Maroon1 = opaque $ sRGB24 255 52 179
x11Colour Maroon2 = opaque $ sRGB24 238 48 167
x11Colour Maroon3 = opaque $ sRGB24 205 41 144
x11Colour Maroon4 = opaque $ sRGB24 139 28 98
x11Colour MediumAquamarine = opaque $ sRGB24 102 205 170
x11Colour MediumBlue = opaque $ sRGB24 0 0 205
x11Colour MediumOrchid = opaque $ sRGB24 186 85 211
x11Colour MediumOrchid1 = opaque $ sRGB24 224 102 255
x11Colour MediumOrchid2 = opaque $ sRGB24 209 95 238
x11Colour MediumOrchid3 = opaque $ sRGB24 180 82 205
x11Colour MediumOrchid4 = opaque $ sRGB24 122 55 139
x11Colour MediumPurple = opaque $ sRGB24 147 112 219
x11Colour MediumPurple1 = opaque $ sRGB24 171 130 255
x11Colour MediumPurple2 = opaque $ sRGB24 159 121 238
x11Colour MediumPurple3 = opaque $ sRGB24 137 104 205
x11Colour MediumPurple4 = opaque $ sRGB24 93 71 139
x11Colour MediumSeaGreen = opaque $ sRGB24 60 179 113
x11Colour MediumSlateBlue = opaque $ sRGB24 123 104 238
x11Colour MediumSpringGreen = opaque $ sRGB24 0 250 154
x11Colour MediumTurquoise = opaque $ sRGB24 72 209 204
x11Colour MediumVioletRed = opaque $ sRGB24 199 21 133
x11Colour MidnightBlue = opaque $ sRGB24 25 25 112
x11Colour MintCream = opaque $ sRGB24 245 255 250
x11Colour MistyRose = opaque $ sRGB24 255 228 225
x11Colour MistyRose1 = opaque $ sRGB24 255 228 225
x11Colour MistyRose2 = opaque $ sRGB24 238 213 210
x11Colour MistyRose3 = opaque $ sRGB24 205 183 181
x11Colour MistyRose4 = opaque $ sRGB24 139 125 123
x11Colour Moccasin = opaque $ sRGB24 255 228 181
x11Colour NavajoWhite = opaque $ sRGB24 255 222 173
x11Colour NavajoWhite1 = opaque $ sRGB24 255 222 173
x11Colour NavajoWhite2 = opaque $ sRGB24 238 207 161
x11Colour NavajoWhite3 = opaque $ sRGB24 205 179 139
x11Colour NavajoWhite4 = opaque $ sRGB24 139 121 94
x11Colour Navy = opaque $ sRGB24 0 0 128
x11Colour NavyBlue = opaque $ sRGB24 0 0 128
x11Colour OldLace = opaque $ sRGB24 253 245 230
x11Colour OliveDrab = opaque $ sRGB24 107 142 35
x11Colour OliveDrab1 = opaque $ sRGB24 192 255 62
x11Colour OliveDrab2 = opaque $ sRGB24 179 238 58
x11Colour OliveDrab3 = opaque $ sRGB24 154 205 50
x11Colour OliveDrab4 = opaque $ sRGB24 105 139 34
x11Colour Orange = opaque $ sRGB24 255 165 0
x11Colour Orange1 = opaque $ sRGB24 255 165 0
x11Colour Orange2 = opaque $ sRGB24 238 154 0
x11Colour Orange3 = opaque $ sRGB24 205 133 0
x11Colour Orange4 = opaque $ sRGB24 139 90 0
x11Colour OrangeRed = opaque $ sRGB24 255 69 0
x11Colour OrangeRed1 = opaque $ sRGB24 255 69 0
x11Colour OrangeRed2 = opaque $ sRGB24 238 64 0
x11Colour OrangeRed3 = opaque $ sRGB24 205 55 0
x11Colour OrangeRed4 = opaque $ sRGB24 139 37 0
x11Colour Orchid = opaque $ sRGB24 218 112 214
x11Colour Orchid1 = opaque $ sRGB24 255 131 250
x11Colour Orchid2 = opaque $ sRGB24 238 122 233
x11Colour Orchid3 = opaque $ sRGB24 205 105 201
x11Colour Orchid4 = opaque $ sRGB24 139 71 137
x11Colour PaleGoldenrod = opaque $ sRGB24 238 232 170
x11Colour PaleGreen = opaque $ sRGB24 152 251 152
x11Colour PaleGreen1 = opaque $ sRGB24 154 255 154
x11Colour PaleGreen2 = opaque $ sRGB24 144 238 144
x11Colour PaleGreen3 = opaque $ sRGB24 124 205 124
x11Colour PaleGreen4 = opaque $ sRGB24 84 139 84
x11Colour PaleTurquoise = opaque $ sRGB24 175 238 238
x11Colour PaleTurquoise1 = opaque $ sRGB24 187 255 255
x11Colour PaleTurquoise2 = opaque $ sRGB24 174 238 238
x11Colour PaleTurquoise3 = opaque $ sRGB24 150 205 205
x11Colour PaleTurquoise4 = opaque $ sRGB24 102 139 139
x11Colour PaleVioletRed = opaque $ sRGB24 219 112 147
x11Colour PaleVioletRed1 = opaque $ sRGB24 255 130 171
x11Colour PaleVioletRed2 = opaque $ sRGB24 238 121 159
x11Colour PaleVioletRed3 = opaque $ sRGB24 205 104 137
x11Colour PaleVioletRed4 = opaque $ sRGB24 139 71 93
x11Colour PapayaWhip = opaque $ sRGB24 255 239 213
x11Colour PeachPuff = opaque $ sRGB24 255 218 185
x11Colour PeachPuff1 = opaque $ sRGB24 255 218 185
x11Colour PeachPuff2 = opaque $ sRGB24 238 203 173
x11Colour PeachPuff3 = opaque $ sRGB24 205 175 149
x11Colour PeachPuff4 = opaque $ sRGB24 139 119 101
x11Colour Peru = opaque $ sRGB24 205 133 63
x11Colour Pink = opaque $ sRGB24 255 192 203
x11Colour Pink1 = opaque $ sRGB24 255 181 197
x11Colour Pink2 = opaque $ sRGB24 238 169 184
x11Colour Pink3 = opaque $ sRGB24 205 145 158
x11Colour Pink4 = opaque $ sRGB24 139 99 108
x11Colour Plum = opaque $ sRGB24 221 160 221
x11Colour Plum1 = opaque $ sRGB24 255 187 255
x11Colour Plum2 = opaque $ sRGB24 238 174 238
x11Colour Plum3 = opaque $ sRGB24 205 150 205
x11Colour Plum4 = opaque $ sRGB24 139 102 139
x11Colour PowderBlue = opaque $ sRGB24 176 224 230
x11Colour Purple = opaque $ sRGB24 160 32 240
x11Colour Purple1 = opaque $ sRGB24 155 48 255
x11Colour Purple2 = opaque $ sRGB24 145 44 238
x11Colour Purple3 = opaque $ sRGB24 125 38 205
x11Colour Purple4 = opaque $ sRGB24 85 26 139
x11Colour Red = opaque $ sRGB24 255 0 0
x11Colour Red1 = opaque $ sRGB24 255 0 0
x11Colour Red2 = opaque $ sRGB24 238 0 0
x11Colour Red3 = opaque $ sRGB24 205 0 0
x11Colour Red4 = opaque $ sRGB24 139 0 0
x11Colour RosyBrown = opaque $ sRGB24 188 143 143
x11Colour RosyBrown1 = opaque $ sRGB24 255 193 193
x11Colour RosyBrown2 = opaque $ sRGB24 238 180 180
x11Colour RosyBrown3 = opaque $ sRGB24 205 155 155
x11Colour RosyBrown4 = opaque $ sRGB24 139 105 105
x11Colour RoyalBlue = opaque $ sRGB24 65 105 225
x11Colour RoyalBlue1 = opaque $ sRGB24 72 118 255
x11Colour RoyalBlue2 = opaque $ sRGB24 67 110 238
x11Colour RoyalBlue3 = opaque $ sRGB24 58 95 205
x11Colour RoyalBlue4 = opaque $ sRGB24 39 64 139
x11Colour SaddleBrown = opaque $ sRGB24 139 69 19
x11Colour Salmon = opaque $ sRGB24 250 128 114
x11Colour Salmon1 = opaque $ sRGB24 255 140 105
x11Colour Salmon2 = opaque $ sRGB24 238 130 98
x11Colour Salmon3 = opaque $ sRGB24 205 112 84
x11Colour Salmon4 = opaque $ sRGB24 139 76 57
x11Colour SandyBrown = opaque $ sRGB24 244 164 96
x11Colour SeaGreen = opaque $ sRGB24 46 139 87
x11Colour SeaGreen1 = opaque $ sRGB24 84 255 159
x11Colour SeaGreen2 = opaque $ sRGB24 78 238 148
x11Colour SeaGreen3 = opaque $ sRGB24 67 205 128
x11Colour SeaGreen4 = opaque $ sRGB24 46 139 87
x11Colour SeaShell = opaque $ sRGB24 255 245 238
x11Colour SeaShell1 = opaque $ sRGB24 255 245 238
x11Colour SeaShell2 = opaque $ sRGB24 238 229 222
x11Colour SeaShell3 = opaque $ sRGB24 205 197 191
x11Colour SeaShell4 = opaque $ sRGB24 139 134 130
x11Colour Sienna = opaque $ sRGB24 160 82 45
x11Colour Sienna1 = opaque $ sRGB24 255 130 71
x11Colour Sienna2 = opaque $ sRGB24 238 121 66
x11Colour Sienna3 = opaque $ sRGB24 205 104 57
x11Colour Sienna4 = opaque $ sRGB24 139 71 38
x11Colour SkyBlue = opaque $ sRGB24 135 206 235
x11Colour SkyBlue1 = opaque $ sRGB24 135 206 255
x11Colour SkyBlue2 = opaque $ sRGB24 126 192 238
x11Colour SkyBlue3 = opaque $ sRGB24 108 166 205
x11Colour SkyBlue4 = opaque $ sRGB24 74 112 139
x11Colour SlateBlue = opaque $ sRGB24 106 90 205
x11Colour SlateBlue1 = opaque $ sRGB24 131 111 255
x11Colour SlateBlue2 = opaque $ sRGB24 122 103 238
x11Colour SlateBlue3 = opaque $ sRGB24 105 89 205
x11Colour SlateBlue4 = opaque $ sRGB24 71 60 139
x11Colour SlateGray = opaque $ sRGB24 112 128 144
x11Colour SlateGray1 = opaque $ sRGB24 198 226 255
x11Colour SlateGray2 = opaque $ sRGB24 185 211 238
x11Colour SlateGray3 = opaque $ sRGB24 159 182 205
x11Colour SlateGray4 = opaque $ sRGB24 108 123 139
x11Colour Snow = opaque $ sRGB24 255 250 250
x11Colour Snow1 = opaque $ sRGB24 255 250 250
x11Colour Snow2 = opaque $ sRGB24 238 233 233
x11Colour Snow3 = opaque $ sRGB24 205 201 201
x11Colour Snow4 = opaque $ sRGB24 139 137 137
x11Colour SpringGreen = opaque $ sRGB24 0 255 127
x11Colour SpringGreen1 = opaque $ sRGB24 0 255 127
x11Colour SpringGreen2 = opaque $ sRGB24 0 238 118
x11Colour SpringGreen3 = opaque $ sRGB24 0 205 102
x11Colour SpringGreen4 = opaque $ sRGB24 0 139 69
x11Colour SteelBlue = opaque $ sRGB24 70 130 180
x11Colour SteelBlue1 = opaque $ sRGB24 99 184 255
x11Colour SteelBlue2 = opaque $ sRGB24 92 172 238
x11Colour SteelBlue3 = opaque $ sRGB24 79 148 205
x11Colour SteelBlue4 = opaque $ sRGB24 54 100 139
x11Colour Tan = opaque $ sRGB24 210 180 140
x11Colour Tan1 = opaque $ sRGB24 255 165 79
x11Colour Tan2 = opaque $ sRGB24 238 154 73
x11Colour Tan3 = opaque $ sRGB24 205 133 63
x11Colour Tan4 = opaque $ sRGB24 139 90 43
x11Colour Thistle = opaque $ sRGB24 216 191 216
x11Colour Thistle1 = opaque $ sRGB24 255 225 255
x11Colour Thistle2 = opaque $ sRGB24 238 210 238
x11Colour Thistle3 = opaque $ sRGB24 205 181 205
x11Colour Thistle4 = opaque $ sRGB24 139 123 139
x11Colour Tomato = opaque $ sRGB24 255 99 71
x11Colour Tomato1 = opaque $ sRGB24 255 99 71
x11Colour Tomato2 = opaque $ sRGB24 238 92 66
x11Colour Tomato3 = opaque $ sRGB24 205 79 57
x11Colour Tomato4 = opaque $ sRGB24 139 54 38
x11Colour Transparent = transparent
x11Colour Turquoise = opaque $ sRGB24 64 224 208
x11Colour Turquoise1 = opaque $ sRGB24 0 245 255
x11Colour Turquoise2 = opaque $ sRGB24 0 229 238
x11Colour Turquoise3 = opaque $ sRGB24 0 197 205
x11Colour Turquoise4 = opaque $ sRGB24 0 134 139
x11Colour Violet = opaque $ sRGB24 238 130 238
x11Colour VioletRed = opaque $ sRGB24 208 32 144
x11Colour VioletRed1 = opaque $ sRGB24 255 62 150
x11Colour VioletRed2 = opaque $ sRGB24 238 58 140
x11Colour VioletRed3 = opaque $ sRGB24 205 50 120
x11Colour VioletRed4 = opaque $ sRGB24 139 34 82
x11Colour Wheat = opaque $ sRGB24 245 222 179
x11Colour Wheat1 = opaque $ sRGB24 255 231 186
x11Colour Wheat2 = opaque $ sRGB24 238 216 174
x11Colour Wheat3 = opaque $ sRGB24 205 186 150
x11Colour Wheat4 = opaque $ sRGB24 139 126 102
x11Colour White = opaque $ sRGB24 255 255 255
x11Colour WhiteSmoke = opaque $ sRGB24 245 245 245
x11Colour Yellow = opaque $ sRGB24 255 255 0
x11Colour Yellow1 = opaque $ sRGB24 255 255 0
x11Colour Yellow2 = opaque $ sRGB24 238 238 0
x11Colour Yellow3 = opaque $ sRGB24 205 205 0
x11Colour Yellow4 = opaque $ sRGB24 139 139 0
x11Colour YellowGreen = opaque $ sRGB24 154 205 50
-- | Convert a 'Colour' value to an 'RGB' 'Color'.
fromColour :: Colour Double -> Color
fromColour = uncurryRGB RGB . toSRGB24
-- | Convert an 'AlphaColour' to an 'RGBA' 'Color'. The exception to
-- this is for any 'AlphaColour' which has @alphaChannel ac == 0@;
-- these are converted to @X11Color 'Transparent'@ (note that the
-- 'Show' instance for such an 'AlphaColour' is @\"transparent\"@).
fromAColour :: AlphaColour Double -> Color
fromAColour ac
| a == 0 = X11Color Transparent
| otherwise = rgb $ round a'
where
a = alphaChannel ac
a' = a * maxWord
rgb = uncurryRGB RGBA $ toSRGB24 colour
colour = darken (recip a) (ac `over` black)
-- | The 'maxBound' of a 'Word8' value.
maxWord :: Double
maxWord = fromIntegral (maxBound :: Word8)