packages feed

pandocz-0.0.1: src/Text/Pandoc/Z/WriterOptions.hs

{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE LambdaCase #-}

module Text.Pandoc.Z.WriterOptions(
  HasReferenceLocation(..)
, AsReferenceLocation(..)
, HasTopLevelDivision(..)
, AsTopLevelDivision(..)
, HasCiteMethod(..)
, AsCiteMethod(..)
, HasObfuscationMethod(..)
, AsObfuscationMethod(..)
, HasWrapOption(..)
, AsWrapOption(..)
, HasHTMLMathMethod(..)
, AsHTMLMathMethod(..)
, HasWriterOptions(..)
, AsWriterOptions(..)
, WriterOptions(WriterOptions)
, defaultWriterOptions
) where

import Control.Lens ( prism', Lens', Prism' )
import Data.Text as Text ( Text, pack )
import Skylighting (defaultSyntaxMap)
import Skylighting.Types(SyntaxMap)
import Text.DocTemplates(Context)
import Text.Pandoc.Chunks(PathTemplate(..))
import Text.Pandoc.Highlighting(Style, pygments)
import Text.Pandoc.Options(WriterOptions(WriterOptions), HTMLMathMethod(..), WrapOption(..), ObfuscationMethod(..), CiteMethod(..), TopLevelDivision(..), ReferenceLocation(..))
import Text.Pandoc.Templates(Template)

class HasWriterOptions a where
  writerOptions ::
    Lens' a WriterOptions
  template ::
    Lens' a (Maybe (Template Text))
  template =
    writerOptions . template
  variables ::
    Lens' a (Context Text)
  variables =
    writerOptions . variables
  tableOfContents ::
    Lens' a Bool
  tableOfContents =
    writerOptions . tableOfContents
  incremental ::
    Lens' a Bool
  incremental =
    writerOptions . incremental
  numberSections ::
    Lens' a Bool
  numberSections =
    writerOptions . numberSections
  numberOffset ::
    Lens' a [Int]
  numberOffset =
    writerOptions . numberOffset
  sectionDivs ::
    Lens' a Bool
  sectionDivs =
    writerOptions . sectionDivs
  referenceLinks ::
    Lens' a Bool
  referenceLinks =
    writerOptions . referenceLinks
  dpi ::
    Lens' a Int
  dpi =
    writerOptions . dpi
  identifierPrefix ::
    Lens' a Text
  identifierPrefix =
    writerOptions . identifierPrefix
  htmlQTags ::
    Lens' a Bool
  htmlQTags =
    writerOptions . htmlQTags
  slideLevel ::
    Lens' a (Maybe Int)
  slideLevel =
    writerOptions . slideLevel
  listings ::
    Lens' a Bool
  listings =
    writerOptions . listings
  highlightStyle ::
    Lens' a (Maybe Style)
  highlightStyle =
    writerOptions . highlightStyle
  setextHeaders ::
    Lens' a Bool
  setextHeaders =
    writerOptions . setextHeaders
  listTables ::
    Lens' a Bool
  listTables =
    writerOptions . listTables
  epubSubdirectory ::
    Lens' a Text
  epubSubdirectory =
    writerOptions . epubSubdirectory
  epubMetadata ::
    Lens' a (Maybe Text)
  epubMetadata =
    writerOptions . epubMetadata
  epubFonts ::
    Lens' a [FilePath]
  epubFonts =
    writerOptions . epubFonts
  epubTitlePage ::
    Lens' a Bool
  epubTitlePage =
    writerOptions . epubTitlePage
  splitLevel ::
    Lens' a Int
  splitLevel =
    writerOptions . splitLevel
  chunkTemplate ::
    Lens' a PathTemplate
  chunkTemplate =
    writerOptions . chunkTemplate
  tocDepth ::
    Lens' a Int
  tocDepth =
    writerOptions . tocDepth
  referenceDoc ::
    Lens' a (Maybe FilePath)
  referenceDoc =
    writerOptions . referenceDoc
  syntaxMap ::
    Lens' a SyntaxMap
  syntaxMap =
    writerOptions . syntaxMap
  preferAscii ::
    Lens' a Bool
  preferAscii =
    writerOptions . preferAscii

instance HasWriterOptions WriterOptions where
  writerOptions =
    id
  template f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a00' -> WriterOptions a00' a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a00)
  variables f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a01' -> WriterOptions a00 a01' a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a01)
  tableOfContents f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a03' -> WriterOptions a00 a01 a02 a03' a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a03)
  incremental f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a04' -> WriterOptions a00 a01 a02 a03 a04' a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a04)
  numberSections f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a06' -> WriterOptions a00 a01 a02 a03 a04 a05 a06' a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a06)
  numberOffset f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a07' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07' a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a07)
  sectionDivs f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a08' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08' a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a08)
  referenceLinks f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a10' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10' a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a10)
  dpi f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a11' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11' a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a11)
  identifierPrefix f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a15' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15' a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a15)
  htmlQTags f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a17' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17' a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a17)
  slideLevel f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a18' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18' a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a18)
  listings f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a20' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20' a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a20)
  highlightStyle f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a21' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21' a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a21)
  setextHeaders f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a22' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22' a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a22)
  listTables f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a23' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23' a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a23)
  epubSubdirectory f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a24' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24' a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a24)
  epubMetadata f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a25' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25' a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a25)
  epubFonts f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a26' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26' a27 a28 a29 a30 a31 a32 a33 a34) (f a26)
  epubTitlePage f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a27' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27' a28 a29 a30 a31 a32 a33 a34) (f a27)
  splitLevel f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a28' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28' a29 a30 a31 a32 a33 a34) (f a28)
  chunkTemplate f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a29' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29' a30 a31 a32 a33 a34) (f a29)
  tocDepth f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a30' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30' a31 a32 a33 a34) (f a30)
  referenceDoc f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a31' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31' a32 a33 a34) (f a31)
  syntaxMap f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a33' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33' a34) (f a33)
  preferAscii f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33) (f a34)

