module Web.Payments.Cielo.Types.DeriveJSON where import qualified Data.Aeson.TH as Aeson import Data.Char import Language.Haskell.TH.Syntax deriveJSON :: Name -> Q [Dec] deriveJSON t = Aeson.deriveJSON Aeson.defaultOptions { Aeson.fieldLabelModifier = drop (length (nameBase t)) , Aeson.constructorTagModifier = drop (length (nameBase t)) } t uncapitalize :: String -> String uncapitalize "" = "" uncapitalize (c:cs) = toLower c : cs