    {-# LANGUAGE NoImplicitPrelude #-}
    {-# LANGUAGE OverloadedStrings #-}

    module RIO.PrettyPrint.DefaultStyles
      ( defaultStyles
      ) where

    import           Data.Array.IArray ( array )
    import           RIO
    import           RIO.PrettyPrint.Types ( Style (..), Styles )
    import           System.Console.ANSI.Codes
                       ( Color (..), ColorIntensity (..), ConsoleIntensity (..)
                       , ConsoleLayer (..), SGR (..)
                       )

    -- | Default styles for rio-prettyprint output.

    defaultStyles :: Styles
    defaultStyles :: Styles
    defaultStyles = (Style, Style) -> [(Style, StyleSpec)] -> Styles
    forall (a :: * -> * -> *) e i.
    (IArray a e, Ix i) =>
    (i, i) -> [(i, e)] -> a i e
    array (Style
    forall a. Bounded a => a
    minBound, Style
    forall a. Bounded a => a
    maxBound)
      [ (Style
    Error, (Text
    "error", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Red]))
      , (Style
    Warning, (Text
    "warning", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Dull Color
    Yellow]))
      , (Style
    Info, (Text
    "info", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Dull Color
    Blue]))
      , (Style
    Debug, (Text
    "debug", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Dull Color
    Green]))
      , (Style
    OtherLevel, (Text
    "other-level", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Dull Color
    Magenta]))
      , (Style
    Good, (Text
    "good", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Green]))
      , (Style
    Shell, (Text
    "shell", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Magenta]))
      , (Style
    File, (Text
    "file", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Dull Color
    Cyan]))
        -- For now 'Url' using the same style as 'File'

      , (Style
    Url, (Text
    "url", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Dull Color
    Cyan]))
      , (Style
    Dir, (Text
    "dir", [ ConsoleIntensity -> SGR
    SetConsoleIntensity ConsoleIntensity
    BoldIntensity
                      , ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Blue ]))
      , (Style
    Recommendation, (Text
    "recommendation", [ ConsoleIntensity -> SGR
    SetConsoleIntensity ConsoleIntensity
    BoldIntensity
                                          , ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Green]))
      , (Style
    Current, (Text
    "current", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Dull Color
    Yellow]))
      , (Style
    Target, (Text
    "target", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Cyan]))
        -- TODO: what color should Module be?

      , (Style
    Module, (Text
    "module", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Magenta]))
      , (Style
    PkgComponent, (Text
    "package-component", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Cyan]))
      , (Style
    Secondary, (Text
    "secondary", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Black]))
      , (Style
    Highlight, (Text
    "highlight", [ConsoleLayer -> ColorIntensity -> Color -> SGR
    SetColor ConsoleLayer
    Foreground ColorIntensity
    Vivid Color
    Green]))
      ]