{-# LANGUAGE CPP #-} module Web.Twitter.Types.Lens.TH where import Control.Lens hiding (makeLenses) import Language.Haskell.TH makeLenses :: Name -> Q [Dec] makeLenses :: Name -> Q [Dec] makeLenses = LensRules -> Name -> Q [Dec] makeLensesWith (LensRules -> Name -> Q [Dec]) -> LensRules -> Name -> Q [Dec] forall a b. (a -> b) -> a -> b $ 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 .~ FieldNamer forall p p. p -> p -> Name -> [DefName] nameF where #if MIN_VERSION_lens(4, 5, 0) nameF :: p -> p -> Name -> [DefName] nameF p _ p _ Name n = [Name -> DefName TopName (Name -> DefName) -> (Name -> Name) -> Name -> DefName forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> Name mkName (String -> Name) -> (Name -> String) -> Name -> Name forall b c a. (b -> c) -> (a -> b) -> a -> c . Name -> String nameBase (Name -> DefName) -> Name -> DefName forall a b. (a -> b) -> a -> b $ Name n] #elif MIN_VERSION_lens(4, 4, 0) nameF _ n = [TopName . mkName . nameBase $ n] #elif MIN_VERSION_lens(4, 0, 0) nameF = Just #endif