class AsWriterOptions a where
  _WriterOptions ::
    Prism' a WriterOptions

instance AsWriterOptions WriterOptions where
  _WriterOptions =
    id

class HasHTMLMathMethod a where
  htmlMathMethod ::
    Lens' a HTMLMathMethod

instance HasHTMLMathMethod HTMLMathMethod where
  htmlMathMethod =
    id

instance HasHTMLMathMethod WriterOptions where
  htmlMathMethod f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a05' -> WriterOptions a00 a01 a02 a03 a04 a05' a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a05)

class AsHTMLMathMethod a where
  _HtmlMathMethod ::
    Prism' a HTMLMathMethod
  _PlainMath ::
    Prism' a ()
  _PlainMath =
    _HtmlMathMethod . _PlainMath
  _WebTeX ::
    Prism' a Text
  _WebTeX =
    _HtmlMathMethod . _WebTeX
  _GladTeX ::
    Prism' a ()
  _GladTeX =
    _HtmlMathMethod . _GladTeX
  _MathML ::
    Prism' a ()
  _MathML =
    _HtmlMathMethod . _MathML
  _MathJax ::
    Prism' a Text
  _MathJax =
    _HtmlMathMethod . _MathJax
  _KaTeX ::
    Prism' a Text
  _KaTeX =
    _HtmlMathMethod . _KaTeX

instance AsHTMLMathMethod HTMLMathMethod where
  _HtmlMathMethod =
    id
  _PlainMath =
    prism'
      (\() -> PlainMath)
      (\case
        PlainMath -> Just ()
        _ -> Nothing)
  _WebTeX =
    prism'
      WebTeX
      (\case
        WebTeX t -> Just t
        _ -> Nothing)
  _GladTeX =
    prism'
      (\() -> GladTeX)
      (\case
        GladTeX -> Just ()
        _ -> Nothing)
  _MathML =
    prism'
      (\() -> MathML)
      (\case
        MathML -> Just ()
        _ -> Nothing)
  _MathJax =
    prism'
      MathJax
      (\case
        MathJax t -> Just t
        _ -> Nothing)
  _KaTeX =
    prism'
      KaTeX
      (\case
        KaTeX t -> Just t
        _ -> Nothing)

