module Reflex.Dom.Builder.Class.TH where import Control.Lens import Language.Haskell.TH.Lib (DecsQ) import Language.Haskell.TH.Syntax (Name, nameBase) namer :: [String] -> Name -> [Name] -> Name -> [DefName] namer s n ks t | nameBase t `elem` s = [] | otherwise = underscoreNoPrefixNamer n ks t makeLensesWithoutField :: [String] -> Name -> DecsQ makeLensesWithoutField s = makeLensesWith (lensRules & lensField .~ namer s)