{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-local-binds #-}
module Example4 where
import Control.Monad
import Data.Function
import Data.List
import HaskellWorks.Data.Json.PartialValue
import HaskellWorks.Data.Json.Standard.Cursor.Load.Cursor
import HaskellWorks.Data.Json.Standard.Load.Partial
import HaskellWorks.Data.MQuery
import HaskellWorks.Data.MQuery.Micro
import qualified Data.DList as DL
example :: IO ()
example :: IO ()
example = do
!JsonPartialValue
cursor <- String -> IO JsonPartialValue
loadPartial String
"corpus/bench/78mb.json"
!GenericCursor
ByteString (Vector Word64) (SimpleBalancedParens (Vector Word64))
cursor <- String
-> IO
(GenericCursor
ByteString (Vector Word64) (SimpleBalancedParens (Vector Word64)))
loadCursorWithIndex String
"corpus/bench/78mb.json"
!Cursor
cursor <- String -> IO Cursor
loadCursor String
"corpus/bench/78mb.json"
!GenericCursor
ByteString CsPoppy1 (SimpleBalancedParens (Vector Word64))
cursor <- String
-> IO
(GenericCursor
ByteString CsPoppy1 (SimpleBalancedParens (Vector Word64)))
loadCursorWithCsPoppyIndex String
"corpus/bench/78mb.json"
let !json :: JsonPartialValue
json = GenericCursor
ByteString CsPoppy1 (SimpleBalancedParens (Vector Word64))
-> JsonPartialValue
forall a. JsonPartialValueAt a => a -> JsonPartialValue
jsonPartialJsonValueAt GenericCursor
ByteString CsPoppy1 (SimpleBalancedParens (Vector Word64))
cursor
let q :: MQuery JsonPartialValue
q = DList JsonPartialValue -> MQuery JsonPartialValue
forall a. DList a -> MQuery a
MQuery (JsonPartialValue -> DList JsonPartialValue
forall a. a -> DList a
DL.singleton JsonPartialValue
json)
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> Int -> MQuery a -> MQuery a
page Int
10 Int
1
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Text
-> JsonPartialValue -> JsonPartialValue -> MQuery JsonPartialValue
hasKV Text
"founded_year" (Double -> JsonPartialValue
JsonPartialNumber Double
2005) MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery (Entry Text JsonPartialValue) -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery (Entry Text JsonPartialValue) -> IO ())
-> MQuery (Entry Text JsonPartialValue) -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> MQuery (Entry Text JsonPartialValue)
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> MQuery (Entry Text JsonPartialValue)
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry MQuery (Entry Text JsonPartialValue)
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"name" MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> Entry Text JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code")
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> Entry Text JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code") MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& ([JsonPartialValue] -> [JsonPartialValue])
-> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. ([a] -> [a]) -> MQuery a -> MQuery a
onList ([JsonPartialValue] -> [JsonPartialValue]
forall a. Eq a => [a] -> [a]
uniq ([JsonPartialValue] -> [JsonPartialValue])
-> ([JsonPartialValue] -> [JsonPartialValue])
-> [JsonPartialValue]
-> [JsonPartialValue]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [JsonPartialValue] -> [JsonPartialValue]
forall a. Ord a => [a] -> [a]
sort)
MQuery String -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery String -> IO ()) -> MQuery String -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery String) -> MQuery String
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") MQuery String -> (MQuery String -> MQuery String) -> MQuery String
forall a b. a -> (a -> b) -> b
& Int -> MQuery String -> MQuery String
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> Entry Text JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (JsonPartialValue -> MQuery String)
-> JsonPartialValue -> MQuery JsonPartialValue
forall a b. (a -> MQuery b) -> a -> MQuery a
having (JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_amount") MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery Integer -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery Integer -> IO ()) -> MQuery Integer -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery Integer) -> MQuery Integer
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (JsonPartialValue -> MQuery String)
-> JsonPartialValue -> MQuery JsonPartialValue
forall a b. (a -> MQuery b) -> a -> MQuery a
having (JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_amount" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery Integer
castAsInteger ) MQuery Integer
-> (MQuery Integer -> MQuery Integer) -> MQuery Integer
forall a b. a -> (a -> b) -> b
& Int -> MQuery Integer -> MQuery Integer
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery Integer -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery Integer -> IO ()) -> MQuery Integer -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery Integer) -> MQuery Integer
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (JsonPartialValue -> MQuery String)
-> JsonPartialValue -> MQuery JsonPartialValue
forall a b. (a -> MQuery b) -> a -> MQuery a
having (JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_amount" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery Integer
castAsInteger ) MQuery Integer
-> (MQuery Integer -> MQuery Integer) -> MQuery Integer
forall a b. a -> (a -> b) -> b
& ([Integer] -> Integer) -> MQuery Integer -> MQuery Integer
forall a b. ([a] -> b) -> MQuery a -> MQuery b
aggregate [Integer] -> Integer
forall a. Num a => [a] -> a
forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a
sum
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> Int -> MQuery a -> MQuery a
page Int
10 Int
1
MQuery (Entry Text JsonPartialValue) -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery (Entry Text JsonPartialValue) -> IO ())
-> MQuery (Entry Text JsonPartialValue) -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> MQuery (Entry Text JsonPartialValue)
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery JsonPartialValue
item MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> MQuery (Entry Text JsonPartialValue)
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry MQuery (Entry Text JsonPartialValue)
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"name" MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery String -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery String -> IO ()) -> MQuery String -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery String) -> MQuery String
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString)
MQuery String -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery String -> IO ()) -> MQuery String -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery String) -> MQuery String
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString) MQuery String -> (MQuery String -> MQuery String) -> MQuery String
forall a b. a -> (a -> b) -> b
& ([String] -> [String]) -> MQuery String -> MQuery String
forall a. ([a] -> [a]) -> MQuery a -> MQuery a
onList ([String] -> [String]
forall a. Eq a => [a] -> [a]
uniq ([String] -> [String])
-> ([String] -> [String]) -> [String] -> [String]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [String] -> [String]
forall a. Ord a => [a] -> [a]
sort)
MQuery String -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery String -> IO ()) -> MQuery String -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery String) -> MQuery String
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") MQuery String -> (MQuery String -> MQuery String) -> MQuery String
forall a b. a -> (a -> b) -> b
& Int -> MQuery String -> MQuery String
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery JsonPartialValue -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery JsonPartialValue -> IO ())
-> MQuery JsonPartialValue -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> Entry Text JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (JsonPartialValue -> MQuery String)
-> JsonPartialValue -> MQuery JsonPartialValue
forall a b. (a -> MQuery b) -> a -> MQuery a
having (JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> JsonPartialValue
-> MQuery JsonPartialValue
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_amount") MQuery JsonPartialValue
-> (MQuery JsonPartialValue -> MQuery JsonPartialValue)
-> MQuery JsonPartialValue
forall a b. a -> (a -> b) -> b
& Int -> MQuery JsonPartialValue -> MQuery JsonPartialValue
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery Integer -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery Integer -> IO ()) -> MQuery Integer -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery Integer) -> MQuery Integer
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (JsonPartialValue -> MQuery String)
-> JsonPartialValue -> MQuery JsonPartialValue
forall a b. (a -> MQuery b) -> a -> MQuery a
having (JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_amount" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery Integer
castAsInteger ) MQuery Integer
-> (MQuery Integer -> MQuery Integer) -> MQuery Integer
forall a b. a -> (a -> b) -> b
& Int -> MQuery Integer -> MQuery Integer
forall a. Int -> MQuery a -> MQuery a
limit Int
10
MQuery Integer -> IO ()
forall a. Pretty a => a -> IO ()
putPretty (MQuery Integer -> IO ()) -> MQuery Integer -> IO ()
forall a b. (a -> b) -> a -> b
$ MQuery JsonPartialValue
q MQuery JsonPartialValue
-> (JsonPartialValue -> MQuery Integer) -> MQuery Integer
forall a b. MQuery a -> (a -> MQuery b) -> MQuery b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (JsonPartialValue -> MQuery JsonPartialValue
item (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"acquisition" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (JsonPartialValue -> MQuery String)
-> JsonPartialValue -> MQuery JsonPartialValue
forall a b. (a -> MQuery b) -> a -> MQuery a
having (JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery String)
-> JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_currency_code" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery String)
-> Entry Text JsonPartialValue
-> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery String
asString (JsonPartialValue -> MQuery String)
-> (String -> MQuery String) -> JsonPartialValue -> MQuery String
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> String -> String -> MQuery String
forall a. Eq a => a -> a -> MQuery a
valueOf String
"USD") (JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery (Entry Text JsonPartialValue)
entry (JsonPartialValue -> MQuery (Entry Text JsonPartialValue))
-> (Entry Text JsonPartialValue -> MQuery Integer)
-> JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Entry Text JsonPartialValue -> MQuery JsonPartialValue
named Text
"price_amount" (Entry Text JsonPartialValue -> MQuery JsonPartialValue)
-> (JsonPartialValue -> MQuery Integer)
-> Entry Text JsonPartialValue
-> MQuery Integer
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> JsonPartialValue -> MQuery Integer
castAsInteger ) MQuery Integer
-> (MQuery Integer -> MQuery Integer) -> MQuery Integer
forall a b. a -> (a -> b) -> b
& ([Integer] -> Integer) -> MQuery Integer -> MQuery Integer
forall a b. ([a] -> b) -> MQuery a -> MQuery b
aggregate [Integer] -> Integer
forall a. Num a => [a] -> a
forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a
sum
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()