packages feed

fakedata 1.0.1 → 1.0.2

raw patch · 186 files changed

+1038/−1014 lines, 186 filesdep +aesonPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: aeson

API changes (from Hackage documentation)

+ Faker.Internal: getLocaleKey :: FakerSettings -> AesonKey
+ Faker.Internal: type AesonKey = Key
+ Faker.Internal.Types: aesonKeyFromText :: Text -> AesonKey
+ Faker.Internal.Types: aesonKeyToText :: AesonKey -> Text
+ Faker.Internal.Types: type AesonKey = Key
- Faker: InvalidField :: String -> Text -> FakerException
+ Faker: InvalidField :: String -> AesonKey -> FakerException
- Faker.Internal: cachedRandomUnresolvedVec :: (MonadThrow m, MonadIO m) => Text -> Text -> (FakerSettings -> m (Unresolved (Vector Text))) -> (FakerSettings -> Text -> m Text) -> FakerSettings -> m Text
+ Faker.Internal: cachedRandomUnresolvedVec :: (MonadThrow m, MonadIO m) => Text -> AesonKey -> (FakerSettings -> m (Unresolved (Vector Text))) -> (FakerSettings -> AesonKey -> m Text) -> FakerSettings -> m Text
- Faker.Internal: cachedRandomUnresolvedVecWithoutVector :: (MonadThrow m, MonadIO m) => Text -> Text -> (FakerSettings -> m (Unresolved Text)) -> (FakerSettings -> Text -> m Text) -> FakerSettings -> m Text
+ Faker.Internal: cachedRandomUnresolvedVecWithoutVector :: (MonadThrow m, MonadIO m) => Text -> AesonKey -> (FakerSettings -> m (Unresolved Text)) -> (FakerSettings -> AesonKey -> m Text) -> FakerSettings -> m Text
- Faker.Internal: cachedRandomVec :: (MonadThrow m, MonadIO m) => Text -> Text -> (FakerSettings -> m (Vector Text)) -> FakerSettings -> m Text
+ Faker.Internal: cachedRandomVec :: (MonadThrow m, MonadIO m) => Text -> AesonKey -> (FakerSettings -> m (Vector Text)) -> FakerSettings -> m Text
- Faker.Internal: cachedRegex :: (MonadThrow m, MonadIO m) => Text -> Text -> (FakerSettings -> m Regex) -> FakerSettings -> m RegexFakeValue
+ Faker.Internal: cachedRegex :: (MonadThrow m, MonadIO m) => Text -> AesonKey -> (FakerSettings -> m Regex) -> FakerSettings -> m RegexFakeValue
- Faker.Internal: genericResolver :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> (FakerSettings -> Text -> m Text) -> m Text
+ Faker.Internal: genericResolver :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> (FakerSettings -> AesonKey -> m Text) -> m Text
- Faker.Internal: genericResolver' :: (MonadIO m, MonadThrow m) => (FakerSettings -> Text -> m Text) -> FakerSettings -> Text -> m Text
+ Faker.Internal: genericResolver' :: (MonadIO m, MonadThrow m) => (FakerSettings -> AesonKey -> m Text) -> FakerSettings -> AesonKey -> m Text
- Faker.Internal: insertToCache :: Text -> Text -> FakerSettings -> Vector Text -> IO ()
+ Faker.Internal: insertToCache :: Text -> AesonKey -> FakerSettings -> Vector Text -> IO ()
- Faker.Internal: presentInCache :: Text -> Text -> FakerSettings -> IO (Maybe (Vector Text))
+ Faker.Internal: presentInCache :: Text -> AesonKey -> FakerSettings -> IO (Maybe (Vector Text))
- Faker.Internal: resolveUnresolved :: (MonadThrow m, MonadIO m) => FakerSettings -> Unresolved (Vector Text) -> (FakerSettings -> Text -> m Text) -> m Text
+ Faker.Internal: resolveUnresolved :: (MonadThrow m, MonadIO m) => FakerSettings -> Unresolved (Vector Text) -> (FakerSettings -> AesonKey -> m Text) -> m Text
- Faker.Internal.Types: CacheFieldKey :: !Text -> !Text -> !Text -> CacheFieldKey
+ Faker.Internal.Types: CacheFieldKey :: !Text -> !AesonKey -> !Text -> CacheFieldKey
- Faker.Internal.Types: [ckField] :: CacheFieldKey -> !Text
+ Faker.Internal.Types: [ckField] :: CacheFieldKey -> !AesonKey

Files

