module Control.Lens.TH.Rules where

import Control.Lens
import Language.Haskell.TH

-- | Custom rules of the lens. All lens are prefixed by '_'.
lensRules_ :: LensRules
lensRules_ :: LensRules
lensRules_ =
  LensRules
lensRules LensRules -> (LensRules -> LensRules) -> LensRules
forall a b. a -> (a -> b) -> b
& (FieldNamer -> Identity FieldNamer)
-> LensRules -> Identity LensRules
Lens' LensRules FieldNamer
lensField ((FieldNamer -> Identity FieldNamer)
 -> LensRules -> Identity LensRules)
-> FieldNamer -> LensRules -> LensRules
forall s t a b. ASetter s t a b -> b -> s -> t
.~ \_ _ n :: Name
n -> [Name -> DefName
TopName (String -> Name
mkName ('_' Char -> String -> String
forall a. a -> [a] -> [a]
: Name -> String
nameBase Name
n))]