module Argo.Internal.QuasiQuoter where import qualified Argo.Internal.Decode as Decode import qualified Argo.Internal.Json.Value as Value import qualified Argo.Vendor.TemplateHaskell as TH import qualified Argo.Vendor.Text as Text pointer :: TH.QuasiQuoter pointer :: QuasiQuoter pointer = QuasiQuoter defaultQuasiQuoter { quoteExp :: String -> Q Exp TH.quoteExp = forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either forall (m :: * -> *) a. MonadFail m => String -> m a fail forall t (m :: * -> *). (Lift t, Quote m) => t -> m Exp TH.lift forall b c a. (b -> c) -> (a -> b) -> a -> c . ByteString -> Either String Pointer Decode.decodePointer forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> ByteString Text.encodeUtf8 forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> Text Text.pack } value :: TH.QuasiQuoter value :: QuasiQuoter value = QuasiQuoter defaultQuasiQuoter { quoteExp :: String -> Q Exp TH.quoteExp = forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either forall (m :: * -> *) a. MonadFail m => String -> m a fail (forall t (m :: * -> *). (Lift t, Quote m) => t -> m Exp TH.lift forall b c a. (b -> c) -> (a -> b) -> a -> c . Value -> Value asValue) forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. HasCodec a => ByteString -> Either String a Decode.decode forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> ByteString Text.encodeUtf8 forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> Text Text.pack } asValue :: Value.Value -> Value.Value asValue :: Value -> Value asValue = forall a. a -> a id defaultQuasiQuoter :: TH.QuasiQuoter defaultQuasiQuoter :: QuasiQuoter defaultQuasiQuoter = TH.QuasiQuoter { quoteDec :: String -> Q [Dec] TH.quoteDec = forall a b. a -> b -> a const forall a b. (a -> b) -> a -> b $ forall (m :: * -> *) a. MonadFail m => String -> m a fail String "cannot be used as a declaration" , quoteExp :: String -> Q Exp TH.quoteExp = forall a b. a -> b -> a const forall a b. (a -> b) -> a -> b $ forall (m :: * -> *) a. MonadFail m => String -> m a fail String "cannot be used as an expression" , quotePat :: String -> Q Pat TH.quotePat = forall a b. a -> b -> a const forall a b. (a -> b) -> a -> b $ forall (m :: * -> *) a. MonadFail m => String -> m a fail String "cannot be used as a pattern" , quoteType :: String -> Q Type TH.quoteType = forall a b. a -> b -> a const forall a b. (a -> b) -> a -> b $ forall (m :: * -> *) a. MonadFail m => String -> m a fail String "cannot be used as a type" }