ChangeLog.md view
@@ -1,5 +1,11 @@ # Changelog for fakedata +## 1.0.2++* Make it compatible with aeson 1 and 2.++### Breaking changes+ ## 1.0.1  * Improve README with use cases
README.md view
@@ -1,4 +1,4 @@-![fakedata](https://user-images.githubusercontent.com/737477/53658993-54575200-3c80-11e9-9125-nfbcf9e54660f.png)+![fakedata](https://user-images.githubusercontent.com/737477/53658993-54575200-3c80-11e9-9125-fbcf9e54660f.png) [![Hackage](https://img.shields.io/hackage/v/fakedata.svg)](https://hackage.haskell.org/package/fakedata) [![Stackage Nightly](http://stackage.org/package/fakedata/badge/nightly)](http://stackage.org/nightly/package/fakedata)
fakedata.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.4.+-- This file has been generated from package.yaml by hpack version 0.34.5. -- -- see: https://github.com/sol/hpack  name:           fakedata-version:        1.0.1+version:        1.0.2 synopsis:       Library for producing fake data description:    Please see the README on GitHub at <https://github.com/psibi/fakedata#readme> category:       Random, Fake, FakeData@@ -677,7 +677,8 @@   hs-source-dirs:       src   build-depends:-      attoparsec+      aeson+    , attoparsec     , base >=4.7 && <5     , bytestring     , containers@@ -793,6 +794,7 @@       hspec-discover:hspec-discover   build-depends:       QuickCheck+    , aeson     , attoparsec     , base >=4.7 && <5     , bytestring@@ -825,7 +827,8 @@       bench   ghc-options: -O2   build-depends:-      attoparsec+      aeson+    , attoparsec     , base >=4.7 && <5     , bytestring     , containers
src/Faker.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE InstanceSigs #-}@@ -45,8 +46,11 @@ import Data.Vector (Vector) import Data.Word (Word64) import Data.Yaml (Value)-import Faker.Internal.Types (CacheFieldKey, CacheFileKey)+import Faker.Internal.Types (CacheFieldKey, CacheFileKey, AesonKey) import System.Random (StdGen, mkStdGen, newStdGen, split)+#if MIN_VERSION_aeson(2,0,0)+import qualified Data.Aeson.Key as K+#endif  data FakerSettings = FakerSettings   { fslocale :: !Text -- ^ Locale settings for your fake data source.@@ -71,9 +75,9 @@                          -- find the fake data source for your                          -- localization.   | InvalidField String-                 Text -- ^ The 'String' represents the field it is-                             -- trying to resolve and the 'Text' field-                             -- is something you passed on.+                 AesonKey -- ^ The 'String' represents the field it is+                       -- trying to resolve and the 'Key' field+                       -- is something you passed on.   | NoDataFound FakerSettings -- ^ This is thrown when you have no                               -- data. This may likely happen for                               -- locales other than `en`.@@ -199,7 +203,7 @@          pure b)  instance Monad m => Applicative (FakeT m) where-  {-# INLINE pure #-}    +  {-# INLINE pure #-}   pure x = FakeT (\_ -> pure x)   {-# INLINE (<*>) #-}   (<*>) = ap
src/Faker/Internal.hs view
@@ -2,12 +2,14 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE BangPatterns #-}+{-# LANGUAGE CPP #-}  -- | Internal module module Faker.Internal   ( Unresolved(..)   , Regex(..)   , RegexFakeValue(..)+  , AesonKey(..)   , rvec   , insertToCache   , presentInCache@@ -23,6 +25,7 @@   , resolveFields   , genericResolver   , genericResolver'+  , getLocaleKey   ) where  import Config@@ -37,12 +40,17 @@ import Data.Vector (Vector, (!)) import Data.Word (Word64) import Faker-import Faker.Internal.Types (CacheFieldKey(..))+import Faker.Internal.Types (CacheFieldKey(..), AesonKey(..)+                            , aesonKeyFromText+                            , aesonKeyToText) import System.Random (StdGen, mkStdGen, randomR, split) import Text.StringRandom (stringRandom) import Fakedata.Parser import Data.Attoparsec.Text as P import Control.Monad (when)+#if MIN_VERSION_aeson(2,0,0)+import qualified Data.Aeson.Key as K+#endif  newtype Unresolved a = Unresolved   { unresolvedField :: a@@ -60,6 +68,14 @@   return = pure   (Unresolved f) >>= f1 = f1 f +-- | Get the Locale settings for your fake data source as a YAML  key.+getLocaleKey :: FakerSettings -> AesonKey+#if MIN_VERSION_aeson(2,0,0)+getLocaleKey settings = K.fromText (getLocale settings)+#else+getLocaleKey settings = getLocale settings+#endif+ -- These are the functions which needs to be remodified -- rvec, randomVec, randomUnresolvedvec, randomUnresolvedVecwithoutvector, unresolvedResolver, unresolfvedResolverWithoutVector rvec :: (MonadThrow m, MonadIO m) => FakerSettings -> Vector a -> m a@@ -73,7 +89,7 @@ cachedRandomVec ::      (MonadThrow m, MonadIO m)   => Text-  -> Text+  -> AesonKey   -> (FakerSettings -> m (Vector Text))   -> FakerSettings   -> m Text@@ -103,9 +119,9 @@ cachedRandomUnresolvedVec ::      (MonadThrow m, MonadIO m)   => Text-  -> Text+  -> AesonKey   -> (FakerSettings -> m (Unresolved (Vector Text)))-  -> (FakerSettings -> Text -> m Text)+  -> (FakerSettings -> AesonKey -> m Text)   -> FakerSettings   -> m Text cachedRandomUnresolvedVec sdata field provider resolverFn settings = do@@ -123,7 +139,7 @@      (MonadThrow m, MonadIO m)   => FakerSettings   -> (FakerSettings -> m (Unresolved (Vector Text)))-  -> (FakerSettings -> Text -> m Text)+  -> (FakerSettings -> AesonKey -> m Text)   -> m Text randomUnresolvedVec settings provider resolverFn = do   items <- provider settings@@ -132,9 +148,9 @@ cachedRandomUnresolvedVecWithoutVector ::      (MonadThrow m, MonadIO m)   => Text-  -> Text+  -> AesonKey   -> (FakerSettings -> m (Unresolved Text))-  -> (FakerSettings -> Text -> m Text)+  -> (FakerSettings -> AesonKey -> m Text)   -> FakerSettings   -> m Text cachedRandomUnresolvedVecWithoutVector sdata field provider resolverFn settings = do@@ -152,7 +168,7 @@      (MonadThrow m, MonadIO m)   => FakerSettings   -> (FakerSettings -> m (Unresolved Text))-  -> (FakerSettings -> Text -> m Text)+  -> (FakerSettings -> AesonKey -> m Text)   -> m Text randomUnresolvedVecWithoutVector settings provider resolverFn = do   items <- provider settings@@ -162,7 +178,7 @@      (MonadThrow m, MonadIO m)   => FakerSettings   -> Unresolved (Vector Text)-  -> (FakerSettings -> Text -> m Text)+  -> (FakerSettings -> AesonKey -> m Text)   -> m Text resolveUnresolved settings (Unresolved unres) resolverFn = do   let unresLen = V.length unres@@ -174,13 +190,13 @@        Left err -> throwM $ ParseError err        Right vals -> combineFakeIRValue settings resolverFn vals -resolveFakeIRValue :: (MonadIO m) => FakerSettings -> (FakerSettings -> Text -> m Text) -> (FakeIRValue,StdGen) -> m Text+resolveFakeIRValue :: (MonadIO m) => FakerSettings -> (FakerSettings -> AesonKey -> m Text) -> (FakeIRValue,StdGen) -> m Text resolveFakeIRValue _ _ (Literal txt,_) = pure txt resolveFakeIRValue settings _ (Hash num,_) = pure $ resolveHash settings num resolveFakeIRValue settings _ (Ques num,_) = pure $ resolveQues settings num-resolveFakeIRValue settings resolverFn (Resolve text,gen) = resolverFn (setRandomGen gen settings) text+resolveFakeIRValue settings resolverFn (Resolve text,gen) = resolverFn (setRandomGen gen settings) (aesonKeyFromText text) -combineFakeIRValue :: (MonadIO m) => FakerSettings -> (FakerSettings -> Text -> m Text) -> [FakeIRValue] -> m Text+combineFakeIRValue :: (MonadIO m) => FakerSettings -> (FakerSettings -> AesonKey -> m Text) -> [FakeIRValue] -> m Text combineFakeIRValue settings resolverFn xs = do   vals <- mapM (resolveFakeIRValue settings resolverFn) (zip xs (stdgens (getRandomGen settings)))   pure $ T.concat vals@@ -190,14 +206,14 @@                        Left err -> throwM $ ParseError err                        Right vals -> pure vals -genericResolver :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> (FakerSettings -> Text -> m Text) -> m Text-genericResolver settings txt resolverFn = combineFakeIRValue settings resolverFn [Resolve txt]+genericResolver :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> (FakerSettings -> AesonKey -> m Text) -> m Text+genericResolver settings txt resolverFn = combineFakeIRValue settings resolverFn [Resolve (aesonKeyToText txt)] -genericResolver' :: (MonadIO m, MonadThrow m) => (FakerSettings -> Text -> m Text) -> FakerSettings -> Text -> m Text+genericResolver' :: (MonadIO m, MonadThrow m) => (FakerSettings -> AesonKey -> m Text) -> FakerSettings -> AesonKey -> m Text genericResolver' resolverFn settings txt = genericResolver settings txt resolverFn  -- resolveHash settings 3--- "234"                                             +-- "234" resolveHash :: FakerSettings -> Int -> Text resolveHash settings num = T.pack $ helper settings num mempty     where@@ -237,7 +253,7 @@ unresolvedResolver ::      (MonadThrow m, MonadIO m)   => (FakerSettings -> m (Unresolved (Vector Text)))-  -> (FakerSettings -> Text -> m Text)+  -> (FakerSettings -> AesonKey -> m Text)   -> (FakerSettings -> m Text) unresolvedResolver provider resolverFn =   \settings -> randomUnresolvedVec settings provider resolverFn@@ -245,7 +261,7 @@ unresolvedResolverWithoutVector ::      (MonadThrow m, MonadIO m)   => (FakerSettings -> m (Unresolved Text))-  -> (FakerSettings -> Text -> m Text)+  -> (FakerSettings -> AesonKey -> m Text)   -> (FakerSettings -> m Text) unresolvedResolverWithoutVector provider resolverFn =   \settings -> randomUnresolvedVecWithoutVector settings provider resolverFn@@ -270,7 +286,7 @@ refinedText :: Text -> Text refinedText = T.pack . refinedString . T.unpack -presentInCache :: Text -> Text -> FakerSettings -> IO (Maybe (Vector Text))+presentInCache :: Text -> AesonKey -> FakerSettings -> IO (Maybe (Vector Text)) presentInCache sdata field settings = do   let key =         CacheFieldKey@@ -278,7 +294,7 @@   hmap <- getCacheField settings   pure $ HM.lookup key hmap -insertToCache :: Text -> Text -> FakerSettings -> (Vector Text) -> IO ()+insertToCache :: Text -> AesonKey -> FakerSettings -> (Vector Text) -> IO () insertToCache sdata field settings vec = do   let key =         CacheFieldKey@@ -308,7 +324,7 @@ cachedRegex ::      (MonadThrow m, MonadIO m)   => Text-  -> Text+  -> AesonKey   -> (FakerSettings -> m Regex)   -> FakerSettings   -> m RegexFakeValue@@ -337,4 +353,3 @@ generateRegexData settings provider = do   items <- provider settings   pure $ generateRegex settings items-
src/Faker/Internal/Types.hs view
@@ -1,13 +1,37 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE CPP #-}  module Faker.Internal.Types where  import Data.Hashable import Data.Text (Text) import GHC.Generics+#if MIN_VERSION_aeson(2,0,0)+import qualified Data.Aeson.Key as K+#endif +#if MIN_VERSION_aeson(2,0,0)+type AesonKey = K.Key+#else+type AesonKey = Text+#endif++aesonKeyToText :: AesonKey -> Text+#if MIN_VERSION_aeson(2,0,0)+aesonKeyToText key = K.toText key+#else+aesonKeyToText key = key+#endif++aesonKeyFromText :: Text -> AesonKey+#if MIN_VERSION_aeson(2,0,0)+aesonKeyFromText key = K.fromText key+#else+aesonKeyFromText key = key+#endif+ data SourceData   = Address   | Name@@ -199,7 +223,7 @@ data CacheFieldKey =   CacheFieldKey     { ckSource :: !Text-    , ckField :: !Text+    , ckField :: !AesonKey     , ckLocale :: !Text     }   deriving (Show, Eq, Ord, Generic, Hashable)
src/Faker/Provider/Address.hs view
@@ -18,16 +18,17 @@ import Faker.Provider.TH import Faker.Provider.Name (nameNameProvider, resolveNameField) + parseAddress :: FromJSON a => FakerSettings -> Value -> Parser a parseAddress settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   address <- faker .: "address"   pure address parseAddress settings val = fail $ "expected Object, but got " <> (show val)  parseAddressField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseAddressField settings txt val = do   address <- parseAddress settings val   field <- address .:? txt .!= mempty@@ -36,7 +37,7 @@ parseUnresolvedAddressField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedAddressField settings txt val = do@@ -315,11 +316,11 @@  -- > resolveCommunityText "#{community_prefix} #{community_suffix}" resolveAddressText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveAddressText = genericResolver' resolveAddressField  resolveAddressField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveAddressField settings field@"community_suffix" =   cachedRandomVec "address" field communitySuffixProvider settings resolveAddressField settings field@"community_prefix" =
src/Faker/Provider/Adjective.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseAdjective :: FromJSON a => FakerSettings -> Value -> Parser a parseAdjective settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   adjective <- faker .: "adjective"   pure adjective parseAdjective settings val = fail $ "expected Object, but got " <> (show val)  parseAdjectiveField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseAdjectiveField settings txt val = do   adjective <- parseAdjective settings val   field <- adjective .:? txt .!= mempty   pure field  parseAdjectiveFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseAdjectiveFields settings txts val = do   adjective <- parseAdjective settings val   helper adjective txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedAdjectiveFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedAdjectiveFields settings txts val = do   adjective <- parseAdjective settings val   helper adjective txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -74,11 +75,3 @@ $(genParser "adjective" "negative")  $(genProvider "adjective" "negative")--------
src/Faker/Provider/Ancient.hs view
@@ -14,16 +14,17 @@ import Faker import Faker.Internal + parseAncient :: FromJSON a => FakerSettings -> Value -> Parser a parseAncient settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   ancient <- faker .: "ancient"   pure ancient parseAncient settings val = fail $ "expected Object, but got " <> (show val)  parseAncientField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseAncientField settings txt val = do   ancient <- parseAncient settings val   field <- ancient .:? txt .!= mempty
src/Faker/Provider/Animal.hs view
@@ -14,9 +14,10 @@ import Faker import Faker.Internal + parseAnimal :: FromJSON a => FakerSettings -> Value -> Parser a parseAnimal settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   creature <- faker .: "creature"   animal <- creature .: "animal"@@ -24,7 +25,7 @@ parseAnimal settings val = fail $ "expected Object, but got " <> (show val)  parseAnimalField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseAnimalField settings txt val = do   animal <- parseAnimal settings val   field <- animal .:? txt .!= mempty
src/Faker/Provider/App.hs view
@@ -18,16 +18,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseApp :: FromJSON a => FakerSettings -> Value -> Parser a parseApp settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   app <- faker .: "app"   pure app parseApp settings val = fail $ "expected Object, but got " <> (show val)  parseAppField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseAppField settings txt val = do   app <- parseApp settings val   field <- app .:? txt .!= mempty@@ -36,7 +37,7 @@ parseUnresolvedAppField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedAppField settings txt val = do@@ -56,10 +57,10 @@  $(genAppProviderUnresolved "author") -resolveAppText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveAppText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveAppText = genericResolver' resolveAppField -resolveAppField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveAppField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveAppField settings "Name.name" =   cachedRandomUnresolvedVec     "name"
src/Faker/Provider/Appliance.hs view
@@ -13,16 +13,17 @@ import Faker import Faker.Internal + parseAppliance :: FromJSON a => FakerSettings -> Value -> Parser a parseAppliance settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   appliance <- faker .: "appliance"   pure appliance parseAppliance settings val = fail $ "expected Object, but got " <> (show val)  parseApplianceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseApplianceField settings txt val = do   appliance <- parseAppliance settings val   field <- appliance .:? txt .!= mempty
src/Faker/Provider/AquaTeenHungerForce.hs view
@@ -13,16 +13,17 @@ import Faker import Faker.Internal + parseAthf :: FromJSON a => FakerSettings -> Value -> Parser a parseAthf settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   athf <- faker .: "aqua_teen_hunger_force"   pure athf parseAthf settings val = fail $ "expected Object, but got " <> (show val)  parseAthfField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseAthfField settings txt val = do   athf <- parseAthf settings val   field <- athf .:? txt .!= mempty
src/Faker/Provider/Artist.hs view
@@ -13,16 +13,17 @@ import Faker import Faker.Internal + parseArtist :: FromJSON a => FakerSettings -> Value -> Parser a parseArtist settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   artist <- faker .: "artist"   pure artist parseArtist settings val = fail $ "expected Object, but got " <> (show val)  parseArtistField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseArtistField settings txt val = do   artist <- parseArtist settings val   field <- artist .:? txt .!= mempty
src/Faker/Provider/BackToTheFuture.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBackToTheFuture :: FromJSON a => FakerSettings -> Value -> Parser a parseBackToTheFuture settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   backToTheFuture <- faker .: "back_to_the_future"   pure backToTheFuture@@ -24,19 +25,19 @@   fail $ "expected Object, but got " <> (show val)  parseBackToTheFutureField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBackToTheFutureField settings txt val = do   backToTheFuture <- parseBackToTheFuture settings val   field <- backToTheFuture .:? txt .!= mempty   pure field  parseBackToTheFutureFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseBackToTheFutureFields settings txts val = do   backToTheFuture <- parseBackToTheFuture settings val   helper backToTheFuture txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Bank.hs view
@@ -13,16 +13,17 @@ import Faker import Faker.Internal + parseBank :: FromJSON a => FakerSettings -> Value -> Parser a parseBank settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   bank <- faker .: "bank"   pure bank parseBank settings val = fail $ "expected Object, but got " <> (show val)  parseBankField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBankField settings txt val = do   bank <- parseBank settings val   field <- bank .:? txt .!= mempty
src/Faker/Provider/Barcode.hs view
@@ -15,28 +15,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBarcode :: FromJSON a => FakerSettings -> Value -> Parser a parseBarcode settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   barcode <- faker .: "barcode"   pure barcode parseBarcode settings val = fail $ "expected Object, but got " <> (show val)  parseBarcodeField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBarcodeField settings txt val = do   barcode <- parseBarcode settings val   field <- barcode .:? txt .!= mempty   pure field  parseBarcodeFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseBarcodeFields settings txts val = do   barcode <- parseBarcode settings val   helper barcode txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -46,7 +47,7 @@ parseUnresolvedBarcodeField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedBarcodeField settings txt val = do@@ -87,8 +88,8 @@  $(genProvidersSingleUnresolved "barcode" ["issn"]) -resolveBarcodeText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveBarcodeText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveBarcodeText = genericResolver' resolveBarcodeField -resolveBarcodeField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveBarcodeField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveBarcodeField settings str = throwM $ InvalidField "barcode" str
src/Faker/Provider/Basketball.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBasketball :: FromJSON a => FakerSettings -> Value -> Parser a parseBasketball settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   basketball <- faker .: "basketball"   pure basketball parseBasketball settings val = fail $ "expected Object, but got " <> (show val)  parseBasketballField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBasketballField settings txt val = do   basketball <- parseBasketball settings val   field <- basketball .:? txt .!= mempty   pure field  parseBasketballFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseBasketballFields settings txts val = do   basketball <- parseBasketball settings val   helper basketball txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Beer.hs view
@@ -15,16 +15,17 @@ import Faker.Internal import Faker.Provider.TH + parseBeer :: FromJSON a => FakerSettings -> Value -> Parser a parseBeer settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   beer <- faker .: "beer"   pure beer parseBeer settings val = fail $ "expected Object, but got " <> (show val)  parseBeerField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBeerField settings txt val = do   beer <- parseBeer settings val   field <- beer .:? txt .!= mempty
src/Faker/Provider/BigBangTheory.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBigBangTheory :: FromJSON a => FakerSettings -> Value -> Parser a parseBigBangTheory settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   bigBangTheory <- faker .: "big_bang_theory"   pure bigBangTheory parseBigBangTheory settings val = fail $ "expected Object, but got " <> (show val)  parseBigBangTheoryField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBigBangTheoryField settings txt val = do   bigBangTheory <- parseBigBangTheory settings val   field <- bigBangTheory .:? txt .!= mempty   pure field  parseBigBangTheoryFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseBigBangTheoryFields settings txts val = do   bigBangTheory <- parseBigBangTheory settings val   helper bigBangTheory txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -53,14 +54,3 @@ $(genParser "bigBangTheory" "quotes")  $(genProvider "bigBangTheory" "quotes")-----------
src/Faker/Provider/Bird.hs view
@@ -16,9 +16,10 @@ import Language.Haskell.TH import Faker.Provider.Name (resolveNameField) + parseBird :: FromJSON a => FakerSettings -> Value -> Parser a parseBird settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   creature <- faker .: "creature"   bird <- creature .: "bird"@@ -26,19 +27,19 @@ parseBird settings val = fail $ "expected Object, but got " <> (show val)  parseBirdField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBirdField settings txt val = do   bird <- parseBird settings val   field <- bird .:? txt .!= mempty   pure field  parseBirdFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseBirdFields settings txts val = do   bird <- parseBird settings val   helper bird txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -49,7 +50,7 @@ parseUnresolvedBirdField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedBirdField settings txt val = do@@ -62,14 +63,14 @@ parseUnresolvedBirdFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedBirdFields settings txts val = do   bird <- parseBird settings val   helper bird txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -121,10 +122,10 @@ $(genProviderUnresolved "bird" "implausible_common_names")  -resolveBirdText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveBirdText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveBirdText = genericResolver' resolveBirdField -resolveBirdField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveBirdField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveBirdField settings field@"geo" =   cachedRandomVec "bird" field birdGeoProvider settings resolveBirdField settings field@"adjective" =
src/Faker/Provider/Blood.hs view
@@ -15,28 +15,29 @@ import Language.Haskell.TH import Control.Monad.IO.Class + parseBlood :: FromJSON a => FakerSettings -> Value -> Parser a parseBlood settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   blood <- faker .: "blood"   pure blood parseBlood settings val = fail $ "expected Object, but got " <> (show val)  parseBloodField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBloodField settings txt val = do   blood <- parseBlood settings val   field <- blood .:? txt .!= mempty   pure field  parseBloodFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseBloodFields settings txts val = do   blood <- parseBlood settings val   helper blood txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -46,7 +47,7 @@ parseUnresolvedBloodField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedBloodField settings txt val = do@@ -66,11 +67,11 @@  $(genProviderUnresolved "blood" "group") -resolveBloodText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveBloodText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveBloodText = genericResolver' resolveBloodField  resolveBloodField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveBloodField settings field@"type" =   cachedRandomVec "blood" field bloodTypeProvider settings resolveBloodField settings field@"rh_factor" =
src/Faker/Provider/BoJackHorseman.hs view
@@ -13,9 +13,10 @@ import Faker import Faker.Internal + parseBoJackHorseman :: FromJSON a => FakerSettings -> Value -> Parser a parseBoJackHorseman settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   boJackHorseman <- faker .: "bojack_horseman"   pure boJackHorseman@@ -23,7 +24,7 @@   fail $ "expected Object, but got " <> (show val)  parseBoJackHorsemanField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBoJackHorsemanField settings txt val = do   boJackHorseman <- parseBoJackHorseman settings val   field <- boJackHorseman .:? txt .!= mempty
src/Faker/Provider/Book.hs view
@@ -17,16 +17,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBook :: FromJSON a => FakerSettings -> Value -> Parser a parseBook settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   book <- faker .: "book"   pure book parseBook settings val = fail $ "expected Object, but got " <> (show val)  parseBookField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBookField settings txt val = do   book <- parseBook settings val   field <- book .:? txt .!= mempty@@ -35,7 +36,7 @@ parseUnresolvedBookField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedBookField settings txt val = do@@ -82,10 +83,10 @@          resolveBookText          settings) -resolveBookText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveBookText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveBookText = genericResolver' resolveBookField -resolveBookField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveBookField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveBookField settings "Name.name" =   cachedRandomUnresolvedVec     "name"
src/Faker/Provider/BossaNova.hs view
@@ -16,16 +16,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBossaNova :: FromJSON a => FakerSettings -> Value -> Parser a parseBossaNova settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   bossaNova <- faker .: "bossa_nova"   pure bossaNova parseBossaNova settings val = fail $ "expected Object, but got " <> (show val)  parseBossaNovaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBossaNovaField settings txt val = do   bossaNova <- parseBossaNova settings val   field <- bossaNova .:? txt .!= mempty
src/Faker/Provider/BreakingBad.hs view
@@ -16,16 +16,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBreakingBad :: FromJSON a => FakerSettings -> Value -> Parser a parseBreakingBad settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   breakingBad <- faker .: "breaking_bad"   pure breakingBad parseBreakingBad settings val = fail $ "expected Object, but got " <> (show val)  parseBreakingBadField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBreakingBadField settings txt val = do   breakingBad <- parseBreakingBad settings val   field <- breakingBad .:? txt .!= mempty
src/Faker/Provider/Buffy.hs view
@@ -16,16 +16,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBuffy :: FromJSON a => FakerSettings -> Value -> Parser a parseBuffy settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   buffy <- faker .: "buffy"   pure buffy parseBuffy settings val = fail $ "expected Object, but got " <> (show val)  parseBuffyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBuffyField settings txt val = do   buffy <- parseBuffy settings val   field <- buffy .:? txt .!= mempty@@ -34,7 +35,7 @@ parseUnresolvedBuffyField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedBuffyField settings txt val = do
src/Faker/Provider/Business.hs view
@@ -16,16 +16,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseBusiness :: FromJSON a => FakerSettings -> Value -> Parser a parseBusiness settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   business <- faker .: "business"   pure business parseBusiness settings val = fail $ "expected Object, but got " <> (show val)  parseBusinessField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseBusinessField settings txt val = do   business <- parseBusiness settings val   field <- business .:? txt .!= mempty
src/Faker/Provider/Camera.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCamera :: FromJSON a => FakerSettings -> Value -> Parser a parseCamera settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   camera <- faker .: "camera"   pure camera parseCamera settings val = fail $ "expected Object, but got " <> (show val)  parseCameraField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCameraField settings txt val = do   camera <- parseCamera settings val   field <- camera .:? txt .!= mempty   pure field  parseCameraFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseCameraFields settings txts val = do   camera <- parseCamera settings val   helper camera txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedCameraFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedCameraFields settings txts val = do   camera <- parseCamera settings val   helper camera txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -78,11 +79,3 @@ $(genParser "camera" "brand_with_model")  $(genProvider "camera" "brand_with_model")--------
src/Faker/Provider/Cannabis.hs view
@@ -16,16 +16,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCannabis :: FromJSON a => FakerSettings -> Value -> Parser a parseCannabis settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   cannabis <- faker .: "cannabis"   pure cannabis parseCannabis settings val = fail $ "expected Object, but got " <> (show val)  parseCannabisField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCannabisField settings txt val = do   cannabis <- parseCannabis settings val   field <- cannabis .:? txt .!= mempty
src/Faker/Provider/Cat.hs view
@@ -15,9 +15,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCat :: FromJSON a => FakerSettings -> Value -> Parser a parseCat settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   creature <- faker .: "creature"   cat <- creature .: "cat"@@ -25,7 +26,7 @@ parseCat settings val = fail $ "expected Object, but got " <> (show val)  parseCatField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCatField settings txt val = do   cat <- parseCat settings val   field <- cat .:? txt .!= mempty
src/Faker/Provider/Chiquito.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseChiquito :: FromJSON a => FakerSettings -> Value -> Parser a parseChiquito settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   chiquito <- faker .: "chiquito"   pure chiquito parseChiquito settings val = fail $ "expected Object, but got " <> (show val)  parseChiquitoField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseChiquitoField settings txt val = do   chiquito <- parseChiquito settings val   field <- chiquito .:? txt .!= mempty   pure field  parseChiquitoFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseChiquitoFields settings txts val = do   chiquito <- parseChiquito settings val   helper chiquito txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -63,14 +64,3 @@ $(genParser "chiquito" "jokes")  $(genProvider "chiquito" "jokes")-----------
src/Faker/Provider/ChuckNorris.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseChuckNorris :: FromJSON a => FakerSettings -> Value -> Parser a parseChuckNorris settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   chuckNorris <- faker .: "chuck_norris"   pure chuckNorris parseChuckNorris settings val = fail $ "expected Object, but got " <> (show val)  parseChuckNorrisField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseChuckNorrisField settings txt val = do   chuckNorris <- parseChuckNorris settings val   field <- chuckNorris .:? txt .!= mempty
src/Faker/Provider/ClashOfClans.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseClashOfClans :: FromJSON a => FakerSettings -> Value -> Parser a parseClashOfClans settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   clashOfClans <- games .: "clash_of_clans"@@ -24,19 +25,19 @@ parseClashOfClans settings val = fail $ "expected Object, but got " <> (show val)  parseClashOfClansField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseClashOfClansField settings txt val = do   clashOfClans <- parseClashOfClans settings val   field <- clashOfClans .:? txt .!= mempty   pure field  parseClashOfClansFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseClashOfClansFields settings txts val = do   clashOfClans <- parseClashOfClans settings val   helper clashOfClans txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -49,14 +50,14 @@ parseUnresolvedClashOfClansFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedClashOfClansFields settings txts val = do   clashOfClans <- parseClashOfClans settings val   helper clashOfClans txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v
src/Faker/Provider/Code.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCode :: FromJSON a => FakerSettings -> Value -> Parser a parseCode settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   code <- faker .: "code"   pure code parseCode settings val = fail $ "expected Object, but got " <> (show val)  parseCodeField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCodeField settings txt val = do   code <- parseCode settings val   field <- code .:? txt .!= mempty
src/Faker/Provider/Coffee.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCoffee :: FromJSON a => FakerSettings -> Value -> Parser a parseCoffee settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   coffee <- faker .: "coffee"   pure coffee parseCoffee settings val = fail $ "expected Object, but got " <> (show val)  parseCoffeeField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCoffeeField settings txt val = do   coffee <- parseCoffee settings val   field <- coffee .:? txt .!= mempty   pure field  parseCoffeeFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseCoffeeFields settings txts val = do   coffee <- parseCoffee settings val   helper coffee txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedCoffeeField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedCoffeeField settings txt val = do@@ -177,11 +178,11 @@ $(genProviders "coffee" ["regions", "india"])  resolveCoffeeText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveCoffeeText = genericResolver' resolveCoffeeField  resolveCoffeeField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveCoffeeField settings field@"name_1" =   cachedRandomVec "coffee" field coffeeName1Provider settings resolveCoffeeField settings field@"name_2" =
src/Faker/Provider/Coin.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCoin :: FromJSON a => FakerSettings -> Value -> Parser a parseCoin settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   coin <- faker .: "coin"   pure coin parseCoin settings val = fail $ "expected Object, but got " <> (show val)  parseCoinField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCoinField settings txt val = do   coin <- parseCoin settings val   field <- coin .:? txt .!= mempty
src/Faker/Provider/Color.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseColor :: FromJSON a => FakerSettings -> Value -> Parser a parseColor settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   color <- faker .: "color"   pure color parseColor settings val = fail $ "expected Object, but got " <> (show val)  parseColorField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseColorField settings txt val = do   color <- parseColor settings val   field <- color .:? txt .!= mempty
src/Faker/Provider/Commerce.hs view
@@ -15,28 +15,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCommerce :: FromJSON a => FakerSettings -> Value -> Parser a parseCommerce settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   commerce <- faker .: "commerce"   pure commerce parseCommerce settings val = fail $ "expected Object, but got " <> (show val)  parseCommerceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCommerceField settings txt val = do   commerce <- parseCommerce settings val   field <- commerce .:? txt .!= mempty   pure field  parseCommerceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseCommerceFields settings txts val = do   commerce <- parseCommerce settings val   helper commerce txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Community.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCommunity :: FromJSON a => FakerSettings -> Value -> Parser a parseCommunity settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   community <- faker .: "community"   pure community parseCommunity settings val = fail $ "expected Object, but got " <> (show val)  parseCommunityField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCommunityField settings txt val = do   community <- parseCommunity settings val   field <- community .:? txt .!= mempty
src/Faker/Provider/Company.hs view
@@ -18,16 +18,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCompany :: FromJSON a => FakerSettings -> Value -> Parser a parseCompany settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   company <- faker .: "company"   pure company parseCompany settings val = fail $ "expected Object, but got " <> (show val)  parseCompanyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCompanyField settings txt val = do   company <- parseCompany settings val   field <- company .:? txt .!= mempty@@ -36,7 +37,7 @@ parseUnresolvedCompanyField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedCompanyField settings txt val = do@@ -98,11 +99,11 @@ $(genProvider "company" "category")  resolveCompanyText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveCompanyText = genericResolver' resolveCompanyField  resolveCompanyField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveCompanyField settings "Name.last_name" =   cachedRandomVec "name" "last_name" nameLastNameProvider settings resolveCompanyField settings "Name.first_name" =
src/Faker/Provider/Compass.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCompass :: FromJSON a => FakerSettings -> Value -> Parser a parseCompass settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   compass <- faker .: "compass"   pure compass parseCompass settings val = fail $ "expected Object, but got " <> (show val)  parseCompassField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCompassField settings txt val = do   compass <- parseCompass settings val   field <- compass .:? txt .!= mempty   pure field  parseCompassFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseCompassFields settings txts val = do   compass <- parseCompass settings val   helper compass txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedCompassField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedCompassField settings txt val = do@@ -116,7 +117,7 @@ $(genProviders "compass" ["quarter-wind", "azimuth"])  resolveCompassText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveCompassText = genericResolver' resolveCompassField  cardinalProvider ::@@ -160,7 +161,7 @@   pure $ cw <> ca <> caz <> qw  resolveCompassField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveCompassField settings field@"cardinal" =   cachedRandomVec "compass" field cardinalProvider settings resolveCompassField settings field@"ordinal" =
src/Faker/Provider/Computer.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseComputer :: FromJSON a => FakerSettings -> Value -> Parser a parseComputer settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   computer <- faker .: "computer"   pure computer parseComputer settings val = fail $ "expected Object, but got " <> (show val)  parseComputerField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseComputerField settings txt val = do   computer <- parseComputer settings val   field <- computer .:? txt .!= mempty   pure field  parseComputerFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseComputerFields settings txts val = do   computer <- parseComputer settings val   helper computer txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Conan.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseConan :: FromJSON a => FakerSettings -> Value -> Parser a parseConan settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   conan <- faker .: "conan"   pure conan parseConan settings val = fail $ "expected Object, but got " <> (show val)  parseConanField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseConanField settings txt val = do   conan <- parseConan settings val   field <- conan .:? txt .!= mempty   pure field  parseConanFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseConanFields settings txts val = do   conan <- parseConan settings val   helper conan txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedConanFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedConanFields settings txts val = do   conan <- parseConan settings val   helper conan txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -78,11 +79,3 @@ $(genParser "conan" "vehicles")  $(genProvider "conan" "vehicles")--------
src/Faker/Provider/Construction.hs view
@@ -15,9 +15,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseConstruction :: FromJSON a => FakerSettings -> Value -> Parser a parseConstruction settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   construction <- faker .: "construction"   pure construction@@ -25,7 +26,7 @@   fail $ "expected Object, but got " <> (show val)  parseConstructionField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseConstructionField settings txt val = do   construction <- parseConstruction settings val   field <- construction .:? txt .!= mempty
src/Faker/Provider/Control.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseControl :: FromJSON a => FakerSettings -> Value -> Parser a parseControl settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   control <- games .: "control"@@ -24,19 +25,19 @@ parseControl settings val = fail $ "expected Object, but got " <> (show val)  parseControlField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseControlField settings txt val = do   control <- parseControl settings val   field <- control .:? txt .!= mempty   pure field  parseControlFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseControlFields settings txts val = do   control <- parseControl settings val   helper control txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Cosmere.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCosmere :: FromJSON a => FakerSettings -> Value -> Parser a parseCosmere settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   cosmere <- faker .: "cosmere"   pure cosmere parseCosmere settings val = fail $ "expected Object, but got " <> (show val)  parseCosmereField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCosmereField settings txt val = do   cosmere <- parseCosmere settings val   field <- cosmere .:? txt .!= mempty
src/Faker/Provider/CryptoCoin.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCryptoCoin :: FromJSON a => FakerSettings -> Value -> Parser a parseCryptoCoin settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   cryptoCoin <- faker .: "crypto_coin"   pure cryptoCoin parseCryptoCoin settings val = fail $ "expected Object, but got " <> (show val)  parseCryptoCoinField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCryptoCoinField settings txt val = do   cryptoCoin <- parseCryptoCoin settings val   field <- cryptoCoin .:? txt .!= mempty
src/Faker/Provider/CultureSeries.hs view
@@ -15,9 +15,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCultureSeries :: FromJSON a => FakerSettings -> Value -> Parser a parseCultureSeries settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   cultureSeries <- faker .: "culture_series"   pure cultureSeries@@ -25,7 +26,7 @@   fail $ "expected Object, but got " <> (show val)  parseCultureSeriesField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCultureSeriesField settings txt val = do   cultureSeries <- parseCultureSeries settings val   field <- cultureSeries .:? txt .!= mempty
src/Faker/Provider/Currency.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseCurrency :: FromJSON a => FakerSettings -> Value -> Parser a parseCurrency settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   currency <- faker .: "currency"   pure currency parseCurrency settings val = fail $ "expected Object, but got " <> (show val)  parseCurrencyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCurrencyField settings txt val = do   currency <- parseCurrency settings val   field <- currency .:? txt .!= mempty
src/Faker/Provider/DcComics.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDcComics :: FromJSON a => FakerSettings -> Value -> Parser a parseDcComics settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   dcComics <- faker .: "dc_comics"   pure dcComics parseDcComics settings val = fail $ "expected Object, but got " <> (show val)  parseDcComicsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDcComicsField settings txt val = do   dcComics <- parseDcComics settings val   field <- dcComics .:? txt .!= mempty
src/Faker/Provider/Demographic.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDemographic :: FromJSON a => FakerSettings -> Value -> Parser a parseDemographic settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   demographic <- faker .: "demographic"   pure demographic parseDemographic settings val = fail $ "expected Object, but got " <> (show val)  parseDemographicField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDemographicField settings txt val = do   demographic <- parseDemographic settings val   field <- demographic .:? txt .!= mempty
src/Faker/Provider/Departed.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDeparted :: FromJSON a => FakerSettings -> Value -> Parser a parseDeparted settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   departed <- faker .: "departed"   pure departed parseDeparted settings val = fail $ "expected Object, but got " <> (show val)  parseDepartedField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDepartedField settings txt val = do   departed <- parseDeparted settings val   field <- departed .:? txt .!= mempty   pure field  parseDepartedFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseDepartedFields settings txts val = do   departed <- parseDeparted settings val   helper departed txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -58,14 +59,3 @@ $(genParser "departed" "quotes")  $(genProvider "departed" "quotes")-----------
src/Faker/Provider/Dessert.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDessert :: FromJSON a => FakerSettings -> Value -> Parser a parseDessert settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   dessert <- faker .: "dessert"   pure dessert parseDessert settings val = fail $ "expected Object, but got " <> (show val)  parseDessertField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDessertField settings txt val = do   dessert <- parseDessert settings val   field <- dessert .:? txt .!= mempty
src/Faker/Provider/Device.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDevice :: FromJSON a => FakerSettings -> Value -> Parser a parseDevice settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   device <- faker .: "device"   pure device parseDevice settings val = fail $ "expected Object, but got " <> (show val)  parseDeviceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDeviceField settings txt val = do   device <- parseDevice settings val   field <- device .:? txt .!= mempty
src/Faker/Provider/Dnd.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDnd :: FromJSON a => FakerSettings -> Value -> Parser a parseDnd settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   dnd <- faker .: "dnd"   pure dnd parseDnd settings val = fail $ "expected Object, but got " <> (show val)  parseDndField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDndField settings txt val = do   dnd <- parseDnd settings val   field <- dnd .:? txt .!= mempty   pure field  parseDndFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseDndFields settings txts val = do   dnd <- parseDnd settings val   helper dnd txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -83,14 +84,3 @@ $(genParser "dnd" "ranged_weapons")  $(genProvider "dnd" "ranged_weapons")-----------
src/Faker/Provider/Dog.hs view
@@ -15,9 +15,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDog :: FromJSON a => FakerSettings -> Value -> Parser a parseDog settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   creature <- faker .: "creature"   dog <- creature .: "dog"@@ -25,7 +26,7 @@ parseDog settings val = fail $ "expected Object, but got " <> (show val)  parseDogField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDogField settings txt val = do   dog <- parseDog settings val   field <- dog .:? txt .!= mempty
src/Faker/Provider/Doraemon.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDoraemon :: FromJSON a => FakerSettings -> Value -> Parser a parseDoraemon settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   doraemon <- faker .: "doraemon"   pure doraemon parseDoraemon settings val = fail $ "expected Object, but got " <> (show val)  parseDoraemonField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDoraemonField settings txt val = do   doraemon <- parseDoraemon settings val   field <- doraemon .:? txt .!= mempty   pure field  parseDoraemonFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseDoraemonFields settings txts val = do   doraemon <- parseDoraemon settings val   helper doraemon txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedDoraemonFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedDoraemonFields settings txts val = do   doraemon <- parseDoraemon settings val   helper doraemon txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -78,11 +79,3 @@ $(genParser "doraemon" "locations")  $(genProvider "doraemon" "locations")--------
src/Faker/Provider/Dota.hs view
@@ -15,9 +15,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDota :: FromJSON a => FakerSettings -> Value -> Parser a parseDota settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   dota <- games .: "dota"@@ -25,19 +26,19 @@ parseDota settings val = fail $ "expected Object, but got " <> (show val)  parseDotaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDotaField settings txt val = do   dota <- parseDota settings val   field <- dota .:? txt .!= mempty   pure field  parseDotaFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseDotaFields settings txts val = do   dota <- parseDota settings val   helper dota txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/DrWho.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDrWho :: FromJSON a => FakerSettings -> Value -> Parser a parseDrWho settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   drWho <- faker .: "dr_who"   pure drWho parseDrWho settings val = fail $ "expected Object, but got " <> (show val)  parseDrWhoField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDrWhoField settings txt val = do   drWho <- parseDrWho settings val   field <- drWho .:? txt .!= mempty
src/Faker/Provider/DragonBall.hs view
@@ -15,16 +15,17 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDragonBall :: FromJSON a => FakerSettings -> Value -> Parser a parseDragonBall settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   dragonBall <- faker .: "dragon_ball"   pure dragonBall parseDragonBall settings val = fail $ "expected Object, but got " <> (show val)  parseDragonBallField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDragonBallField settings txt val = do   dragonBall <- parseDragonBall settings val   field <- dragonBall .:? txt .!= mempty
src/Faker/Provider/DrivingLicense.hs view
@@ -15,28 +15,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDrivingLicense :: FromJSON a => FakerSettings -> Value -> Parser a parseDrivingLicense settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   drivingLicense <- faker .: "driving_licence"   pure drivingLicense parseDrivingLicense settings val = fail $ "expected Object, but got " <> (show val)  parseDrivingLicenseField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDrivingLicenseField settings txt val = do   drivingLicense <- parseDrivingLicense settings val   field <- drivingLicense .:? txt .!= mempty   pure field  parseDrivingLicenseFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseDrivingLicenseFields settings txts val = do   drivingLicense <- parseDrivingLicense settings val   helper drivingLicense txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedDrivingLicenseField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedDrivingLicenseField settings txt val = do@@ -60,14 +61,14 @@ parseUnresolvedDrivingLicenseFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedDrivingLicenseFields settings txts val = do   drivingLicense <- parseDrivingLicense settings val   helper drivingLicense txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -230,9 +231,9 @@ $(genParserUnresolveds "drivingLicense" ["usa","north_dakota"]) $(genProviderUnresolveds "drivingLicense" ["usa","north_dakota"]) -resolveDrivingLicenseText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveDrivingLicenseText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveDrivingLicenseText = genericResolver' resolveDrivingLicenseField -resolveDrivingLicenseField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveDrivingLicenseField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text  resolveDrivingLicenseField settings str = throwM $ InvalidField "drivingLicense" str
src/Faker/Provider/Drone.hs view
@@ -15,28 +15,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDrone :: FromJSON a => FakerSettings -> Value -> Parser a parseDrone settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   drone <- faker .: "drone"   pure drone parseDrone settings val = fail $ "expected Object, but got " <> (show val)  parseDroneField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDroneField settings txt val = do   drone <- parseDrone settings val   field <- drone .:? txt .!= mempty   pure field  parseDroneFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseDroneFields settings txts val = do   drone <- parseDrone settings val   helper drone txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedDroneField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedDroneField settings txt val = do@@ -60,14 +61,14 @@ parseUnresolvedDroneFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedDroneFields settings txts val = do   drone <- parseDrone settings val   helper drone txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -158,14 +159,8 @@   -resolveDroneText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveDroneText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveDroneText = genericResolver' resolveDroneField -resolveDroneField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveDroneField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveDroneField settings str = throwM $ InvalidField "drone" str------
src/Faker/Provider/DumbAndDumber.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDumbAndDumber :: FromJSON a => FakerSettings -> Value -> Parser a parseDumbAndDumber settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   dumbAndDumber <- faker .: "dumb_and_dumber"   pure dumbAndDumber@@ -26,7 +27,7 @@   fail $ "expected Object, but got " <> (show val)  parseDumbAndDumberField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDumbAndDumberField settings txt val = do   dumbAndDumber <- parseDumbAndDumber settings val   field <- dumbAndDumber .:? txt .!= mempty
src/Faker/Provider/Dune.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseDune :: FromJSON a => FakerSettings -> Value -> Parser a parseDune settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   dune <- faker .: "dune"   pure dune parseDune settings val = fail $ "expected Object, but got " <> (show val)  parseDuneField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseDuneField settings txt val = do   dune <- parseDune settings val   field <- dune .:? txt .!= mempty   pure field  parseDuneFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseDuneFields settings txts val = do   dune <- parseDune settings val   helper dune txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Educator.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseEducator :: FromJSON a => FakerSettings -> Value -> Parser a parseEducator settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   educator <- faker .: "educator"   pure educator parseEducator settings val = fail $ "expected Object, but got " <> (show val)  parseEducatorField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseEducatorField settings txt val = do   educator <- parseEducator settings val   field <- educator .:? txt .!= mempty   pure field  parseEducatorFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseEducatorFields settings txts val = do   educator <- parseEducator settings val   helper educator txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedEducatorField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedEducatorField settings txt val = do@@ -58,14 +59,14 @@ parseUnresolvedEducatorFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedEducatorFields settings txts val = do   educator <- parseEducator settings val   helper educator txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -137,11 +138,11 @@ $(genProviderUnresolveds "educator" ["tertiary", "degree", "course_number"])  resolveEducatorText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveEducatorText = genericResolver' resolveEducatorField  resolveEducatorField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveEducatorField settings field@"course_number" =   cachedRandomUnresolvedVec     "educator"
src/Faker/Provider/ElderScrolls.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseElderScrolls :: FromJSON a => FakerSettings -> Value -> Parser a parseElderScrolls settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   elderScrolls <- games .: "elder_scrolls"@@ -27,19 +28,19 @@   fail $ "expected Object, but got " <> (show val)  parseElderScrollsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseElderScrollsField settings txt val = do   elderScrolls <- parseElderScrolls settings val   field <- elderScrolls .:? txt .!= mempty   pure field  parseElderScrollsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseElderScrollsFields settings txts val = do   elderScrolls <- parseElderScrolls settings val   helper elderScrolls txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/ElectricalComponents.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseElectricalComponents :: FromJSON a => FakerSettings -> Value -> Parser a parseElectricalComponents settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   electricalComponents <- faker .: "electrical_components"   pure electricalComponents@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseElectricalComponentsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseElectricalComponentsField settings txt val = do   electricalComponents <- parseElectricalComponents settings val   field <- electricalComponents .:? txt .!= mempty   pure field  parseElectricalComponentsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseElectricalComponentsFields settings txts val = do   electricalComponents <- parseElectricalComponents settings val   helper electricalComponents txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Esport.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseEsport :: FromJSON a => FakerSettings -> Value -> Parser a parseEsport settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   esport <- faker .: "esport"   pure esport parseEsport settings val = fail $ "expected Object, but got " <> (show val)  parseEsportField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseEsportField settings txt val = do   esport <- parseEsport settings val   field <- esport .:? txt .!= mempty   pure field  parseEsportFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseEsportFields settings txts val = do   esport <- parseEsport settings val   helper esport txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Fallout.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFallout :: FromJSON a => FakerSettings -> Value -> Parser a parseFallout settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   fallout <- games .: "fallout"@@ -26,19 +27,19 @@ parseFallout settings val = fail $ "expected Object, but got " <> (show val)  parseFalloutField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFalloutField settings txt val = do   fallout <- parseFallout settings val   field <- fallout .:? txt .!= mempty   pure field  parseFalloutFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFalloutFields settings txts val = do   fallout <- parseFallout settings val   helper fallout txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/FamilyGuy.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFamilyGuy :: FromJSON a => FakerSettings -> Value -> Parser a parseFamilyGuy settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   familyGuy <- faker .: "family_guy"   pure familyGuy parseFamilyGuy settings val = fail $ "expected Object, but got " <> (show val)  parseFamilyGuyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFamilyGuyField settings txt val = do   familyGuy <- parseFamilyGuy settings val   field <- familyGuy .:? txt .!= mempty   pure field  parseFamilyGuyFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFamilyGuyFields settings txts val = do   familyGuy <- parseFamilyGuy settings val   helper familyGuy txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/File.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFile :: FromJSON a => FakerSettings -> Value -> Parser a parseFile settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   file <- faker .: "file"   pure file parseFile settings val = fail $ "expected Object, but got " <> (show val)  parseFileField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFileField settings txt val = do   file <- parseFile settings val   field <- file .:? txt .!= mempty   pure field  parseFileFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFileFields settings txts val = do   file <- parseFile settings val   helper file txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/FinalSpace.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFinalSpace :: FromJSON a => FakerSettings -> Value -> Parser a parseFinalSpace settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   finalSpace <- faker .: "final_space"   pure finalSpace parseFinalSpace settings val = fail $ "expected Object, but got " <> (show val)  parseFinalSpaceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFinalSpaceField settings txt val = do   finalSpace <- parseFinalSpace settings val   field <- finalSpace .:? txt .!= mempty   pure field  parseFinalSpaceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFinalSpaceFields settings txts val = do   finalSpace <- parseFinalSpace settings val   helper finalSpace txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedFinalSpaceFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedFinalSpaceFields settings txts val = do   finalSpace <- parseFinalSpace settings val   helper finalSpace txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -78,11 +79,3 @@ $(genParser "finalSpace" "quotes")  $(genProvider "finalSpace" "quotes")--------
src/Faker/Provider/Finance.hs view
@@ -15,9 +15,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFinance :: FromJSON a => FakerSettings -> Value -> Parser a parseFinance settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   finance <- faker .: "finance"   creditCard <- finance .: "credit_card"@@ -25,19 +26,19 @@ parseFinance settings val = fail $ "expected Object, but got " <> (show val)  parseFinanceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFinanceField settings txt val = do   finance <- parseFinance settings val   field <- finance .:? txt .!= mempty   pure field  parseFinanceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFinanceFields settings txts val = do   finance <- parseFinance settings val   helper finance txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedFinanceField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedFinanceField settings txt val = do@@ -112,11 +113,11 @@ $(genProviders "finance" ["ticker", "nyse"])  resolveFinanceText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveFinanceText = genericResolver' resolveFinanceField  resolveFinanceField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveFinanceField settings field@"visa" =   cachedRandomUnresolvedVec     "finance"
src/Faker/Provider/Food.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFood :: FromJSON a => FakerSettings -> Value -> Parser a parseFood settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   food <- faker .: "food"   pure food parseFood settings val = fail $ "expected Object, but got " <> (show val)  parseFoodField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFoodField settings txt val = do   food <- parseFood settings val   field <- food .:? txt .!= mempty   pure field  parseFoodFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFoodFields settings txts val = do   food <- parseFood settings val   helper food txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Football.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFootball :: FromJSON a => FakerSettings -> Value -> Parser a parseFootball settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   football <- faker .: "football"   pure football parseFootball settings val = fail $ "expected Object, but got " <> (show val)  parseFootballField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFootballField settings txt val = do   football <- parseFootball settings val   field <- football .:? txt .!= mempty   pure field  parseFootballFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFootballFields settings txts val = do   football <- parseFootball settings val   helper football txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/FreshPrinceOfBelAir.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFreshPrinceOfBelAir :: FromJSON a => FakerSettings -> Value -> Parser a parseFreshPrinceOfBelAir settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   freshPrinceOfBelAir <- faker .: "the_fresh_prince_of_bel_air"   pure freshPrinceOfBelAir@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseFreshPrinceOfBelAirField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFreshPrinceOfBelAirField settings txt val = do   freshPrinceOfBelAir <- parseFreshPrinceOfBelAir settings val   field <- freshPrinceOfBelAir .:? txt .!= mempty   pure field  parseFreshPrinceOfBelAirFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFreshPrinceOfBelAirFields settings txts val = do   freshPrinceOfBelAir <- parseFreshPrinceOfBelAir settings val   helper freshPrinceOfBelAir txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Friends.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFriends :: FromJSON a => FakerSettings -> Value -> Parser a parseFriends settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   friends <- faker .: "friends"   pure friends parseFriends settings val = fail $ "expected Object, but got " <> (show val)  parseFriendsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFriendsField settings txt val = do   friends <- parseFriends settings val   field <- friends .:? txt .!= mempty   pure field  parseFriendsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFriendsFields settings txts val = do   friends <- parseFriends settings val   helper friends txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/FunnyName.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFunnyName :: FromJSON a => FakerSettings -> Value -> Parser a parseFunnyName settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   funnyName <- faker .: "funny_name"   pure funnyName parseFunnyName settings val = fail $ "expected Object, but got " <> (show val)  parseFunnyNameField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFunnyNameField settings txt val = do   funnyName <- parseFunnyName settings val   field <- funnyName .:? txt .!= mempty   pure field  parseFunnyNameFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFunnyNameFields settings txts val = do   funnyName <- parseFunnyName settings val   helper funnyName txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Futurama.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseFuturama :: FromJSON a => FakerSettings -> Value -> Parser a parseFuturama settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   futurama <- faker .: "futurama"   pure futurama parseFuturama settings val = fail $ "expected Object, but got " <> (show val)  parseFuturamaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseFuturamaField settings txt val = do   futurama <- parseFuturama settings val   field <- futurama .:? txt .!= mempty   pure field  parseFuturamaFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseFuturamaFields settings txts val = do   futurama <- parseFuturama settings val   helper futurama txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedFuturamaFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedFuturamaFields settings txts val = do   futurama <- parseFuturama settings val   helper futurama txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -86,14 +87,3 @@ $(genParser "futurama" "hermes_catchphrases")  $(genProvider "futurama" "hermes_catchphrases")-----------
src/Faker/Provider/GameOfThrones.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseGameOfThrones :: FromJSON a => FakerSettings -> Value -> Parser a parseGameOfThrones settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   gameOfThrones <- faker .: "game_of_thrones"   pure gameOfThrones@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseGameOfThronesField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseGameOfThronesField settings txt val = do   gameOfThrones <- parseGameOfThrones settings val   field <- gameOfThrones .:? txt .!= mempty   pure field  parseGameOfThronesFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseGameOfThronesFields settings txts val = do   gameOfThrones <- parseGameOfThrones settings val   helper gameOfThrones txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Gender.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseGender :: FromJSON a => FakerSettings -> Value -> Parser a parseGender settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   gender <- faker .: "gender"   pure gender parseGender settings val = fail $ "expected Object, but got " <> (show val)  parseGenderField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseGenderField settings txt val = do   gender <- parseGender settings val   field <- gender .:? txt .!= mempty   pure field  parseGenderFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseGenderFields settings txts val = do   gender <- parseGender settings val   helper gender txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -55,4 +56,3 @@ $(genParser "gender" "short_binary_types")  $(genProvider "gender" "short_binary_types")-
src/Faker/Provider/Ghostbusters.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseGhostbusters :: FromJSON a => FakerSettings -> Value -> Parser a parseGhostbusters settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   ghostbusters <- faker .: "ghostbusters"   pure ghostbusters@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseGhostbustersField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseGhostbustersField settings txt val = do   ghostbusters <- parseGhostbusters settings val   field <- ghostbusters .:? txt .!= mempty   pure field  parseGhostbustersFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseGhostbustersFields settings txts val = do   ghostbusters <- parseGhostbusters settings val   helper ghostbusters txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/GratefulDead.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseGratefulDead :: FromJSON a => FakerSettings -> Value -> Parser a parseGratefulDead settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   gratefulDead <- faker .: "grateful_dead"   pure gratefulDead@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseGratefulDeadField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseGratefulDeadField settings txt val = do   gratefulDead <- parseGratefulDead settings val   field <- gratefulDead .:? txt .!= mempty   pure field  parseGratefulDeadFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseGratefulDeadFields settings txts val = do   gratefulDead <- parseGratefulDead settings val   helper gratefulDead txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/GreekPhilosophers.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseGreekPhilosophers :: FromJSON a => FakerSettings -> Value -> Parser a parseGreekPhilosophers settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   greekPhilosophers <- faker .: "greek_philosophers"   pure greekPhilosophers@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseGreekPhilosophersField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseGreekPhilosophersField settings txt val = do   greekPhilosophers <- parseGreekPhilosophers settings val   field <- greekPhilosophers .:? txt .!= mempty   pure field  parseGreekPhilosophersFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseGreekPhilosophersFields settings txts val = do   greekPhilosophers <- parseGreekPhilosophers settings val   helper greekPhilosophers txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Hacker.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHacker :: FromJSON a => FakerSettings -> Value -> Parser a parseHacker settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   hacker <- faker .: "hacker"   pure hacker parseHacker settings val = fail $ "expected Object, but got " <> (show val)  parseHackerField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHackerField settings txt val = do   hacker <- parseHacker settings val   field <- hacker .:? txt .!= mempty   pure field  parseHackerFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHackerFields settings txts val = do   hacker <- parseHacker settings val   helper hacker txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/HalfLife.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHalfLife :: FromJSON a => FakerSettings -> Value -> Parser a parseHalfLife settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   halfLife <- games .: "half_life"@@ -26,19 +27,19 @@ parseHalfLife settings val = fail $ "expected Object, but got " <> (show val)  parseHalfLifeField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHalfLifeField settings txt val = do   halfLife <- parseHalfLife settings val   field <- halfLife .:? txt .!= mempty   pure field  parseHalfLifeFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHalfLifeFields settings txts val = do   halfLife <- parseHalfLife settings val   helper halfLife txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/HarryPotter.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHarryPotter :: FromJSON a => FakerSettings -> Value -> Parser a parseHarryPotter settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   harryPotter <- faker .: "harry_potter"   pure harryPotter parseHarryPotter settings val = fail $ "expected Object, but got " <> (show val)  parseHarryPotterField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHarryPotterField settings txt val = do   harryPotter <- parseHarryPotter settings val   field <- harryPotter .:? txt .!= mempty   pure field  parseHarryPotterFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHarryPotterFields settings txts val = do   harryPotter <- parseHarryPotter settings val   helper harryPotter txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Heroes.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHeroes :: FromJSON a => FakerSettings -> Value -> Parser a parseHeroes settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   heroes <- faker .: "heroes"   pure heroes parseHeroes settings val = fail $ "expected Object, but got " <> (show val)  parseHeroesField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHeroesField settings txt val = do   heroes <- parseHeroes settings val   field <- heroes .:? txt .!= mempty   pure field  parseHeroesFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHeroesFields settings txts val = do   heroes <- parseHeroes settings val   helper heroes txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/HeroesOfTheStorm.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHeroesOfTheStorm :: FromJSON a => FakerSettings -> Value -> Parser a parseHeroesOfTheStorm settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   heroesOfTheStorm <- faker .: "heroes_of_the_storm"   pure heroesOfTheStorm@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseHeroesOfTheStormField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHeroesOfTheStormField settings txt val = do   heroesOfTheStorm <- parseHeroesOfTheStorm settings val   field <- heroesOfTheStorm .:? txt .!= mempty   pure field  parseHeroesOfTheStormFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHeroesOfTheStormFields settings txts val = do   heroesOfTheStorm <- parseHeroesOfTheStorm settings val   helper heroesOfTheStorm txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/HeyArnold.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHeyArnold :: FromJSON a => FakerSettings -> Value -> Parser a parseHeyArnold settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   heyArnold <- faker .: "hey_arnold"   pure heyArnold parseHeyArnold settings val = fail $ "expected Object, but got " <> (show val)  parseHeyArnoldField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHeyArnoldField settings txt val = do   heyArnold <- parseHeyArnold settings val   field <- heyArnold .:? txt .!= mempty   pure field  parseHeyArnoldFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHeyArnoldFields settings txts val = do   heyArnold <- parseHeyArnold settings val   helper heyArnold txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Hipster.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHipster :: FromJSON a => FakerSettings -> Value -> Parser a parseHipster settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   hipster <- faker .: "hipster"   pure hipster parseHipster settings val = fail $ "expected Object, but got " <> (show val)  parseHipsterField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHipsterField settings txt val = do   hipster <- parseHipster settings val   field <- hipster .:? txt .!= mempty   pure field  parseHipsterFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHipsterFields settings txts val = do   hipster <- parseHipster settings val   helper hipster txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/HitchhikersGuideToTheGalaxy.hs view
@@ -16,10 +16,11 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHitchhikersGuideToTheGalaxy ::      FromJSON a => FakerSettings -> Value -> Parser a parseHitchhikersGuideToTheGalaxy settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   hitchhikersGuideToTheGalaxy <- faker .: "hitchhikers_guide_to_the_galaxy"   pure hitchhikersGuideToTheGalaxy@@ -27,19 +28,19 @@   fail $ "expected Object, but got " <> (show val)  parseHitchhikersGuideToTheGalaxyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHitchhikersGuideToTheGalaxyField settings txt val = do   hitchhikersGuideToTheGalaxy <- parseHitchhikersGuideToTheGalaxy settings val   field <- hitchhikersGuideToTheGalaxy .:? txt .!= mempty   pure field  parseHitchhikersGuideToTheGalaxyFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHitchhikersGuideToTheGalaxyFields settings txts val = do   hitchhikersGuideToTheGalaxy <- parseHitchhikersGuideToTheGalaxy settings val   helper hitchhikersGuideToTheGalaxy txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Horse.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHorse :: FromJSON a => FakerSettings -> Value -> Parser a parseHorse settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   creature <- faker .: "creature"   horse <- creature .: "horse"@@ -24,19 +25,19 @@ parseHorse settings val = fail $ "expected Object, but got " <> (show val)  parseHorseField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHorseField settings txt val = do   horse <- parseHorse settings val   field <- horse .:? txt .!= mempty   pure field  parseHorseFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHorseFields settings txts val = do   horse <- parseHorse settings val   helper horse txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/House.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHouse :: FromJSON a => FakerSettings -> Value -> Parser a parseHouse settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   house <- faker .: "house"   pure house parseHouse settings val = fail $ "expected Object, but got " <> (show val)  parseHouseField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHouseField settings txt val = do   house <- parseHouse settings val   field <- house .:? txt .!= mempty   pure field  parseHouseFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHouseFields settings txts val = do   house <- parseHouse settings val   helper house txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/HowIMetYourMother.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHowIMetYourMother :: FromJSON a => FakerSettings -> Value -> Parser a parseHowIMetYourMother settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   howIMetYourMother <- faker .: "how_i_met_your_mother"   pure howIMetYourMother@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseHowIMetYourMotherField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHowIMetYourMotherField settings txt val = do   howIMetYourMother <- parseHowIMetYourMother settings val   field <- howIMetYourMother .:? txt .!= mempty   pure field  parseHowIMetYourMotherFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHowIMetYourMotherFields settings txts val = do   howIMetYourMother <- parseHowIMetYourMother settings val   helper howIMetYourMother txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/HowToTrainYourDragon.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseHowToTrainYourDragon :: FromJSON a => FakerSettings -> Value -> Parser a parseHowToTrainYourDragon settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   howToTrainYourDragon <- faker .: "how_to_train_your_dragon"   pure howToTrainYourDragon parseHowToTrainYourDragon settings val = fail $ "expected Object, but got " <> (show val)  parseHowToTrainYourDragonField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseHowToTrainYourDragonField settings txt val = do   howToTrainYourDragon <- parseHowToTrainYourDragon settings val   field <- howToTrainYourDragon .:? txt .!= mempty   pure field  parseHowToTrainYourDragonFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseHowToTrainYourDragonFields settings txts val = do   howToTrainYourDragon <- parseHowToTrainYourDragon settings val   helper howToTrainYourDragon txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedHowToTrainYourDragonFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedHowToTrainYourDragonFields settings txts val = do   howToTrainYourDragon <- parseHowToTrainYourDragon settings val   helper howToTrainYourDragon txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -78,11 +79,3 @@ $(genParser "howToTrainYourDragon" "locations")  $(genProvider "howToTrainYourDragon" "locations")--------
src/Faker/Provider/IndustrySegments.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseIndustrySegments :: FromJSON a => FakerSettings -> Value -> Parser a parseIndustrySegments settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   industrySegments <- faker .: "industry_segments"   pure industrySegments@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseIndustrySegmentsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseIndustrySegmentsField settings txt val = do   industrySegments <- parseIndustrySegments settings val   field <- industrySegments .:? txt .!= mempty   pure field  parseIndustrySegmentsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseIndustrySegmentsFields settings txts val = do   industrySegments <- parseIndustrySegments settings val   helper industrySegments txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Internet.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseInternet :: FromJSON a => FakerSettings -> Value -> Parser a parseInternet settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   internet <- faker .: "internet"   pure internet parseInternet settings val = fail $ "expected Object, but got " <> (show val)  parseInternetField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseInternetField settings txt val = do   internet <- parseInternet settings val   field <- internet .:? txt .!= mempty   pure field  parseInternetFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseInternetFields settings txts val = do   internet <- parseInternet settings val   helper internet txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/JackHandey.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseJackHandey :: FromJSON a => FakerSettings -> Value -> Parser a parseJackHandey settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   jackHandey <- faker .: "quote"   pure jackHandey parseJackHandey settings val = fail $ "expected Object, but got " <> (show val)  parseJackHandeyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseJackHandeyField settings txt val = do   jackHandey <- parseJackHandey settings val   field <- jackHandey .:? txt .!= mempty   pure field  parseJackHandeyFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseJackHandeyFields settings txts val = do   jackHandey <- parseJackHandey settings val   helper jackHandey txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedJackHandeyFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedJackHandeyFields settings txts val = do   jackHandey <- parseJackHandey settings val   helper jackHandey txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -70,11 +71,3 @@ $(genParser "jackHandey" "jack_handey")  $(genProvider "jackHandey" "jack_handey")--------
src/Faker/Provider/Job.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseJob :: FromJSON a => FakerSettings -> Value -> Parser a parseJob settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   job <- faker .: "job"   pure job parseJob settings val = fail $ "expected Object, but got " <> (show val)  parseJobField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseJobField settings txt val = do   job <- parseJob settings val   field <- job .:? txt .!= mempty   pure field  parseJobFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseJobFields settings txts val = do   job <- parseJob settings val   helper job txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedJobField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedJobField settings txt val = do@@ -90,10 +91,10 @@  $(genProviderUnresolved "job" "title") -resolveJobText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveJobText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveJobText = genericResolver' resolveJobField -resolveJobField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveJobField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveJobField settings field@"seniority" =   cachedRandomVec "job" field jobSeniorityProvider settings resolveJobField settings field@"field" =
src/Faker/Provider/Kpop.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseKpop :: FromJSON a => FakerSettings -> Value -> Parser a parseKpop settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   kpop <- faker .: "kpop"   pure kpop parseKpop settings val = fail $ "expected Object, but got " <> (show val)  parseKpopField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseKpopField settings txt val = do   kpop <- parseKpop settings val   field <- kpop .:? txt .!= mempty   pure field  parseKpopFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseKpopFields settings txts val = do   kpop <- parseKpop settings val   helper kpop txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/LeagueOfLegends.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseLeagueOfLegends :: FromJSON a => FakerSettings -> Value -> Parser a parseLeagueOfLegends settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   leagueOfLegends <- games .: "league_of_legends"@@ -27,19 +28,19 @@   fail $ "expected Object, but got " <> (show val)  parseLeagueOfLegendsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseLeagueOfLegendsField settings txt val = do   leagueOfLegends <- parseLeagueOfLegends settings val   field <- leagueOfLegends .:? txt .!= mempty   pure field  parseLeagueOfLegendsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseLeagueOfLegendsFields settings txts val = do   leagueOfLegends <- parseLeagueOfLegends settings val   helper leagueOfLegends txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Lebowski.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseLebowski :: FromJSON a => FakerSettings -> Value -> Parser a parseLebowski settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   lebowski <- faker .: "lebowski"   pure lebowski parseLebowski settings val = fail $ "expected Object, but got " <> (show val)  parseLebowskiField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseLebowskiField settings txt val = do   lebowski <- parseLebowski settings val   field <- lebowski .:? txt .!= mempty   pure field  parseLebowskiFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseLebowskiFields settings txts val = do   lebowski <- parseLebowski settings val   helper lebowski txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Lorem.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseLorem :: FromJSON a => FakerSettings -> Value -> Parser a parseLorem settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   lorem <- faker .: "lorem"   pure lorem parseLorem settings val = fail $ "expected Object, but got " <> (show val)  parseLoremField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseLoremField settings txt val = do   lorem <- parseLorem settings val   field <- lorem .:? txt .!= mempty   pure field  parseLoremFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseLoremFields settings txts val = do   lorem <- parseLorem settings val   helper lorem txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Lovecraft.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseLovecraft :: FromJSON a => FakerSettings -> Value -> Parser a parseLovecraft settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   lovecraft <- faker .: "lovecraft"   pure lovecraft parseLovecraft settings val = fail $ "expected Object, but got " <> (show val)  parseLovecraftField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseLovecraftField settings txt val = do   lovecraft <- parseLovecraft settings val   field <- lovecraft .:? txt .!= mempty   pure field  parseLovecraftFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseLovecraftFields settings txts val = do   lovecraft <- parseLovecraft settings val   helper lovecraft txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Markdown.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMarkdown :: FromJSON a => FakerSettings -> Value -> Parser a parseMarkdown settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   markdown <- faker .: "markdown"   pure markdown parseMarkdown settings val = fail $ "expected Object, but got " <> (show val)  parseMarkdownField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMarkdownField settings txt val = do   markdown <- parseMarkdown settings val   field <- markdown .:? txt .!= mempty   pure field  parseMarkdownFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMarkdownFields settings txts val = do   markdown <- parseMarkdown settings val   helper markdown txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Marketing.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMarketing :: FromJSON a => FakerSettings -> Value -> Parser a parseMarketing settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   marketing <- faker .: "marketing"   pure marketing parseMarketing settings val = fail $ "expected Object, but got " <> (show val)  parseMarketingField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMarketingField settings txt val = do   marketing <- parseMarketing settings val   field <- marketing .:? txt .!= mempty   pure field  parseMarketingFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMarketingFields settings txts val = do   marketing <- parseMarketing settings val   helper marketing txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Measurement.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMeasurement :: FromJSON a => FakerSettings -> Value -> Parser a parseMeasurement settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   measurement <- faker .: "measurement"   pure measurement parseMeasurement settings val = fail $ "expected Object, but got " <> (show val)  parseMeasurementField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMeasurementField settings txt val = do   measurement <- parseMeasurement settings val   field <- measurement .:? txt .!= mempty   pure field  parseMeasurementFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMeasurementFields settings txts val = do   measurement <- parseMeasurement settings val   helper measurement txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/MichaelScott.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMichaelScott :: FromJSON a => FakerSettings -> Value -> Parser a parseMichaelScott settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   michaelScott <- faker .: "michael_scott"   pure michaelScott@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseMichaelScottField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMichaelScottField settings txt val = do   michaelScott <- parseMichaelScott settings val   field <- michaelScott .:? txt .!= mempty   pure field  parseMichaelScottFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMichaelScottFields settings txts val = do   michaelScott <- parseMichaelScott settings val   helper michaelScott txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Military.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMilitary :: FromJSON a => FakerSettings -> Value -> Parser a parseMilitary settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   military <- faker .: "military"   pure military parseMilitary settings val = fail $ "expected Object, but got " <> (show val)  parseMilitaryField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMilitaryField settings txt val = do   military <- parseMilitary settings val   field <- military .:? txt .!= mempty   pure field  parseMilitaryFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMilitaryFields settings txts val = do   military <- parseMilitary settings val   helper military txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Minecraft.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMinecraft :: FromJSON a => FakerSettings -> Value -> Parser a parseMinecraft settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   minecraft <- games .: "minecraft"@@ -24,19 +25,19 @@ parseMinecraft settings val = fail $ "expected Object, but got " <> (show val)  parseMinecraftField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMinecraftField settings txt val = do   minecraft <- parseMinecraft settings val   field <- minecraft .:? txt .!= mempty   pure field  parseMinecraftFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMinecraftFields settings txts val = do   minecraft <- parseMinecraft settings val   helper minecraft txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -49,14 +50,14 @@ parseUnresolvedMinecraftFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedMinecraftFields settings txts val = do   minecraft <- parseMinecraft settings val   helper minecraft txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v
src/Faker/Provider/Mountain.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMountain :: FromJSON a => FakerSettings -> Value -> Parser a parseMountain settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   mountain <- faker .: "mountain"   pure mountain parseMountain settings val = fail $ "expected Object, but got " <> (show val)  parseMountainField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMountainField settings txt val = do   mountain <- parseMountain settings val   field <- mountain .:? txt .!= mempty   pure field  parseMountainFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMountainFields settings txts val = do   mountain <- parseMountain settings val   helper mountain txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedMountainFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedMountainFields settings txts val = do   mountain <- parseMountain settings val   helper mountain txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -74,11 +75,3 @@ $(genParser "mountain" "range")  $(genProvider "mountain" "range")--------
src/Faker/Provider/Movie.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMovie :: FromJSON a => FakerSettings -> Value -> Parser a parseMovie settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   movie <- faker .: "movie"   pure movie parseMovie settings val = fail $ "expected Object, but got " <> (show val)  parseMovieField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMovieField settings txt val = do   movie <- parseMovie settings val   field <- movie .:? txt .!= mempty   pure field  parseMovieFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMovieFields settings txts val = do   movie <- parseMovie settings val   helper movie txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Music.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMusic :: FromJSON a => FakerSettings -> Value -> Parser a parseMusic settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   music <- faker .: "music"   pure music parseMusic settings val = fail $ "expected Object, but got " <> (show val)  parseMusicField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMusicField settings txt val = do   music <- parseMusic settings val   field <- music .:? txt .!= mempty   pure field  parseMusicFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMusicFields settings txts val = do   music <- parseMusic settings val   helper music txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedMusicFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedMusicFields settings txts val = do   music <- parseMusic settings val   helper music txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -101,5 +102,3 @@  $(genParsers "music" ["hiphop","artist"]) $(genProviders "music" ["hiphop","artist"])--
src/Faker/Provider/Myst.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseMyst :: FromJSON a => FakerSettings -> Value -> Parser a parseMyst settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   myst <- games .: "myst"@@ -26,19 +27,19 @@ parseMyst settings val = fail $ "expected Object, but got " <> (show val)  parseMystField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseMystField settings txt val = do   myst <- parseMyst settings val   field <- myst .:? txt .!= mempty   pure field  parseMystFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseMystFields settings txts val = do   myst <- parseMyst settings val   helper myst txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Name.hs view
@@ -15,28 +15,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseName :: FromJSON a => FakerSettings -> Value -> Parser a parseName settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   name <- faker .: "name"   pure name parseName settings val = fail $ "expected Object, but got " <> (show val)  parseNameField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseNameField settings txt val = do   name <- parseName settings val   field <- name .:? txt .!= mempty   pure field  parseNameFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseNameFields settings txts val = do   name <- parseName settings val   helper name txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -46,7 +47,7 @@ parseUnresolvedNameField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedNameField settings txt val = do@@ -96,10 +97,10 @@  $(genProvider "name" "surname") -resolveNameText :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveNameText :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveNameText = genericResolver' resolveNameField -resolveNameField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveNameField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveNameField settings field@"female_first_name" =   cachedRandomVec "name" field nameFemaleFirstNameProvider settings resolveNameField settings field@"male_first_name" =
src/Faker/Provider/Naruto.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseNaruto :: FromJSON a => FakerSettings -> Value -> Parser a parseNaruto settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   naruto <- faker .: "naruto"   pure naruto parseNaruto settings val = fail $ "expected Object, but got " <> (show val)  parseNarutoField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseNarutoField settings txt val = do   naruto <- parseNaruto settings val   field <- naruto .:? txt .!= mempty   pure field  parseNarutoFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseNarutoFields settings txts val = do   naruto <- parseNaruto settings val   helper naruto txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedNarutoFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedNarutoFields settings txts val = do   naruto <- parseNaruto settings val   helper naruto txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -82,11 +83,3 @@ $(genParser "naruto" "demons")  $(genProvider "naruto" "demons")--------
src/Faker/Provider/Nation.hs view
@@ -17,28 +17,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseNation :: FromJSON a => FakerSettings -> Value -> Parser a parseNation settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   nation <- faker .: "nation"   pure nation parseNation settings val = fail $ "expected Object, but got " <> (show val)  parseNationField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseNationField settings txt val = do   nation <- parseNation settings val   field <- nation .:? txt .!= mempty   pure field  parseNationFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseNationFields settings txts val = do   nation <- parseNation settings val   helper nation txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/NatoPhoneticAlphabet.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseNatoPhoneticAlphabet :: FromJSON a => FakerSettings -> Value -> Parser a parseNatoPhoneticAlphabet settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   natoPhoneticAlphabet <- faker .: "nato_phonetic_alphabet"   pure natoPhoneticAlphabet@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseNatoPhoneticAlphabetField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseNatoPhoneticAlphabetField settings txt val = do   natoPhoneticAlphabet <- parseNatoPhoneticAlphabet settings val   field <- natoPhoneticAlphabet .:? txt .!= mempty   pure field  parseNatoPhoneticAlphabetFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseNatoPhoneticAlphabetFields settings txts val = do   natoPhoneticAlphabet <- parseNatoPhoneticAlphabet settings val   helper natoPhoneticAlphabet txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/NewGirl.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseNewGirl :: FromJSON a => FakerSettings -> Value -> Parser a parseNewGirl settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   newGirl <- faker .: "new_girl"   pure newGirl parseNewGirl settings val = fail $ "expected Object, but got " <> (show val)  parseNewGirlField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseNewGirlField settings txt val = do   newGirl <- parseNewGirl settings val   field <- newGirl .:? txt .!= mempty   pure field  parseNewGirlFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseNewGirlFields settings txts val = do   newGirl <- parseNewGirl settings val   helper newGirl txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/OnePiece.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseOnePiece :: FromJSON a => FakerSettings -> Value -> Parser a parseOnePiece settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   onePiece <- faker .: "one_piece"   pure onePiece parseOnePiece settings val = fail $ "expected Object, but got " <> (show val)  parseOnePieceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseOnePieceField settings txt val = do   onePiece <- parseOnePiece settings val   field <- onePiece .:? txt .!= mempty   pure field  parseOnePieceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseOnePieceFields settings txts val = do   onePiece <- parseOnePiece settings val   helper onePiece txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Opera.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseOpera :: FromJSON a => FakerSettings -> Value -> Parser a parseOpera settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   opera <- faker .: "opera"   pure opera parseOpera settings val = fail $ "expected Object, but got " <> (show val)  parseOperaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseOperaField settings txt val = do   opera <- parseOpera settings val   field <- opera .:? txt .!= mempty   pure field  parseOperaFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseOperaFields settings txts val = do   opera <- parseOpera settings val   helper opera txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Overwatch.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseOverwatch :: FromJSON a => FakerSettings -> Value -> Parser a parseOverwatch settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   overwatch <- games .: "overwatch"@@ -26,19 +27,19 @@ parseOverwatch settings val = fail $ "expected Object, but got " <> (show val)  parseOverwatchField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseOverwatchField settings txt val = do   overwatch <- parseOverwatch settings val   field <- overwatch .:? txt .!= mempty   pure field  parseOverwatchFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseOverwatchFields settings txts val = do   overwatch <- parseOverwatch settings val   helper overwatch txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/ParksAndRec.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseParksAndRec :: FromJSON a => FakerSettings -> Value -> Parser a parseParksAndRec settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   parksAndRec <- faker .: "parks_and_rec"   pure parksAndRec parseParksAndRec settings val = fail $ "expected Object, but got " <> (show val)  parseParksAndRecField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseParksAndRecField settings txt val = do   parksAndRec <- parseParksAndRec settings val   field <- parksAndRec .:? txt .!= mempty   pure field  parseParksAndRecFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseParksAndRecFields settings txts val = do   parksAndRec <- parseParksAndRec settings val   helper parksAndRec txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/PearlJam.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parsePearlJam :: FromJSON a => FakerSettings -> Value -> Parser a parsePearlJam settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   pearlJam <- faker .: "pearl_jam"   pure pearlJam parsePearlJam settings val = fail $ "expected Object, but got " <> (show val)  parsePearlJamField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parsePearlJamField settings txt val = do   pearlJam <- parsePearlJam settings val   field <- pearlJam .:? txt .!= mempty   pure field  parsePearlJamFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parsePearlJamFields settings txts val = do   pearlJam <- parsePearlJam settings val   helper pearlJam txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Phish.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parsePhish :: FromJSON a => FakerSettings -> Value -> Parser a parsePhish settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   phish <- faker .: "phish"   pure phish parsePhish settings val = fail $ "expected Object, but got " <> (show val)  parsePhishField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parsePhishField settings txt val = do   phish <- parsePhish settings val   field <- phish .:? txt .!= mempty   pure field  parsePhishFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parsePhishFields settings txts val = do   phish <- parsePhish settings val   helper phish txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/PhoneNumber.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parsePhoneNumber :: FromJSON a => FakerSettings -> Value -> Parser a parsePhoneNumber settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   phoneNumber <- faker .: "phone_number"   pure phoneNumber parsePhoneNumber settings val = fail $ "expected Object, but got " <> (show val)  parsePhoneNumberField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parsePhoneNumberField settings txt val = do   phoneNumber <- parsePhoneNumber settings val   field <- phoneNumber .:? txt .!= mempty   pure field  parsePhoneNumberFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parsePhoneNumberFields settings txts val = do   phoneNumber <- parsePhoneNumber settings val   helper phoneNumber txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -46,14 +47,14 @@  parseCellPhone :: FromJSON a => FakerSettings -> Value -> Parser a parseCellPhone settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   phoneNumber <- faker .: "cell_phone"   pure phoneNumber parseCellPhone settings val = fail $ "expected Object, but got " <> (show val)  parseCellPhoneField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseCellPhoneField settings txt val = do   phoneNumber <- parsePhoneNumber settings val   field <- phoneNumber .:? txt .!= mempty@@ -62,7 +63,7 @@ parseUnresolvedCellPhoneField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedCellPhoneField settings txt val = do@@ -73,7 +74,7 @@ parseUnresolvedPhoneNumberField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedPhoneNumberField settings txt val = do@@ -97,7 +98,7 @@ -- $(genProvider "cellPhone" "formats") parseCountryCode :: FromJSON a => FakerSettings -> Value -> Parser a parseCountryCode settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   countryCode <- faker .: "country_code"   pure countryCode@@ -108,11 +109,11 @@ countryCodeProvider settings = fetchData settings PhoneNumber parseCountryCode  resolvePhoneNumberText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolvePhoneNumberText = genericResolver' resolvePhoneNumberField  resolvePhoneNumberField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolvePhoneNumberField settings field@"PhoneNumber.area_code" = let     parser ::      (FromJSON a, Monoid a) => FakerSettings -> Value -> Parser a
src/Faker/Provider/Pokemon.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parsePokemon :: FromJSON a => FakerSettings -> Value -> Parser a parsePokemon settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   pokemon <- games .: "pokemon"@@ -26,19 +27,19 @@ parsePokemon settings val = fail $ "expected Object, but got " <> (show val)  parsePokemonField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parsePokemonField settings txt val = do   pokemon <- parsePokemon settings val   field <- pokemon .:? txt .!= mempty   pure field  parsePokemonFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parsePokemonFields settings txts val = do   pokemon <- parsePokemon settings val   helper pokemon txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Prince.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parsePrince :: FromJSON a => FakerSettings -> Value -> Parser a parsePrince settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   prince <- faker .: "prince"   pure prince parsePrince settings val = fail $ "expected Object, but got " <> (show val)  parsePrinceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parsePrinceField settings txt val = do   prince <- parsePrince settings val   field <- prince .:? txt .!= mempty   pure field  parsePrinceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parsePrinceFields settings txts val = do   prince <- parsePrince settings val   helper prince txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedPrinceFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedPrinceFields settings txts val = do   prince <- parsePrince settings val   helper prince txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -86,14 +87,3 @@ $(genParser "prince" "band")  $(genProvider "prince" "band")-----------
src/Faker/Provider/PrincessBride.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parsePrincessBride :: FromJSON a => FakerSettings -> Value -> Parser a parsePrincessBride settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   princessBride <- faker .: "princess_bride"   pure princessBride@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parsePrincessBrideField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parsePrincessBrideField settings txt val = do   princessBride <- parsePrincessBride settings val   field <- princessBride .:? txt .!= mempty   pure field  parsePrincessBrideFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parsePrincessBrideFields settings txts val = do   princessBride <- parsePrincessBride settings val   helper princessBride txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/ProgrammingLanguage.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseProgrammingLauguage :: FromJSON a => FakerSettings -> Value -> Parser a parseProgrammingLauguage settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   programmingLauguage <- faker .: "programming_language"   pure programmingLauguage@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseProgrammingLauguageField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseProgrammingLauguageField settings txt val = do   programmingLauguage <- parseProgrammingLauguage settings val   field <- programmingLauguage .:? txt .!= mempty   pure field  parseProgrammingLauguageFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseProgrammingLauguageFields settings txts val = do   programmingLauguage <- parseProgrammingLauguage settings val   helper programmingLauguage txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Quote.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseQuote :: FromJSON a => FakerSettings -> Value -> Parser a parseQuote settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   quote <- faker .: "quote"   pure quote parseQuote settings val = fail $ "expected Object, but got " <> (show val)  parseQuoteField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseQuoteField settings txt val = do   quote <- parseQuote settings val   field <- quote .:? txt .!= mempty   pure field  parseQuoteFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseQuoteFields settings txts val = do   quote <- parseQuote settings val   helper quote txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Rajnikanth.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseRajnikanth :: FromJSON a => FakerSettings -> Value -> Parser a parseRajnikanth settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   rajnikanth <- faker .: "rajnikanth"   pure rajnikanth parseRajnikanth settings val = fail $ "expected Object, but got " <> (show val)  parseRajnikanthField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRajnikanthField settings txt val = do   rajnikanth <- parseRajnikanth settings val   field <- rajnikanth .:? txt .!= mempty   pure field  parseRajnikanthFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRajnikanthFields settings txts val = do   rajnikanth <- parseRajnikanth settings val   helper rajnikanth txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Relationship.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseRelationship :: FromJSON a => FakerSettings -> Value -> Parser a parseRelationship settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   relationship <- faker .: "relationship"   pure relationship@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseRelationshipField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRelationshipField settings txt val = do   relationship <- parseRelationship settings val   field <- relationship .:? txt .!= mempty   pure field  parseRelationshipFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRelationshipFields settings txts val = do   relationship <- parseRelationship settings val   helper relationship txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Restaurant.hs view
@@ -17,28 +17,29 @@ import Faker.Provider.Name (resolveNameField) import Language.Haskell.TH + parseRestaurant :: FromJSON a => FakerSettings -> Value -> Parser a parseRestaurant settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   restaurant <- faker .: "restaurant"   pure restaurant parseRestaurant settings val = fail $ "expected Object, but got " <> (show val)  parseRestaurantField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRestaurantField settings txt val = do   restaurant <- parseRestaurant settings val   field <- restaurant .:? txt .!= mempty   pure field  parseRestaurantFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRestaurantFields settings txts val = do   restaurant <- parseRestaurant settings val   helper restaurant txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,7 +49,7 @@ parseUnresolvedRestaurantField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedRestaurantField settings txt val = do@@ -81,11 +82,11 @@ $(genProviderUnresolved "restaurant" "name")  resolveRestaurantText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveRestaurantText = genericResolver' resolveRestaurantField  resolveRestaurantField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveRestaurantField settings field@"name_prefix" =   cachedRandomUnresolvedVec     "restaurant"
src/Faker/Provider/RickAndMorty.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseRickAndMorty :: FromJSON a => FakerSettings -> Value -> Parser a parseRickAndMorty settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   rickAndMorty <- faker .: "rick_and_morty"   pure rickAndMorty@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseRickAndMortyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRickAndMortyField settings txt val = do   rickAndMorty <- parseRickAndMorty settings val   field <- rickAndMorty .:? txt .!= mempty   pure field  parseRickAndMortyFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRickAndMortyFields settings txts val = do   rickAndMorty <- parseRickAndMorty settings val   helper rickAndMorty txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/RockBand.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseRockBand :: FromJSON a => FakerSettings -> Value -> Parser a parseRockBand settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   rockBand <- faker .: "rock_band"   pure rockBand parseRockBand settings val = fail $ "expected Object, but got " <> (show val)  parseRockBandField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRockBandField settings txt val = do   rockBand <- parseRockBand settings val   field <- rockBand .:? txt .!= mempty   pure field  parseRockBandFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRockBandFields settings txts val = do   rockBand <- parseRockBand settings val   helper rockBand txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Room.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseRoom :: FromJSON a => FakerSettings -> Value -> Parser a parseRoom settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   room <- faker .: "room"   pure room parseRoom settings val = fail $ "expected Object, but got " <> (show val)  parseRoomField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRoomField settings txt val = do   room <- parseRoom settings val   field <- room .:? txt .!= mempty   pure field  parseRoomFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRoomFields settings txts val = do   room <- parseRoom settings val   helper room txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedRoomFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedRoomFields settings txts val = do   room <- parseRoom settings val   helper room txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -82,11 +83,3 @@ $(genParser "room" "quotes")  $(genProvider "room" "quotes")--------
src/Faker/Provider/Rupaul.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseRupaul :: FromJSON a => FakerSettings -> Value -> Parser a parseRupaul settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   rupaul <- faker .: "rupaul"   pure rupaul parseRupaul settings val = fail $ "expected Object, but got " <> (show val)  parseRupaulField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRupaulField settings txt val = do   rupaul <- parseRupaul settings val   field <- rupaul .:? txt .!= mempty   pure field  parseRupaulFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRupaulFields settings txts val = do   rupaul <- parseRupaul settings val   helper rupaul txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Rush.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseRush :: FromJSON a => FakerSettings -> Value -> Parser a parseRush settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   rush <- faker .: "rush"   pure rush parseRush settings val = fail $ "expected Object, but got " <> (show val)  parseRushField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseRushField settings txt val = do   rush <- parseRush settings val   field <- rush .:? txt .!= mempty   pure field  parseRushFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseRushFields settings txts val = do   rush <- parseRush settings val   helper rush txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedRushFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedRushFields settings txts val = do   rush <- parseRush settings val   helper rush txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -76,14 +77,3 @@ $(genParser "rush" "albums")  $(genProvider "rush" "albums")-----------
src/Faker/Provider/Science.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseScience :: FromJSON a => FakerSettings -> Value -> Parser a parseScience settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   science <- faker .: "science"   pure science parseScience settings val = fail $ "expected Object, but got " <> (show val)  parseScienceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseScienceField settings txt val = do   science <- parseScience settings val   field <- science .:? txt .!= mempty   pure field  parseScienceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseScienceFields settings txts val = do   science <- parseScience settings val   helper science txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Seinfeld.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSeinfeld :: FromJSON a => FakerSettings -> Value -> Parser a parseSeinfeld settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   seinfeld <- faker .: "seinfeld"   pure seinfeld parseSeinfeld settings val = fail $ "expected Object, but got " <> (show val)  parseSeinfeldField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSeinfeldField settings txt val = do   seinfeld <- parseSeinfeld settings val   field <- seinfeld .:? txt .!= mempty   pure field  parseSeinfeldFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSeinfeldFields settings txts val = do   seinfeld <- parseSeinfeld settings val   helper seinfeld txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Shakespeare.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseShakespeare :: FromJSON a => FakerSettings -> Value -> Parser a parseShakespeare settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   shakespeare <- faker .: "shakespeare"   pure shakespeare parseShakespeare settings val = fail $ "expected Object, but got " <> (show val)  parseShakespeareField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseShakespeareField settings txt val = do   shakespeare <- parseShakespeare settings val   field <- shakespeare .:? txt .!= mempty   pure field  parseShakespeareFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseShakespeareFields settings txts val = do   shakespeare <- parseShakespeare settings val   helper shakespeare txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Show.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseShow :: FromJSON a => FakerSettings -> Value -> Parser a parseShow settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   show <- faker .: "show"   pure show parseShow settings val = fail $ "expected Object, but got " <> (show val)  parseShowField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseShowField settings txt val = do   show <- parseShow settings val   field <- show .:? txt .!= mempty   pure field  parseShowFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseShowFields settings txts val = do   show <- parseShow settings val   helper show txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/SiliconValley.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSiliconValley :: FromJSON a => FakerSettings -> Value -> Parser a parseSiliconValley settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   siliconValley <- faker .: "silicon_valley"   pure siliconValley@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseSiliconValleyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSiliconValleyField settings txt val = do   siliconValley <- parseSiliconValley settings val   field <- siliconValley .:? txt .!= mempty   pure field  parseSiliconValleyFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSiliconValleyFields settings txts val = do   siliconValley <- parseSiliconValley settings val   helper siliconValley txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Simpsons.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSimpsons :: FromJSON a => FakerSettings -> Value -> Parser a parseSimpsons settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   simpsons <- faker .: "simpsons"   pure simpsons parseSimpsons settings val = fail $ "expected Object, but got " <> (show val)  parseSimpsonsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSimpsonsField settings txt val = do   simpsons <- parseSimpsons settings val   field <- simpsons .:? txt .!= mempty   pure field  parseSimpsonsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSimpsonsFields settings txts val = do   simpsons <- parseSimpsons settings val   helper simpsons txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/SlackEmoji.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSlackEmoji :: FromJSON a => FakerSettings -> Value -> Parser a parseSlackEmoji settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   slackEmoji <- faker .: "slack_emoji"   pure slackEmoji parseSlackEmoji settings val = fail $ "expected Object, but got " <> (show val)  parseSlackEmojiField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSlackEmojiField settings txt val = do   slackEmoji <- parseSlackEmoji settings val   field <- slackEmoji .:? txt .!= mempty   pure field  parseSlackEmojiFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSlackEmojiFields settings txts val = do   slackEmoji <- parseSlackEmoji settings val   helper slackEmoji txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedSlackEmojiField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedSlackEmojiField settings txt val = do@@ -92,11 +93,11 @@ $(genProviderUnresolved "slackEmoji" "emoji")  resolveSlackEmojiText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveSlackEmojiText = genericResolver' resolveSlackEmojiField  resolveSlackEmojiField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveSlackEmojiField settings field@"people" =   cachedRandomVec "slackEmoji" field slackEmojiPeopleProvider settings resolveSlackEmojiField settings field@"nature" =
src/Faker/Provider/SonicTheHedgehog.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSonicTheHedgehog :: FromJSON a => FakerSettings -> Value -> Parser a parseSonicTheHedgehog settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   sonicTheHedgehog <- games .: "sonic_the_hedgehog"@@ -27,19 +28,19 @@   fail $ "expected Object, but got " <> (show val)  parseSonicTheHedgehogField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSonicTheHedgehogField settings txt val = do   sonicTheHedgehog <- parseSonicTheHedgehog settings val   field <- sonicTheHedgehog .:? txt .!= mempty   pure field  parseSonicTheHedgehogFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSonicTheHedgehogFields settings txts val = do   sonicTheHedgehog <- parseSonicTheHedgehog settings val   helper sonicTheHedgehog txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Source.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSource :: FromJSON a => FakerSettings -> Value -> Parser a parseSource settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   source <- faker .: "source"   pure source parseSource settings val = fail $ "expected Object, but got " <> (show val)  parseSourceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSourceField settings txt val = do   source <- parseSource settings val   field <- source .:? txt .!= mempty   pure field  parseSourceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSourceFields settings txts val = do   source <- parseSource settings val   helper source txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/SouthPark.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSouthPark :: FromJSON a => FakerSettings -> Value -> Parser a parseSouthPark settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   southPark <- faker .: "south_park"   pure southPark parseSouthPark settings val = fail $ "expected Object, but got " <> (show val)  parseSouthParkField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSouthParkField settings txt val = do   southPark <- parseSouthPark settings val   field <- southPark .:? txt .!= mempty   pure field  parseSouthParkFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSouthParkFields settings txts val = do   southPark <- parseSouthPark settings val   helper southPark txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Space.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSpace :: FromJSON a => FakerSettings -> Value -> Parser a parseSpace settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   space <- faker .: "space"   pure space parseSpace settings val = fail $ "expected Object, but got " <> (show val)  parseSpaceField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSpaceField settings txt val = do   space <- parseSpace settings val   field <- space .:? txt .!= mempty   pure field  parseSpaceFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSpaceFields settings txts val = do   space <- parseSpace settings val   helper space txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/StarTrek.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseStarTrek :: FromJSON a => FakerSettings -> Value -> Parser a parseStarTrek settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   starTrek <- faker .: "star_trek"   pure starTrek parseStarTrek settings val = fail $ "expected Object, but got " <> (show val)  parseStarTrekField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseStarTrekField settings txt val = do   starTrek <- parseStarTrek settings val   field <- starTrek .:? txt .!= mempty   pure field  parseStarTrekFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseStarTrekFields settings txts val = do   starTrek <- parseStarTrek settings val   helper starTrek txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/StarWars.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseStarWars :: FromJSON a => FakerSettings -> Value -> Parser a parseStarWars settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   starWars <- faker .: "star_wars"   pure starWars parseStarWars settings val = fail $ "expected Object, but got " <> (show val)  parseStarWarsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseStarWarsField settings txt val = do   starWars <- parseStarWars settings val   field <- starWars .:? txt .!= mempty   pure field  parseStarWarsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseStarWarsFields settings txts val = do   starWars <- parseStarWars settings val   helper starWars txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedStarWarsField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedStarWarsField settings txt val = do@@ -92,11 +93,11 @@ $(genProviderUnresolved "starWars" "call_sign")  resolveStarWarsText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveStarWarsText = genericResolver' resolveStarWarsField  resolveStarWarsField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveStarWarsField settings field@"call_number" =   cachedRandomUnresolvedVec     "starWars"
src/Faker/Provider/Stargate.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseStargate :: FromJSON a => FakerSettings -> Value -> Parser a parseStargate settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   stargate <- faker .: "stargate"   pure stargate parseStargate settings val = fail $ "expected Object, but got " <> (show val)  parseStargateField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseStargateField settings txt val = do   stargate <- parseStargate settings val   field <- stargate .:? txt .!= mempty   pure field  parseStargateFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseStargateFields settings txts val = do   stargate <- parseStargate settings val   helper stargate txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/StrangerThings.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseStrangerThings :: FromJSON a => FakerSettings -> Value -> Parser a parseStrangerThings settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   strangerThings <- faker .: "stranger_things"   pure strangerThings@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseStrangerThingsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseStrangerThingsField settings txt val = do   strangerThings <- parseStrangerThings settings val   field <- strangerThings .:? txt .!= mempty   pure field  parseStrangerThingsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseStrangerThingsFields settings txts val = do   strangerThings <- parseStrangerThings settings val   helper strangerThings txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/StreetFighter.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseStreetFighter :: FromJSON a => FakerSettings -> Value -> Parser a parseStreetFighter settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   streetFighter <- games .: "street_fighter"@@ -24,19 +25,19 @@ parseStreetFighter settings val = fail $ "expected Object, but got " <> (show val)  parseStreetFighterField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseStreetFighterField settings txt val = do   streetFighter <- parseStreetFighter settings val   field <- streetFighter .:? txt .!= mempty   pure field  parseStreetFighterFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseStreetFighterFields settings txts val = do   streetFighter <- parseStreetFighter settings val   helper streetFighter txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -49,14 +50,14 @@ parseUnresolvedStreetFighterFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedStreetFighterFields settings txts val = do   streetFighter <- parseStreetFighter settings val   helper streetFighter txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -87,14 +88,3 @@ $(genParser "streetFighter" "moves")  $(genProvider "streetFighter" "moves")-----------
src/Faker/Provider/StudioGhibli.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseStudioGhibli :: FromJSON a => FakerSettings -> Value -> Parser a parseStudioGhibli settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   studioGhibli <- faker .: "studio_ghibli"   pure studioGhibli parseStudioGhibli settings val = fail $ "expected Object, but got " <> (show val)  parseStudioGhibliField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseStudioGhibliField settings txt val = do   studioGhibli <- parseStudioGhibli settings val   field <- studioGhibli .:? txt .!= mempty   pure field  parseStudioGhibliFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseStudioGhibliFields settings txts val = do   studioGhibli <- parseStudioGhibli settings val   helper studioGhibli txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedStudioGhibliFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedStudioGhibliFields settings txts val = do   studioGhibli <- parseStudioGhibli settings val   helper studioGhibli txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -81,14 +82,3 @@ $(genParser "studioGhibli" "movies")  $(genProvider "studioGhibli" "movies")-----------
src/Faker/Provider/Subscription.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSubscription :: FromJSON a => FakerSettings -> Value -> Parser a parseSubscription settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   subscription <- faker .: "subscription"   pure subscription@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseSubscriptionField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSubscriptionField settings txt val = do   subscription <- parseSubscription settings val   field <- subscription .:? txt .!= mempty   pure field  parseSubscriptionFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSubscriptionFields settings txts val = do   subscription <- parseSubscription settings val   helper subscription txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Suits.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSuits :: FromJSON a => FakerSettings -> Value -> Parser a parseSuits settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   suits <- faker .: "suits"   pure suits parseSuits settings val = fail $ "expected Object, but got " <> (show val)  parseSuitsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSuitsField settings txt val = do   suits <- parseSuits settings val   field <- suits .:? txt .!= mempty   pure field  parseSuitsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSuitsFields settings txts val = do   suits <- parseSuits settings val   helper suits txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -53,14 +54,3 @@ $(genParser "suits" "quotes")  $(genProvider "suits" "quotes")-----------
src/Faker/Provider/SuperMario.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSuperMario :: FromJSON a => FakerSettings -> Value -> Parser a parseSuperMario settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   superMario <- games .: "super_mario"@@ -24,19 +25,19 @@ parseSuperMario settings val = fail $ "expected Object, but got " <> (show val)  parseSuperMarioField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSuperMarioField settings txt val = do   superMario <- parseSuperMario settings val   field <- superMario .:? txt .!= mempty   pure field  parseSuperMarioFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSuperMarioFields settings txts val = do   superMario <- parseSuperMario settings val   helper superMario txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -49,14 +50,14 @@ parseUnresolvedSuperMarioFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedSuperMarioFields settings txts val = do   superMario <- parseSuperMario settings val   helper superMario txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v
src/Faker/Provider/SuperSmashBros.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSuperSmashBros :: FromJSON a => FakerSettings -> Value -> Parser a parseSuperSmashBros settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   superSmashBros <- games .: "super_smash_bros"@@ -27,19 +28,19 @@   fail $ "expected Object, but got " <> (show val)  parseSuperSmashBrosField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSuperSmashBrosField settings txt val = do   superSmashBros <- parseSuperSmashBros settings val   field <- superSmashBros .:? txt .!= mempty   pure field  parseSuperSmashBrosFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSuperSmashBrosFields settings txts val = do   superSmashBros <- parseSuperSmashBros settings val   helper superSmashBros txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Superhero.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSuperhero :: FromJSON a => FakerSettings -> Value -> Parser a parseSuperhero settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   superhero <- faker .: "superhero"   pure superhero parseSuperhero settings val = fail $ "expected Object, but got " <> (show val)  parseSuperheroField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSuperheroField settings txt val = do   superhero <- parseSuperhero settings val   field <- superhero .:? txt .!= mempty   pure field  parseSuperheroFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSuperheroFields settings txts val = do   superhero <- parseSuperhero settings val   helper superhero txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedSuperheroField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedSuperheroField settings txt val = do@@ -76,11 +77,11 @@ $(genProviderUnresolved "superhero" "name")  resolveSuperheroText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveSuperheroText settings txt = genericResolver settings txt resolveSuperheroField  resolveSuperheroField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveSuperheroField settings field@"Superhero.prefix" =   cachedRandomVec "superhero" field superheroPrefixProvider settings resolveSuperheroField settings field@"Superhero.suffix" =
src/Faker/Provider/SwordArtOnline.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseSwordArtOnline :: FromJSON a => FakerSettings -> Value -> Parser a parseSwordArtOnline settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   swordArtOnline <- faker .: "sword_art_online"   pure swordArtOnline@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseSwordArtOnlineField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseSwordArtOnlineField settings txt val = do   swordArtOnline <- parseSwordArtOnline settings val   field <- swordArtOnline .:? txt .!= mempty   pure field  parseSwordArtOnlineFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseSwordArtOnlineFields settings txts val = do   swordArtOnline <- parseSwordArtOnline settings val   helper swordArtOnline txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Tea.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTea :: FromJSON a => FakerSettings -> Value -> Parser a parseTea settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   tea <- faker .: "tea"   pure tea parseTea settings val = fail $ "expected Object, but got " <> (show val)  parseTeaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTeaField settings txt val = do   tea <- parseTea settings val   field <- tea .:? txt .!= mempty   pure field  parseTeaFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTeaFields settings txts val = do   tea <- parseTea settings val   helper tea txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedTeaFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedTeaFields settings txts val = do   tea <- parseTea settings val   helper tea txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v
src/Faker/Provider/Team.hs view
@@ -17,28 +17,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTeam :: FromJSON a => FakerSettings -> Value -> Parser a parseTeam settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   team <- faker .: "team"   pure team parseTeam settings val = fail $ "expected Object, but got " <> (show val)  parseTeamField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTeamField settings txt val = do   team <- parseTeam settings val   field <- team .:? txt .!= mempty   pure field  parseTeamFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTeamFields settings txts val = do   team <- parseTeam settings val   helper team txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,7 +49,7 @@ parseUnresolvedTeamField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedTeamField settings txt val = do@@ -97,10 +98,10 @@  $(genProvider "team" "team_prefix") -resolveTeamText :: (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+resolveTeamText :: (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveTeamText = genericResolver' resolveTeamField -resolveTeamField :: (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+resolveTeamField :: (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveTeamField settings field@"creature" =   cachedRandomVec "team" field teamCreatureProvider settings resolveTeamField settings "Address.state" =
src/Faker/Provider/TheExpanse.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTheExpanse :: FromJSON a => FakerSettings -> Value -> Parser a parseTheExpanse settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   theExpanse <- faker .: "the_expanse"   pure theExpanse parseTheExpanse settings val = fail $ "expected Object, but got " <> (show val)  parseTheExpanseField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTheExpanseField settings txt val = do   theExpanse <- parseTheExpanse settings val   field <- theExpanse .:? txt .!= mempty   pure field  parseTheExpanseFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTheExpanseFields settings txts val = do   theExpanse <- parseTheExpanse settings val   helper theExpanse txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/TheItCrowd.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTheItCrowd :: FromJSON a => FakerSettings -> Value -> Parser a parseTheItCrowd settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   theItCrowd <- faker .: "the_it_crowd"   pure theItCrowd parseTheItCrowd settings val = fail $ "expected Object, but got " <> (show val)  parseTheItCrowdField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTheItCrowdField settings txt val = do   theItCrowd <- parseTheItCrowd settings val   field <- theItCrowd .:? txt .!= mempty   pure field  parseTheItCrowdFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTheItCrowdFields settings txts val = do   theItCrowd <- parseTheItCrowd settings val   helper theItCrowd txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/TheThickOfIt.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTheThickOfIt :: FromJSON a => FakerSettings -> Value -> Parser a parseTheThickOfIt settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   theThickOfIt <- faker .: "the_thick_of_it"   pure theThickOfIt@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseTheThickOfItField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTheThickOfItField settings txt val = do   theThickOfIt <- parseTheThickOfIt settings val   field <- theThickOfIt .:? txt .!= mempty   pure field  parseTheThickOfItFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTheThickOfItFields settings txts val = do   theThickOfIt <- parseTheThickOfIt settings val   helper theThickOfIt txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Tolkien.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTolkien :: FromJSON a => FakerSettings -> Value -> Parser a parseTolkien settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   tolkien <- faker .: "tolkien"   pure tolkien parseTolkien settings val = fail $ "expected Object, but got " <> (show val)  parseTolkienField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTolkienField settings txt val = do   tolkien <- parseTolkien settings val   field <- tolkien .:? txt .!= mempty   pure field  parseTolkienFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTolkienFields settings txts val = do   tolkien <- parseTolkien settings val   helper tolkien txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedTolkienFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedTolkienFields settings txts val = do   tolkien <- parseTolkien settings val   helper tolkien txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v
src/Faker/Provider/Touhou.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTouhou :: FromJSON a => FakerSettings -> Value -> Parser a parseTouhou settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   touhou <- games .: "touhou"@@ -24,19 +25,19 @@ parseTouhou settings val = fail $ "expected Object, but got " <> (show val)  parseTouhouField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTouhouField settings txt val = do   touhou <- parseTouhou settings val   field <- touhou .:? txt .!= mempty   pure field  parseTouhouFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTouhouFields settings txts val = do   touhou <- parseTouhou settings val   helper touhou txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -49,14 +50,14 @@ parseUnresolvedTouhouFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedTouhouFields settings txts val = do   touhou <- parseTouhou settings val   helper touhou txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v
src/Faker/Provider/TwinPeaks.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseTwinPeaks :: FromJSON a => FakerSettings -> Value -> Parser a parseTwinPeaks settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   twinPeaks <- faker .: "twin_peaks"   pure twinPeaks parseTwinPeaks settings val = fail $ "expected Object, but got " <> (show val)  parseTwinPeaksField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseTwinPeaksField settings txt val = do   twinPeaks <- parseTwinPeaks settings val   field <- twinPeaks .:? txt .!= mempty   pure field  parseTwinPeaksFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseTwinPeaksFields settings txts val = do   twinPeaks <- parseTwinPeaks settings val   helper twinPeaks txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/UmphreysMcgee.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseUmphreysMcgee :: FromJSON a => FakerSettings -> Value -> Parser a parseUmphreysMcgee settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   umphreysMcgee <- faker .: "umphreys_mcgee"   pure umphreysMcgee@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseUmphreysMcgeeField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseUmphreysMcgeeField settings txt val = do   umphreysMcgee <- parseUmphreysMcgee settings val   field <- umphreysMcgee .:? txt .!= mempty   pure field  parseUmphreysMcgeeFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseUmphreysMcgeeFields settings txts val = do   umphreysMcgee <- parseUmphreysMcgee settings val   helper umphreysMcgee txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/University.hs view
@@ -18,28 +18,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseUniversity :: FromJSON a => FakerSettings -> Value -> Parser a parseUniversity settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   university <- faker .: "university"   pure university parseUniversity settings val = fail $ "expected Object, but got " <> (show val)  parseUniversityField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseUniversityField settings txt val = do   university <- parseUniversity settings val   field <- university .:? txt .!= mempty   pure field  parseUniversityFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseUniversityFields settings txts val = do   university <- parseUniversity settings val   helper university txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -49,7 +50,7 @@ parseUnresolvedUniversityField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedUniversityField settings txt val = do@@ -76,11 +77,11 @@   resolveUniversityText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveUniversityText = genericResolver' resolveUniversityField  resolveUniversityField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveUniversityField settings "University.prefix" =   cachedRandomVec "university" "prefix" universityPrefixProvider settings resolveUniversityField settings "University.suffix" =
src/Faker/Provider/VForVendetta.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseVForVendetta :: FromJSON a => FakerSettings -> Value -> Parser a parseVForVendetta settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   vForVendetta <- faker .: "v_for_vendetta"   pure vForVendetta@@ -26,19 +27,19 @@   fail $ "expected Object, but got " <> (show val)  parseVForVendettaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseVForVendettaField settings txt val = do   vForVendetta <- parseVForVendetta settings val   field <- vForVendetta .:? txt .!= mempty   pure field  parseVForVendettaFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseVForVendettaFields settings txts val = do   vForVendetta <- parseVForVendetta settings val   helper vForVendetta txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Vehicle.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseVehicle :: FromJSON a => FakerSettings -> Value -> Parser a parseVehicle settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   vehicle <- faker .: "vehicle"   pure vehicle parseVehicle settings val = fail $ "expected Object, but got " <> (show val)  parseVehicleField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseVehicleField settings txt val = do   vehicle <- parseVehicle settings val   field <- vehicle .:? txt .!= mempty   pure field  parseVehicleFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseVehicleFields settings txts val = do   vehicle <- parseVehicle settings val   helper vehicle txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -47,7 +48,7 @@ parseUnresolvedVehicleField ::      (FromJSON a, Monoid a)   => FakerSettings-  -> Text+  -> AesonKey   -> Value   -> Parser (Unresolved a) parseUnresolvedVehicleField settings txt val = do@@ -116,11 +117,11 @@ vehicleLicensePlateProvider _ = pure $ pure $ pure "???-###"  resolveVehicleText ::-     (MonadIO m, MonadThrow m) => FakerSettings -> Text -> m Text+     (MonadIO m, MonadThrow m) => FakerSettings -> AesonKey -> m Text resolveVehicleText settings txt = genericResolver settings txt resolveVehicleField  resolveVehicleField ::-     (MonadThrow m, MonadIO m) => FakerSettings -> Text -> m Text+     (MonadThrow m, MonadIO m) => FakerSettings -> AesonKey -> m Text resolveVehicleField settings str = throwM $ InvalidField "vehicle" str  $(genParsers "vehicle" ["models_by_make", "BMW"])
src/Faker/Provider/VentureBros.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseVentureBros :: FromJSON a => FakerSettings -> Value -> Parser a parseVentureBros settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   ventureBros <- faker .: "venture_bros"   pure ventureBros parseVentureBros settings val = fail $ "expected Object, but got " <> (show val)  parseVentureBrosField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseVentureBrosField settings txt val = do   ventureBros <- parseVentureBros settings val   field <- ventureBros .:? txt .!= mempty   pure field  parseVentureBrosFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseVentureBrosFields settings txts val = do   ventureBros <- parseVentureBros settings val   helper ventureBros txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Verbs.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseVerbs :: FromJSON a => FakerSettings -> Value -> Parser a parseVerbs settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   verbs <- faker .: "verbs"   pure verbs parseVerbs settings val = fail $ "expected Object, but got " <> (show val)  parseVerbsField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseVerbsField settings txt val = do   verbs <- parseVerbs settings val   field <- verbs .:? txt .!= mempty   pure field  parseVerbsFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseVerbsFields settings txts val = do   verbs <- parseVerbs settings val   helper verbs txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Volleyball.hs view
@@ -14,28 +14,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseVolleyball :: FromJSON a => FakerSettings -> Value -> Parser a parseVolleyball settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   volleyball <- faker .: "volleyball"   pure volleyball parseVolleyball settings val = fail $ "expected Object, but got " <> (show val)  parseVolleyballField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseVolleyballField settings txt val = do   volleyball <- parseVolleyball settings val   field <- volleyball .:? txt .!= mempty   pure field  parseVolleyballFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseVolleyballFields settings txts val = do   volleyball <- parseVolleyball settings val   helper volleyball txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x@@ -48,14 +49,14 @@ parseUnresolvedVolleyballFields ::      (FromJSON a, Monoid a)   => FakerSettings-  -> [Text]+  -> [AesonKey]   -> Value   -> Parser (Unresolved a) parseUnresolvedVolleyballFields settings txts val = do   volleyball <- parseVolleyball settings val   helper volleyball txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser (Unresolved a)+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser (Unresolved a)     helper a [] = do       v <- parseJSON a       pure $ pure v@@ -86,11 +87,3 @@ $(genParser "volleyball" "formation")  $(genProvider "volleyball" "formation")--------
src/Faker/Provider/WarhammerFantasy.hs view
@@ -14,9 +14,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseWarhammerFantasy :: FromJSON a => FakerSettings -> Value -> Parser a parseWarhammerFantasy settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   warhammerFantasy <- games .: "warhammer_fantasy"@@ -25,19 +26,19 @@   fail $ "expected Object, but got " <> (show val)  parseWarhammerFantasyField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseWarhammerFantasyField settings txt val = do   warhammerFantasy <- parseWarhammerFantasy settings val   field <- warhammerFantasy .:? txt .!= mempty   pure field  parseWarhammerFantasyFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseWarhammerFantasyFields settings txts val = do   warhammerFantasy <- parseWarhammerFantasy settings val   helper warhammerFantasy txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Witcher.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseWitcher :: FromJSON a => FakerSettings -> Value -> Parser a parseWitcher settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   witcher <- games .: "witcher"@@ -26,19 +27,19 @@ parseWitcher settings val = fail $ "expected Object, but got " <> (show val)  parseWitcherField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseWitcherField settings txt val = do   witcher <- parseWitcher settings val   field <- witcher .:? txt .!= mempty   pure field  parseWitcherFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseWitcherFields settings txts val = do   witcher <- parseWitcher settings val   helper witcher txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/WorldCup.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseWorldCup :: FromJSON a => FakerSettings -> Value -> Parser a parseWorldCup settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   worldCup <- faker .: "world_cup"   pure worldCup parseWorldCup settings val = fail $ "expected Object, but got " <> (show val)  parseWorldCupField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseWorldCupField settings txt val = do   worldCup <- parseWorldCup settings val   field <- worldCup .:? txt .!= mempty   pure field  parseWorldCupFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseWorldCupFields settings txts val = do   worldCup <- parseWorldCup settings val   helper worldCup txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/WorldOfWarcraft.hs view
@@ -16,9 +16,10 @@ import Faker.Provider.TH import Language.Haskell.TH + parseWorldOfWarcraft :: FromJSON a => FakerSettings -> Value -> Parser a parseWorldOfWarcraft settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   worldOfWarcraft <- games .: "world_of_warcraft"@@ -27,19 +28,19 @@   fail $ "expected Object, but got " <> (show val)  parseWorldOfWarcraftField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseWorldOfWarcraftField settings txt val = do   worldOfWarcraft <- parseWorldOfWarcraft settings val   field <- worldOfWarcraft .:? txt .!= mempty   pure field  parseWorldOfWarcraftFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseWorldOfWarcraftFields settings txts val = do   worldOfWarcraft <- parseWorldOfWarcraft settings val   helper worldOfWarcraft txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Yoda.hs view
@@ -16,28 +16,29 @@ import Faker.Provider.TH import Language.Haskell.TH + parseYoda :: FromJSON a => FakerSettings -> Value -> Parser a parseYoda settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   yoda <- faker .: "yoda"   pure yoda parseYoda settings val = fail $ "expected Object, but got " <> (show val)  parseYodaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseYodaField settings txt val = do   yoda <- parseYoda settings val   field <- yoda .:? txt .!= mempty   pure field  parseYodaFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseYodaFields settings txts val = do   yoda <- parseYoda settings val   helper yoda txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
src/Faker/Provider/Zelda.hs view
@@ -18,7 +18,7 @@  parseZelda :: FromJSON a => FakerSettings -> Value -> Parser a parseZelda settings (Object obj) = do-  en <- obj .: (getLocale settings)+  en <- obj .: (getLocaleKey settings)   faker <- en .: "faker"   games <- faker .: "games"   zelda <- games .: "zelda"@@ -26,19 +26,19 @@ parseZelda settings val = fail $ "expected Object, but got " <> (show val)  parseZeldaField ::-     (FromJSON a, Monoid a) => FakerSettings -> Text -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> AesonKey -> Value -> Parser a parseZeldaField settings txt val = do   zelda <- parseZelda settings val   field <- zelda .:? txt .!= mempty   pure field  parseZeldaFields ::-     (FromJSON a, Monoid a) => FakerSettings -> [Text] -> Value -> Parser a+     (FromJSON a, Monoid a) => FakerSettings -> [AesonKey] -> Value -> Parser a parseZeldaFields settings txts val = do   zelda <- parseZelda settings val   helper zelda txts   where-    helper :: (FromJSON a) => Value -> [Text] -> Parser a+    helper :: (FromJSON a) => Value -> [AesonKey] -> Parser a     helper a [] = parseJSON a     helper (Object a) (x:xs) = do       field <- a .: x
test/AddressSpec.hs view
@@ -12,6 +12,7 @@ import Test.Hspec import TestImport import Faker.Internal+import Faker.Internal.Types (aesonKeyToText)  fakerException :: Selector FakerException fakerException = const True@@ -24,14 +25,14 @@         resolveUnresolved           defaultFakerSettings           (pure $ pure $ "32-????-####")-          (\s t -> pure t)+          (\s t -> pure $ aesonKeyToText t)       txt `shouldBeOneOf` ["32-SZJX-4351", "32-GODI-8116"]     it "doesn't get confused with garbage" $ do       txt <-         resolveUnresolved           defaultFakerSettings           (pure $ pure $ "abjakf-324jak")-          (\s t -> pure t)+          (\s t -> pure $ aesonKeyToText t)       txt `shouldBe` "abjakf-324jak"     describe "Address functions" $ do       it "basic check" $ do