{-# OPTIONS_GHC -Wall #-}

module Text.Pandoc.Z.Extensions where

import Control.Lens ( Lens', Prism' )
import Text.Pandoc.Options(ReaderOptions(..), WriterOptions(..), Extension, Extensions)

class HasExtension a where
  extension ::
    Lens' a Extension

instance HasExtension Extension where
  extension :: Lens' Extension Extension
extension =
    (Extension -> f Extension) -> Extension -> f Extension
forall a. a -> a
id

class AsExtension a where
  _Extension ::
    Prism' a Extension

instance AsExtension Extension where
  _Extension :: Prism' Extension Extension
_Extension =
    p Extension (f Extension) -> p Extension (f Extension)
forall a. a -> a
id

class HasExtensions a where
  extensions ::
    Lens' a Extensions

instance HasExtensions Extensions where
  extensions :: Lens' Extensions Extensions
extensions =
    (Extensions -> f Extensions) -> Extensions -> f Extensions
forall a. a -> a
id

class AsExtensions a where
  _Extensions ::
    Prism' a Extensions

instance AsExtensions Extensions where
  _Extensions :: Prism' Extensions Extensions
_Extensions =
    p Extensions (f Extensions) -> p Extensions (f Extensions)
forall a. a -> a
id

instance HasExtensions ReaderOptions where
  extensions :: Lens' ReaderOptions Extensions
extensions Extensions -> f Extensions
f (ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) =
    (Extensions -> ReaderOptions) -> f Extensions -> f ReaderOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Extensions
e' -> Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions Extensions
e' Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) (Extensions -> f Extensions
f Extensions
e)

instance HasExtensions WriterOptions where
  extensions :: Lens' WriterOptions Extensions
extensions Extensions -> f Extensions
f (WriterOptions Maybe (Template Text)
a00 Context Text
a01 Int
a02 Bool
a03 Bool
a04 HTMLMathMethod
a05 Bool
a06 [Int]
a07 Bool
a08 Extensions
a09 Bool
a10 Int
a11 WrapOption
a12 Int
a13 ObfuscationMethod
a14 Text
a15 CiteMethod
a16 Bool
a17 Maybe Int
a18 TopLevelDivision
a19 Bool
a20 Maybe Style
a21 Bool
a22 Bool
a23 Text
a24 Maybe Text
a25 [FilePath]
a26 Bool
a27 Int
a28 PathTemplate
a29 Int
a30 Maybe FilePath
a31 ReferenceLocation
a32 SyntaxMap
a33 Bool
a34) =
    (Extensions -> WriterOptions) -> f Extensions -> f WriterOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Extensions
a09' -> Maybe (Template Text)
-> Context Text
-> Int
-> Bool
-> Bool
-> HTMLMathMethod
-> Bool
-> [Int]
-> Bool
-> Extensions
-> Bool
-> Int
-> WrapOption
-> Int
-> ObfuscationMethod
-> Text
-> CiteMethod
-> Bool
-> Maybe Int
-> TopLevelDivision
-> Bool
-> Maybe Style
-> Bool
-> Bool
-> Text
-> Maybe Text
-> [FilePath]
-> Bool
-> Int
-> PathTemplate
-> Int
-> Maybe FilePath
-> ReferenceLocation
-> SyntaxMap
-> Bool
-> WriterOptions
WriterOptions Maybe (Template Text)
a00 Context Text
a01 Int
a02 Bool
a03 Bool
a04 HTMLMathMethod
a05 Bool
a06 [Int]
a07 Bool
a08 Extensions
a09' Bool
a10 Int
a11 WrapOption
a12 Int
a13 ObfuscationMethod
a14 Text
a15 CiteMethod
a16 Bool
a17 Maybe Int
a18 TopLevelDivision
a19 Bool
a20 Maybe Style
a21 Bool
a22 Bool
a23 Text
a24 Maybe Text
a25 [FilePath]
a26 Bool
a27 Int
a28 PathTemplate
a29 Int
a30 Maybe FilePath
a31 ReferenceLocation
a32 SyntaxMap
a33 Bool
a34) (Extensions -> f Extensions
f Extensions
a09)