class HasWrapOption a where
  wrapOption ::
    Lens' a WrapOption

instance HasWrapOption WrapOption where
  wrapOption =
    id

instance HasWrapOption WriterOptions where
  wrapOption f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a12' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12' a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a12)

class AsWrapOption a where
  _WrapOption ::
    Prism' a WrapOption
  _WrapAuto ::
    Prism' a ()
  _WrapAuto =
    _WrapOption . _WrapAuto
  _WrapNone ::
    Prism' a ()
  _WrapNone =
    _WrapOption . _WrapNone
  _WrapPreserve ::
    Prism' a ()
  _WrapPreserve =
    _WrapOption . _WrapPreserve

instance AsWrapOption WrapOption where
  _WrapOption =
    id
  _WrapAuto =
    prism'
      (\() -> WrapAuto)
      (\case
        WrapAuto -> Just ()
        _ -> Nothing)
  _WrapNone =
    prism'
      (\() -> WrapNone)
      (\case
        WrapNone -> Just ()
        _ -> Nothing)
  _WrapPreserve =
    prism'
      (\() -> WrapPreserve)
      (\case
        WrapPreserve -> Just ()
        _ -> Nothing)

class HasObfuscationMethod a where
  obfuscationMethod ::
    Lens' a ObfuscationMethod

instance HasObfuscationMethod ObfuscationMethod where
  obfuscationMethod =
    id

instance HasObfuscationMethod WriterOptions where
  obfuscationMethod f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a14' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14' a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a14)

class AsObfuscationMethod a where
  _ObfuscationMethod ::
    Prism' a ObfuscationMethod
  _NoObfuscation ::
    Prism' a ()
  _NoObfuscation =
    _ObfuscationMethod . _NoObfuscation
  _ReferenceObfuscation ::
    Prism' a ()
  _ReferenceObfuscation =
    _ObfuscationMethod . _ReferenceObfuscation
  _JavascriptObfuscation ::
    Prism' a ()
  _JavascriptObfuscation =
    _ObfuscationMethod . _JavascriptObfuscation

instance AsObfuscationMethod ObfuscationMethod where
  _ObfuscationMethod =
    id
  _NoObfuscation =
    prism'
      (\() -> NoObfuscation)
      (\case
        NoObfuscation -> Just ()
        _ -> Nothing)
  _ReferenceObfuscation =
    prism'
      (\() -> ReferenceObfuscation)
      (\case
        ReferenceObfuscation -> Just ()
        _ -> Nothing)
  _JavascriptObfuscation =
    prism'
      (\() -> JavascriptObfuscation)
      (\case
        JavascriptObfuscation -> Just ()
        _ -> Nothing)

class HasCiteMethod a where
  citeMethod ::
    Lens' a CiteMethod

instance HasCiteMethod CiteMethod where
  citeMethod =
    id

instance HasCiteMethod WriterOptions where
  citeMethod f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a16' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16' a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a16)

class AsCiteMethod a where
  _CiteMethod ::
    Prism' a CiteMethod
  _Citeproc ::
    Prism' a ()
  _Citeproc =
    _CiteMethod . _Citeproc
  _Natbib ::
    Prism' a ()
  _Natbib =
    _CiteMethod . _Natbib
  _Biblatex ::
    Prism' a ()
  _Biblatex =
    _CiteMethod . _Biblatex

instance AsCiteMethod CiteMethod where
  _CiteMethod =
    id
  _Citeproc =
    prism'
      (\() -> Citeproc)
      (\case
        Citeproc -> Just ()
        _ -> Nothing)
  _Natbib =
    prism'
      (\() -> Natbib)
      (\case
        Natbib -> Just ()
        _ -> Nothing)
  _Biblatex =
    prism'
      (\() -> Biblatex)
      (\case
        Biblatex -> Just ()
        _ -> Nothing)

