{-# LANGUAGE NoImplicitPrelude #-}

module Data.Aviation.Casa.AbbreviationsAndAcronyms.Render.Colours(
  Colours(..)
, traverseAllColours
, traverseSeparatorColours
, traverseNameColours
, traverseMeaningColours
, traverseSourceColours
, traverseScoreColours
, traverseHeadingColours
, traverseAcronymColours
, HasColours(..)
, standardColours
) where

import Control.Applicative((<*>), pure)
import Control.Category((.), id)
import Control.Lens(Traversal', Lens')
import Data.Functor(fmap, (<$>))
import Data.List((++))
import Data.Monoid(Monoid(mappend, mempty))
import Data.Semigroup(Semigroup((<>)))
import Data.String(String)

data Colours =
  Colours
    (String -> String) -- heading separator
    (String -> String) -- heading name
    (String -> String) -- heading meaning
    (String -> String) -- heading source
    (String -> String) -- heading score
    (String -> String) -- acronym separator
    (String -> String) -- acronym name
    (String -> String) -- acronym meaning
    (String -> String) -- acronym source
    (String -> String) -- acronym score

traverseAllColours ::
  Traversal'
    Colours
    (String -> String)
traverseAllColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseAllColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
f String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
ar

traverseSeparatorColours ::
  Traversal'
    Colours
    (String -> String)
traverseSeparatorColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseSeparatorColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
f String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ar

traverseNameColours ::
  Traversal'
    Colours
    (String -> String)
traverseNameColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseNameColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ar

traverseMeaningColours ::
  Traversal'
    Colours
    (String -> String)
traverseMeaningColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseMeaningColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ar

traverseSourceColours ::
  Traversal'
    Colours
    (String -> String)
traverseSourceColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseSourceColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ar

traverseScoreColours ::
  Traversal'
    Colours
    (String -> String)
traverseScoreColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseScoreColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
ar

traverseHeadingColours ::
  Traversal'
    Colours
    (String -> String)
traverseHeadingColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseHeadingColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
f String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
ar

traverseAcronymColours ::
  Traversal'
    Colours
    (String -> String)
traverseAcronymColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
traverseAcronymColours (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours ((String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> (String -> String)
 -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hc f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hn f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hm f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hs f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
forall (f :: * -> *) a. Applicative f => a -> f a
pure String -> String
hr f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String)
      -> (String -> String)
      -> (String -> String)
      -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
ac f ((String -> String)
   -> (String -> String)
   -> (String -> String)
   -> (String -> String)
   -> Colours)
-> f (String -> String)
-> f ((String -> String)
      -> (String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
an f ((String -> String)
   -> (String -> String) -> (String -> String) -> Colours)
-> f (String -> String)
-> f ((String -> String) -> (String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
am f ((String -> String) -> (String -> String) -> Colours)
-> f (String -> String) -> f ((String -> String) -> Colours)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
as f ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (String -> String) -> f (String -> String)
f String -> String
ar

instance Semigroup Colours where
  Colours String -> String
hc1 String -> String
hn1 String -> String
hm1 String -> String
hs1 String -> String
hr1 String -> String
ac1 String -> String
an1 String -> String
am1 String -> String
as1 String -> String
ar1 <> :: Colours -> Colours -> Colours
<> Colours String -> String
hc2 String -> String
hn2 String -> String
hm2 String -> String
hs2 String -> String
hr2 String -> String
ac2 String -> String
an2 String -> String
am2 String -> String
as2 String -> String
ar2 =
    (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours (String -> String
hc1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
hc2) (String -> String
hn1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
hn2) (String -> String
hm1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
hm2) (String -> String
hs1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
hs2) (String -> String
hr1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
hr2) (String -> String
ac1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
ac2) (String -> String
an1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
an2) (String -> String
am1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
am2) (String -> String
as1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
as2) (String -> String
ar1 (String -> String) -> (String -> String) -> String -> String
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> String
ar2)

instance Monoid Colours where
  mappend :: Colours -> Colours -> Colours
mappend =
    Colours -> Colours -> Colours
forall a. Semigroup a => a -> a -> a
(<>)
  mempty :: Colours
mempty =
    (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
      String -> String
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class HasColours a where
  colours ::
    Lens'
      a
      Colours
  headingSeparatorColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE headingSeparatorColours #-}
  headingSeparatorColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
headingSeparatorColours
  headingNameColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE headingNameColours #-}
  headingNameColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
headingNameColours
  headingMeaningColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE headingMeaningColours #-}
  headingMeaningColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
headingMeaningColours
  headingSourceColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE headingSourceColours #-}
  headingSourceColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
headingSourceColours
  headingScoreColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE headingScoreColours #-}
  headingScoreColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
headingScoreColours
  acronymSeparatorColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE acronymSeparatorColours #-}
  acronymSeparatorColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
acronymSeparatorColours
  acronymNameColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE acronymNameColours #-}
  acronymNameColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
acronymNameColours
  acronymMeaningColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE acronymMeaningColours #-}
  acronymMeaningColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
acronymMeaningColours
  acronymSourceColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE acronymSourceColours #-}
  acronymSourceColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
acronymSourceColours
  acronymScoreColours ::
    Lens'
      a
      (String -> String)
  {-# INLINE acronymScoreColours #-}
  acronymScoreColours =
    (Colours -> f Colours) -> a -> f a
forall a. HasColours a => Lens' a Colours
colours ((Colours -> f Colours) -> a -> f a)
-> (((String -> String) -> f (String -> String))
    -> Colours -> f Colours)
-> ((String -> String) -> f (String -> String))
-> a
-> f a
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((String -> String) -> f (String -> String))
-> Colours -> f Colours
forall a. HasColours a => Lens' a (String -> String)
acronymScoreColours

instance HasColours Colours where
  colours :: (Colours -> f Colours) -> Colours -> f Colours
colours =
    (Colours -> f Colours) -> Colours -> f Colours
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
  headingSeparatorColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
headingSeparatorColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
x String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
hc)
  headingNameColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
headingNameColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
x String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
hn)
  headingMeaningColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
headingMeaningColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
x String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
hm)
  headingSourceColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
headingSourceColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
hm String -> String
x String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
hs)
  headingScoreColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
headingScoreColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
x String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
hr)
  acronymSeparatorColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
acronymSeparatorColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
x String -> String
an String -> String
am String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
ac)
  acronymNameColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
acronymNameColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
x String -> String
am String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
an)
  acronymMeaningColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
acronymMeaningColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
x String -> String
as String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
am)
  acronymSourceColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
acronymSourceColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
x String -> String
ar) ((String -> String) -> f (String -> String)
f String -> String
as)
  acronymScoreColours :: ((String -> String) -> f (String -> String))
-> Colours -> f Colours
acronymScoreColours
    (String -> String) -> f (String -> String)
f (Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
ar) =
      ((String -> String) -> Colours)
-> f (String -> String) -> f Colours
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\String -> String
x -> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours String -> String
hc String -> String
hn String -> String
hm String -> String
hs String -> String
hr String -> String
ac String -> String
an String -> String
am String -> String
as String -> String
x) ((String -> String) -> f (String -> String)
f String -> String
ar)

standardColours ::
  Colours
standardColours :: Colours
standardColours =
  (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> (String -> String)
-> Colours
Colours
    (\String
s -> String
"\ESC[32m\ESC[42m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[105m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[105m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[105m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[105m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[32m\ESC[42m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[100m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[100m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[100m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")
    (\String
s -> String
"\ESC[37m\ESC[100m" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
s String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\ESC[m")