{-# LANGUAGE FlexibleContexts #-}
module Text.RSS.Lens.Rules where

-- {{{ Imports
import           Language.Haskell.TH.Syntax
import           Lens.Micro
import           Lens.Micro.TH
-- }}}

rules :: LensRules
rules :: LensRules
rules = ASetter
  LensRules
  LensRules
  (Name -> [Name] -> Name -> [DefName])
  (Name -> [Name] -> Name -> [DefName])
-> (Name -> [Name] -> Name -> [DefName]) -> LensRules -> LensRules
forall s t a b. ASetter s t a b -> b -> s -> t
set ASetter
  LensRules
  LensRules
  (Name -> [Name] -> Name -> [DefName])
  (Name -> [Name] -> Name -> [DefName])
Lens' LensRules (Name -> [Name] -> Name -> [DefName])
lensField Name -> [Name] -> Name -> [DefName]
forall p p. p -> p -> Name -> [DefName]
f LensRules
lensRules where
  f :: p -> p -> Name -> [DefName]
f p
_ p
_ Name
name = [Name -> DefName
TopName (Name -> DefName) -> Name -> DefName
forall a b. (a -> b) -> a -> b
$ String -> Name
mkName (Name -> String
nameBase Name
name String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"L")]