class HasTopLevelDivision a where
  topLevelDivision ::
    Lens' a TopLevelDivision

instance HasTopLevelDivision TopLevelDivision where
  topLevelDivision =
    id

instance HasTopLevelDivision WriterOptions where
  topLevelDivision f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a19' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19' a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) (f a19)

class AsTopLevelDivision a where
  _TopLevelDivision ::
    Prism' a TopLevelDivision
  _TopLevelPart ::
    Prism' a ()
  _TopLevelPart =
    _TopLevelDivision . _TopLevelPart
  _TopLevelChapter ::
    Prism' a ()
  _TopLevelChapter =
    _TopLevelDivision . _TopLevelChapter
  _TopLevelSection ::
    Prism' a ()
  _TopLevelSection =
    _TopLevelDivision . _TopLevelSection
  _TopLevelDefault ::
    Prism' a ()
  _TopLevelDefault =
    _TopLevelDivision . _TopLevelDefault

instance AsTopLevelDivision TopLevelDivision where
  _TopLevelDivision =
    id
  _TopLevelPart =
    prism'
      (\() -> TopLevelPart)
      (\case
        TopLevelPart -> Just ()
        _ -> Nothing)
  _TopLevelChapter =
    prism'
      (\() -> TopLevelChapter)
      (\case
        TopLevelChapter -> Just ()
        _ -> Nothing)
  _TopLevelSection =
    prism'
      (\() -> TopLevelSection)
      (\case
        TopLevelSection -> Just ()
        _ -> Nothing)
  _TopLevelDefault =
    prism'
      (\() -> TopLevelDefault)
      (\case
        TopLevelDefault -> Just ()
        _ -> Nothing)

class HasReferenceLocation a where
  referenceLocation ::
    Lens' a ReferenceLocation

instance HasReferenceLocation ReferenceLocation where
  referenceLocation =
    id

instance HasReferenceLocation WriterOptions where
  referenceLocation f (WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34) =
    fmap (\a32' -> WriterOptions a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32' a33 a34) (f a32)

class AsReferenceLocation a where
  _ReferenceLocation ::
    Prism' a ReferenceLocation
  _EndOfBlock ::
    Prism' a ()
  _EndOfBlock =
    _ReferenceLocation . _EndOfBlock
  _EndOfSection ::
    Prism' a ()
  _EndOfSection =
    _ReferenceLocation . _EndOfSection
  _EndOfDocument ::
    Prism' a ()
  _EndOfDocument =
    _ReferenceLocation . _EndOfDocument

instance AsReferenceLocation ReferenceLocation where
  _ReferenceLocation =
    id
  _EndOfBlock =
    prism'
      (\() -> EndOfBlock)
      (\case
        EndOfBlock -> Just ()
        _ -> Nothing)
  _EndOfSection =
    prism'
      (\() -> EndOfSection)
      (\case
        EndOfSection -> Just ()
        _ -> Nothing)
  _EndOfDocument =
    prism'
      (\() -> EndOfDocument)
      (\case
        EndOfDocument -> Just ()
        _ -> Nothing)

defaultWriterOptions ::
  WriterOptions
defaultWriterOptions =
  WriterOptions
    Nothing
    mempty
    4
    False
    False
    PlainMath
    False
    [0,0,0,0,0,0]
    False
    mempty
    False
    96
    WrapAuto
    72
    NoObfuscation
    (Text.pack "")
    Citeproc
    False
    Nothing
    TopLevelDefault
    False
    (Just pygments)
    False
    False
    (Text.pack "EPUB")
    Nothing
    []
    True
    1
    (PathTemplate (Text.pack "%s-%i.html"))
    3
    Nothing
    EndOfDocument
    defaultSyntaxMap
    False