packages feed

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

{-# 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 =
    id

class AsExtension a where
  _Extension ::
    Prism' a Extension

instance AsExtension Extension where
  _Extension =
    id

class HasExtensions a where
  extensions ::
    Lens' a Extensions

instance HasExtensions Extensions where
  extensions =
    id

class AsExtensions a where
  _Extensions ::
    Prism' a Extensions

instance AsExtensions Extensions where
  _Extensions =
    id

instance HasExtensions ReaderOptions where
  extensions f (ReaderOptions e s c t i a g h m) =
    fmap (\e' -> ReaderOptions e' s c t i a g h m) (f e)

instance HasExtensions WriterOptions where
  extensions 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 (\a09' -> 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 a09)