-- | Like @<https://hackage.haskell.org/package/aeson-qq/docs/Data-Aeson-QQ.html Data.Aeson.QQ>@ but without interpolation.moduleData.Aeson.QQ.Simple(aesonQQ )whereimportData.Aeson importqualifiedData.TextasTimportqualifiedData.Text.EncodingasTEimportLanguage.Haskell.THimportLanguage.Haskell.TH.QuoteimportLanguage.Haskell.TH.Syntax(Lift(..))-- | Converts a string representation of a JSON value into 'Data.Aeson.Value' at compile-time.---- @-- {-\# LANGUAGE QuasiQuotes \#-}---- import Data.Aeson (Value)-- import Data.Aeson.QQ.Simple---- joe :: 'Value'-- joe = [aesonQQ|{ "name": \"Joe\", "age": 12 }|]-- @aesonQQ ::QuasiQuoteraesonQQ :: QuasiQuoter aesonQQ =QuasiQuoter{quoteExp :: String -> Q Exp quoteExp=String -> Q Exp aesonExp ,quotePat :: String -> Q Pat quotePat=Q Pat -> String -> Q Pat forall a b. a -> b -> a const(Q Pat -> String -> Q Pat) -> Q Pat -> String -> Q Pat forall a b. (a -> b) -> a -> b $String -> Q Pat forall a. HasCallStack => String -> a errorString "No quotePat defined for jsonQQ",quoteType :: String -> Q Type quoteType=Q Type -> String -> Q Type forall a b. a -> b -> a const(Q Type -> String -> Q Type) -> Q Type -> String -> Q Type forall a b. (a -> b) -> a -> b $String -> Q Type forall a. HasCallStack => String -> a errorString "No quoteType defined for jsonQQ",quoteDec :: String -> Q [Dec] quoteDec=Q [Dec] -> String -> Q [Dec] forall a b. a -> b -> a const(Q [Dec] -> String -> Q [Dec]) -> Q [Dec] -> String -> Q [Dec] forall a b. (a -> b) -> a -> b $String -> Q [Dec] forall a. HasCallStack => String -> a errorString "No quoteDec defined for jsonQQ"}aesonExp ::String->ExpQaesonExp :: String -> Q Exp aesonExp String txt =caseByteString -> Either String Value forall a. FromJSON a => ByteString -> Either String a eitherDecodeStrict (ByteString -> Either String Value) -> ByteString -> Either String Value forall a b. (a -> b) -> a -> b $Text -> ByteString TE.encodeUtf8(Text -> ByteString) -> Text -> ByteString forall a b. (a -> b) -> a -> b $String -> Text T.packString txt ofLeftString err ->String -> Q Exp forall a. HasCallStack => String -> a error(String -> Q Exp) -> String -> Q Exp forall a b. (a -> b) -> a -> b $String "Error in aesonExp: "String -> String -> String forall a. [a] -> [a] -> [a] ++String -> String forall a. Show a => a -> String showString err RightValue val ->Value -> Q Exp forall t (m :: * -> *). (Lift t, Quote m) => t -> m Exp forall (m :: * -> *). Quote m => Value -> m Exp lift(Value val ::Value )