module Network.Wreq.Lens.Machinery ( makeLenses , toCamelCase ) where import Control.Lens ((&), (.~)) import Control.Lens.TH (defaultRules, lensField, makeLensesWith) import Data.Char (toUpper) import Language.Haskell.TH.Syntax (Dec, Name, Q) makeLenses :: Name -> Q [Dec] makeLenses = makeLensesWith (defaultRules & lensField .~ Just) toCamelCase :: String -> String toCamelCase (x0:x0s) = x0 : go x0s where go ('_':x:xs) = toUpper x : go xs go (x:xs) = x : go xs go [] = [] toCamelCase [] = []