packages feed

rethinkdb 0.1.0.0 → 1.8.0.0

raw patch · 74 files changed

+3400/−5025 lines, 74 filesdep +protocol-buffers-descriptordep +timedep +utf8-stringdep ~aesondep ~attoparsecdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: protocol-buffers-descriptor, time, utf8-string, vector

Dependency ranges changed: aeson, attoparsec, base, bytestring, containers, data-default, ghc-prim, mtl, network, protocol-buffers, text, unordered-containers

API changes (from Hackage documentation)

- Database.RethinkDB: (!?) :: HasValueType a ObjectType => a -> String -> BoolExpr
- Database.RethinkDB: ArrayType :: ValueTypeKind
- Database.RethinkDB: BoolType :: ValueTypeKind
- Database.RethinkDB: Document :: Table -> Value -> Document
- Database.RethinkDB: Expr :: QueryM (MaybeView (ExprIsView (Expr t)), Term) -> Expr t
- Database.RethinkDB: Mapping :: (QueryM Mapping) -> Mapping
- Database.RethinkDB: NoneType :: ValueTypeKind
- Database.RethinkDB: NumberType :: ValueTypeKind
- Database.RethinkDB: ObjectType :: ValueTypeKind
- Database.RethinkDB: OtherValueType :: ValueTypeKind
- Database.RethinkDB: SpotExpr :: Document -> Expr (StreamType True ObjectType)
- Database.RethinkDB: StreamType :: Bool -> ValueTypeKind -> ExprTypeKind
- Database.RethinkDB: StringType :: ValueTypeKind
- Database.RethinkDB: ValueType :: ValueTypeKind -> ExprTypeKind
- Database.RethinkDB: _tablePrimaryAttr :: Table -> Maybe String
- Database.RethinkDB: add :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB: and' :: HaveValueType a b BoolType => a -> b -> BoolExpr
- Database.RethinkDB: arrayToStream :: (ToExpr e, ExprType e ~ ValueType ArrayType) => e -> Expr (StreamType False t)
- Database.RethinkDB: bind :: ToValue e => e -> (ValueExpr (ToValueType (ExprType e)) -> Expr t) -> Expr t
- Database.RethinkDB: class CanCompare (a :: ValueTypeKind)
- Database.RethinkDB: class Sequence (e :: ExprTypeKind) where type family SequenceType e (t :: ValueTypeKind) :: Constraint
- Database.RethinkDB: class ToExpr (o :: *) where type family ExprType o :: ExprTypeKind
- Database.RethinkDB: class ToMapping map where type family MappingFrom map :: ValueTypeKind type family MappingTo map :: ValueTypeKind
- Database.RethinkDB: class ToOrder a
- Database.RethinkDB: class ToBuildQuery a => ToQuery a b | a -> b
- Database.RethinkDB: class ToValue e
- Database.RethinkDB: closeConnection :: RethinkDBHandle -> IO ()
- Database.RethinkDB: concat :: (HaveValueType a b v, CanConcat v) => a -> b -> Expr (ValueType v)
- Database.RethinkDB: concatMap' :: (ToMapping m, (MappingTo m) ~ ArrayType, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (StreamType False t)
- Database.RethinkDB: count :: (ToExpr e, Sequence (ExprType e)) => e -> NumberExpr
- Database.RethinkDB: count' :: MapReduce ObjectType NoneType NumberType NumberType
- Database.RethinkDB: data Document
- Database.RethinkDB: data Expr (t :: ExprTypeKind)
- Database.RethinkDB: data ExprTypeKind
- Database.RethinkDB: data Mapping (from :: ValueTypeKind) (to :: ValueTypeKind)
- Database.RethinkDB: data Obj
- Database.RethinkDB: data Query (b :: Bool) a
- Database.RethinkDB: data Results a
- Database.RethinkDB: data ValueTypeKind
- Database.RethinkDB: div' :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB: documentKey :: Document -> Value
- Database.RethinkDB: documentTable :: Document -> Table
- Database.RethinkDB: eq :: (HasValueType a x, HasValueType b y) => a -> b -> BoolExpr
- Database.RethinkDB: error' :: ExprTypeIsView t ~ False => String -> Expr t
- Database.RethinkDB: filter' :: (ToMapping m, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (ExprType e)
- Database.RethinkDB: ge :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB: groupBy' :: (ToStream e, ObjectType HasToStreamValueOf e) => [String] -> MapReduce ObjectType b c d -> e -> Expr (StreamType False d)
- Database.RethinkDB: groupedMapReduce :: (ToValue group, ToValue value, ToValue acc, ToValueType (ExprType acc) ~ b, ToValue acc', ToValueType (ExprType acc') ~ b, ToStream e, a HasToStreamValueOf e) => (ValueExpr a -> group) -> (ValueExpr a -> value) -> acc -> (ValueExpr b -> ValueExpr v -> acc') -> e -> Expr (StreamType False b)
- Database.RethinkDB: gt :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB: insertMany :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> [a] -> WriteQuery [Document]
- Database.RethinkDB: jsfun :: ToValue e => String -> e -> Expr (ValueType y)
- Database.RethinkDB: le :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB: let' :: [Attribute] -> Expr t -> Expr t
- Database.RethinkDB: limit :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
- Database.RethinkDB: lt :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB: map' :: (ToMapping m, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (StreamType False (MappingTo m))
- Database.RethinkDB: mul :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB: ne :: (HasValueType a x, HasValueType b y) => a -> b -> BoolExpr
- Database.RethinkDB: nil :: ValueExpr ArrayType
- Database.RethinkDB: not' :: HasValueType a BoolType => a -> BoolExpr
- Database.RethinkDB: nth :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> ValueExpr t
- Database.RethinkDB: openConnection :: HostName -> Maybe PortID -> Maybe String -> IO RethinkDBHandle
- Database.RethinkDB: or' :: HaveValueType a b BoolType => a -> b -> BoolExpr
- Database.RethinkDB: pick :: HasValueType e ObjectType => [String] -> e -> ObjectExpr
- Database.RethinkDB: resultsError :: Results a -> IO (Maybe String)
- Database.RethinkDB: runBatch :: ToQuery q [a] => RethinkDBHandle -> q -> IO (Results a)
- Database.RethinkDB: runEither :: ToQuery a v => RethinkDBHandle -> a -> IO (Either String v)
- Database.RethinkDB: runJSON :: (JSONQuery (BuildViewQuery q), ToBuildQuery q) => RethinkDBHandle -> q -> IO [Value]
- Database.RethinkDB: runMaybe :: ToQuery a v => RethinkDBHandle -> a -> IO (Maybe v)
- Database.RethinkDB: runRaw :: (ToBuildQuery q, JSONQuery (BuildViewQuery q)) => RethinkDBHandle -> q -> IO Response
- Database.RethinkDB: skip :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
- Database.RethinkDB: streamToArray :: (ToExpr e, ExprType e ~ StreamType w t) => e -> Expr (ValueType ArrayType)
- Database.RethinkDB: sub :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB: sum' :: String -> MapReduce ObjectType NumberType NumberType NumberType
- Database.RethinkDB: tablePrimaryAttr :: Table -> String
- Database.RethinkDB: toExpr :: ToExpr o => o -> Expr (ExprType o)
- Database.RethinkDB: toMapping :: ToMapping map => map -> Mapping (MappingFrom map) (MappingTo map)
- Database.RethinkDB: toOrder :: ToOrder a => a -> Order
- Database.RethinkDB: toQuery :: ToQuery a b => a -> Query (BuildViewQuery a) b
- Database.RethinkDB: toValue :: ToValue e => e -> Expr (ValueType (ToValueType (ExprType e)))
- Database.RethinkDB: type ArrayExpr = Expr (ValueType ArrayType)
- Database.RethinkDB: type ArrayStream = Expr (StreamType False ArrayType)
- Database.RethinkDB: type BoolExpr = Expr (ValueType BoolType)
- Database.RethinkDB: type BoolStream = Expr (StreamType False BoolType)
- Database.RethinkDB: type ExprIsView e = ExprTypeIsView (ExprType e)
- Database.RethinkDB: type HasValueType a v = (ToValue a, ToValueType (ExprType a) ~ v)
- Database.RethinkDB: type HaveValueType a b v = (HasValueType a v, HasValueType b v)
- Database.RethinkDB: type NumberExpr = Expr (ValueType NumberType)
- Database.RethinkDB: type NumberStream = Expr (StreamType False NumberType)
- Database.RethinkDB: type ObjectExpr = Expr (ValueType ObjectType)
- Database.RethinkDB: type ObjectStream = Expr (StreamType False ObjectType)
- Database.RethinkDB: type Selection = Expr (StreamType True ObjectType)
- Database.RethinkDB: type StringExpr = Expr (ValueType StringType)
- Database.RethinkDB: type StringStream = Expr (StreamType False StringType)
- Database.RethinkDB: type ValueExpr t = Expr (ValueType t)
- Database.RethinkDB: union' :: (ToStream a, t HasToStreamValueOf a, ToStream b, t HasToStreamValueOf b) => a -> b -> Expr (StreamType False t)
- Database.RethinkDB: unpick :: HasValueType e ObjectType => [String] -> e -> ObjectExpr
- Database.RethinkDB: upsertMany :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> [a] -> WriteQuery [Document]
- Database.RethinkDB: var :: ExprIsView (Expr t) ~ False => String -> Expr t
- Database.RethinkDB: zip' :: (ToStream e, ObjectType HasToStreamValueOf e) => e -> Expr (StreamType False ObjectType)
- Database.RethinkDB.Driver: (.?) :: FromJSON a => Value -> String -> Maybe a
- Database.RethinkDB.Driver: (:=) :: String -> e -> Attribute
- Database.RethinkDB.Driver: Database :: String -> Database
- Database.RethinkDB.Driver: Document :: Table -> Value -> Document
- Database.RethinkDB.Driver: ErrorBadQuery :: ErrorCode
- Database.RethinkDB.Driver: ErrorBrokenClient :: ErrorCode
- Database.RethinkDB.Driver: ErrorNetwork :: ErrorCode
- Database.RethinkDB.Driver: ErrorResponse :: ErrorCode -> String -> [String] -> Response
- Database.RethinkDB.Driver: ErrorRuntime :: ErrorCode
- Database.RethinkDB.Driver: Expr :: QueryM (MaybeView (ExprIsView (Expr t)), Term) -> Expr t
- Database.RethinkDB.Driver: Mapping :: (QueryM Mapping) -> Mapping
- Database.RethinkDB.Driver: NoView :: MaybeView False
- Database.RethinkDB.Driver: Obj :: [Attribute] -> Obj
- Database.RethinkDB.Driver: Proxy :: Proxy t
- Database.RethinkDB.Driver: Query :: QueryM Query -> ([Value] -> Either String a) -> Query False a
- Database.RethinkDB.Driver: QuerySettings :: Int64 -> Database -> [String] -> Bool -> QuerySettings
- Database.RethinkDB.Driver: QueryViewPair :: Query w a -> MaybeView w -> QueryViewPair a
- Database.RethinkDB.Driver: Results :: IORef (Maybe (RethinkDBHandle, Int64)) -> IORef (Seq a) -> IORef (Maybe String) -> QueryViewPair [a] -> Results a
- Database.RethinkDB.Driver: RethinkDBHandle :: Handle -> IORef Int64 -> Database -> RethinkDBHandle
- Database.RethinkDB.Driver: SpotExpr :: Document -> Expr (StreamType True ObjectType)
- Database.RethinkDB.Driver: SuccessEmpty :: SuccessCode
- Database.RethinkDB.Driver: SuccessJson :: SuccessCode
- Database.RethinkDB.Driver: SuccessPartial :: SuccessCode
- Database.RethinkDB.Driver: SuccessResponse :: SuccessCode -> [ByteString] -> Response
- Database.RethinkDB.Driver: SuccessStream :: SuccessCode
- Database.RethinkDB.Driver: Table :: Maybe Database -> String -> Maybe String -> Table
- Database.RethinkDB.Driver: TableCreateOptions :: Maybe String -> Maybe Int64 -> TableCreateOptions
- Database.RethinkDB.Driver: ViewOf :: Table -> MaybeView True
- Database.RethinkDB.Driver: ViewQuery :: QueryM (Table, Query) -> ([(Document, Value)] -> Either String a) -> Query True a
- Database.RethinkDB.Driver: WriteQuery :: QueryM WriteQuery -> ([Value] -> Either String a) -> WriteQuery a
- Database.RethinkDB.Driver: _queryBuild :: Query False a -> QueryM Query
- Database.RethinkDB.Driver: _queryDB :: QuerySettings -> Database
- Database.RethinkDB.Driver: _queryExtract :: Query False a -> [Value] -> Either String a
- Database.RethinkDB.Driver: _queryToken :: QuerySettings -> Int64
- Database.RethinkDB.Driver: _queryUseOutdated :: QuerySettings -> Bool
- Database.RethinkDB.Driver: _queryVars :: QuerySettings -> [String]
- Database.RethinkDB.Driver: _resultsError :: Results a -> IORef (Maybe String)
- Database.RethinkDB.Driver: _tablePrimaryAttr :: Table -> Maybe String
- Database.RethinkDB.Driver: _viewQueryBuild :: Query True a -> QueryM (Table, Query)
- Database.RethinkDB.Driver: _viewQueryExtract :: Query True a -> [(Document, Value)] -> Either String a
- Database.RethinkDB.Driver: activeDB :: QueryM Database
- Database.RethinkDB.Driver: addDoc :: Table -> Value -> Either String (Document, Value)
- Database.RethinkDB.Driver: apply :: Builtin -> [QueryM Term] -> QueryM Term
- Database.RethinkDB.Driver: arrayToStream :: (ToExpr e, ExprType e ~ ValueType ArrayType) => e -> Expr (StreamType False t)
- Database.RethinkDB.Driver: buildQuery :: ToBuildQuery a => a -> ([If (BuildViewQuery a) (Document, Value) Value] -> Either String b) -> Query (BuildViewQuery a) b
- Database.RethinkDB.Driver: class CanCompare (a :: ValueTypeKind)
- Database.RethinkDB.Driver: class ExtractValue t v | t -> v
- Database.RethinkDB.Driver: class JSONQuery (b :: Bool)
- Database.RethinkDB.Driver: class Sequence (e :: ExprTypeKind) where type family SequenceType e (t :: ValueTypeKind) :: Constraint
- Database.RethinkDB.Driver: class ToBuildQuery a where type family BuildViewQuery a :: Bool
- Database.RethinkDB.Driver: class ToExpr (o :: *) where type family ExprType o :: ExprTypeKind
- Database.RethinkDB.Driver: class ToMapping map where type family MappingFrom map :: ValueTypeKind type family MappingTo map :: ValueTypeKind
- Database.RethinkDB.Driver: class ToBuildQuery a => ToQuery a b | a -> b
- Database.RethinkDB.Driver: class ToExpr e => ToStream e
- Database.RethinkDB.Driver: class ToValue e
- Database.RethinkDB.Driver: closeConnection :: RethinkDBHandle -> IO ()
- Database.RethinkDB.Driver: collect :: Results a -> IO [a]
- Database.RethinkDB.Driver: comparison :: ExprTypeIsView t ~ False => Comparison -> [QueryM Term] -> Expr t
- Database.RethinkDB.Driver: convert :: FromJSON a => Value -> Maybe a
- Database.RethinkDB.Driver: convertResponse :: Either String Response -> Response
- Database.RethinkDB.Driver: data Attribute
- Database.RethinkDB.Driver: data Database
- Database.RethinkDB.Driver: data Document
- Database.RethinkDB.Driver: data ErrorCode
- Database.RethinkDB.Driver: data Expr (t :: ExprTypeKind)
- Database.RethinkDB.Driver: data Mapping (from :: ValueTypeKind) (to :: ValueTypeKind)
- Database.RethinkDB.Driver: data MaybeView (w :: Bool)
- Database.RethinkDB.Driver: data Obj
- Database.RethinkDB.Driver: data Proxy t
- Database.RethinkDB.Driver: data Query (b :: Bool) a
- Database.RethinkDB.Driver: data QuerySettings
- Database.RethinkDB.Driver: data QueryViewPair a
- Database.RethinkDB.Driver: data Response
- Database.RethinkDB.Driver: data Results a
- Database.RethinkDB.Driver: data RethinkDBHandle
- Database.RethinkDB.Driver: data SuccessCode
- Database.RethinkDB.Driver: data Table
- Database.RethinkDB.Driver: data TableCreateOptions
- Database.RethinkDB.Driver: data WriteQuery a
- Database.RethinkDB.Driver: databaseName :: Database -> String
- Database.RethinkDB.Driver: db :: String -> Database
- Database.RethinkDB.Driver: dbCreate :: String -> Query False Database
- Database.RethinkDB.Driver: dbDrop :: Database -> Query False ()
- Database.RethinkDB.Driver: dbList :: Query False [Database]
- Database.RethinkDB.Driver: decodeAny :: FromJSON a => ByteString -> Maybe a
- Database.RethinkDB.Driver: defaultPrimaryAttr :: Utf8
- Database.RethinkDB.Driver: delete :: (ToExpr sel, ExprIsView sel ~ True) => sel -> WriteQuery ()
- Database.RethinkDB.Driver: documentKey :: Document -> Value
- Database.RethinkDB.Driver: documentTable :: Document -> Table
- Database.RethinkDB.Driver: dumpExpr :: ToExpr e => e -> String
- Database.RethinkDB.Driver: dumpTermPart :: Data a => String -> a -> String
- Database.RethinkDB.Driver: errorBacktrace :: Response -> [String]
- Database.RethinkDB.Driver: errorCode :: Response -> ErrorCode
- Database.RethinkDB.Driver: errorMessage :: Response -> String
- Database.RethinkDB.Driver: expr :: ToExpr e => e -> QueryM Term
- Database.RethinkDB.Driver: exprToQLQuery :: Expr t -> QueryM (MaybeView (ExprTypeIsView t), Query)
- Database.RethinkDB.Driver: exprV :: ToExpr e => e -> QueryM (MaybeView (ExprIsView e), Term)
- Database.RethinkDB.Driver: exprViewQuery :: ExprTypeIsView t ~ True => ([Value] -> Either String [a]) -> Expr t -> Query True [(Document, a)]
- Database.RethinkDB.Driver: extractListOf :: ExtractValue t a => Proxy t -> [Value] -> Maybe [a]
- Database.RethinkDB.Driver: extractTerm :: ToExpr e => e -> Term
- Database.RethinkDB.Driver: extractValue :: ExtractValue t v => Proxy t -> Value -> Maybe v
- Database.RethinkDB.Driver: get :: (ToExpr e, ExprType e ~ StreamType True ObjectType, ToValue k) => e -> k -> ObjectExpr
- Database.RethinkDB.Driver: getNewToken :: RethinkDBHandle -> IO Int64
- Database.RethinkDB.Driver: getToken :: QueryM Int64
- Database.RethinkDB.Driver: initialVars :: [String]
- Database.RethinkDB.Driver: insert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> a -> WriteQuery Document
- Database.RethinkDB.Driver: insertMany :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> [a] -> WriteQuery [Document]
- Database.RethinkDB.Driver: insert_or_upsert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> [a] -> Bool -> WriteQuery [Document]
- Database.RethinkDB.Driver: instance (IsString a, FromJSON a) => ExtractValue ValueTypeKind 'StringType a
- Database.RethinkDB.Driver: instance (Num a, FromJSON a) => ExtractValue ValueTypeKind 'NumberType a
- Database.RethinkDB.Driver: instance (ToValue b, a ~ Expr ('ValueType t)) => ToMapping (a -> b)
- Database.RethinkDB.Driver: instance CanCompare 'NumberType
- Database.RethinkDB.Driver: instance CanCompare 'StringType
- Database.RethinkDB.Driver: instance Default QuerySettings
- Database.RethinkDB.Driver: instance Default TableCreateOptions
- Database.RethinkDB.Driver: instance Eq Database
- Database.RethinkDB.Driver: instance Eq Document
- Database.RethinkDB.Driver: instance Eq Table
- Database.RethinkDB.Driver: instance ExtractValue ValueTypeKind 'BoolType Bool
- Database.RethinkDB.Driver: instance ExtractValue ValueTypeKind 'NoneType ()
- Database.RethinkDB.Driver: instance ExtractValue ValueTypeKind v a => ToQuery (Expr ('StreamType 'False v)) [a]
- Database.RethinkDB.Driver: instance ExtractValue ValueTypeKind v a => ToQuery (Expr ('StreamType 'True v)) [(Document, a)]
- Database.RethinkDB.Driver: instance ExtractValue ValueTypeKind v a => ToQuery (Expr ('ValueType v)) a
- Database.RethinkDB.Driver: instance Fractional (Expr ('ValueType 'NumberType))
- Database.RethinkDB.Driver: instance FromJSON a => ExtractValue ValueTypeKind 'ArrayType a
- Database.RethinkDB.Driver: instance FromJSON a => ExtractValue ValueTypeKind 'ObjectType a
- Database.RethinkDB.Driver: instance FromJSON a => ExtractValue ValueTypeKind 'OtherValueType a
- Database.RethinkDB.Driver: instance FromJSON a => ToQuery Document a
- Database.RethinkDB.Driver: instance FromJSON a => ToQuery Table [(Document, a)]
- Database.RethinkDB.Driver: instance Functor (Query w)
- Database.RethinkDB.Driver: instance Functor WriteQuery
- Database.RethinkDB.Driver: instance JSONQuery 'False
- Database.RethinkDB.Driver: instance JSONQuery 'True
- Database.RethinkDB.Driver: instance Num (Expr ('ValueType 'NumberType))
- Database.RethinkDB.Driver: instance Ord Database
- Database.RethinkDB.Driver: instance Ord Table
- Database.RethinkDB.Driver: instance Sequence ('StreamType w t)
- Database.RethinkDB.Driver: instance Show Database
- Database.RethinkDB.Driver: instance Show Document
- Database.RethinkDB.Driver: instance Show ErrorCode
- Database.RethinkDB.Driver: instance Show Response
- Database.RethinkDB.Driver: instance Show SuccessCode
- Database.RethinkDB.Driver: instance Show Table
- Database.RethinkDB.Driver: instance ToBuildQuery (Expr ('StreamType 'False v))
- Database.RethinkDB.Driver: instance ToBuildQuery (Expr ('StreamType 'True v))
- Database.RethinkDB.Driver: instance ToBuildQuery (Expr ('ValueType v))
- Database.RethinkDB.Driver: instance ToBuildQuery (Query w a)
- Database.RethinkDB.Driver: instance ToBuildQuery (WriteQuery a)
- Database.RethinkDB.Driver: instance ToBuildQuery Document
- Database.RethinkDB.Driver: instance ToBuildQuery Table
- Database.RethinkDB.Driver: instance ToExpr ()
- Database.RethinkDB.Driver: instance ToExpr (Expr t)
- Database.RethinkDB.Driver: instance ToExpr Char
- Database.RethinkDB.Driver: instance ToExpr Document
- Database.RethinkDB.Driver: instance ToExpr Double
- Database.RethinkDB.Driver: instance ToExpr Int
- Database.RethinkDB.Driver: instance ToExpr Integer
- Database.RethinkDB.Driver: instance ToExpr Obj
- Database.RethinkDB.Driver: instance ToExpr Table
- Database.RethinkDB.Driver: instance ToExpr Text
- Database.RethinkDB.Driver: instance ToExpr a => ToExpr [a]
- Database.RethinkDB.Driver: instance ToExpr a => ToStream [a]
- Database.RethinkDB.Driver: instance ToExpr a => ToValue [a]
- Database.RethinkDB.Driver: instance ToMapping (Expr ('ValueType t))
- Database.RethinkDB.Driver: instance ToMapping Obj
- Database.RethinkDB.Driver: instance ToMapping Value
- Database.RethinkDB.Driver: instance ToQuery (Query w a) a
- Database.RethinkDB.Driver: instance ToQuery (WriteQuery a) a
- Database.RethinkDB.Driver: instance ToStream (Expr ('StreamType w t))
- Database.RethinkDB.Driver: instance ToStream (Expr ('ValueType 'ArrayType))
- Database.RethinkDB.Driver: instance ToStream Document
- Database.RethinkDB.Driver: instance ToStream Table
- Database.RethinkDB.Driver: instance ToValue ()
- Database.RethinkDB.Driver: instance ToValue (Expr ('StreamType w t))
- Database.RethinkDB.Driver: instance ToValue (Expr ('ValueType t))
- Database.RethinkDB.Driver: instance ToValue Document
- Database.RethinkDB.Driver: instance ToValue Double
- Database.RethinkDB.Driver: instance ToValue Int
- Database.RethinkDB.Driver: instance ToValue Integer
- Database.RethinkDB.Driver: instance ToValue Obj
- Database.RethinkDB.Driver: instance ToValue Table
- Database.RethinkDB.Driver: instance ToValue Text
- Database.RethinkDB.Driver: instance a ~ 'ArrayType => Sequence ('ValueType a)
- Database.RethinkDB.Driver: jsonQuery :: JSONQuery b => (forall a. ([If b (Document, Value) Value] -> Either String a) -> Query b a) -> Query b [Value]
- Database.RethinkDB.Driver: mapMSnd :: Monad m => (a -> m b) -> [(c, a)] -> m [(c, b)]
- Database.RethinkDB.Driver: mapping :: ToMapping m => m -> QueryM Mapping
- Database.RethinkDB.Driver: mappingToPredicate :: Mapping -> Predicate
- Database.RethinkDB.Driver: metaQuery :: QueryM MetaQuery -> QueryM Query
- Database.RethinkDB.Driver: mkExpr :: ExprIsView (Expr t) ~ False => QueryM Term -> Expr t
- Database.RethinkDB.Driver: mkView :: ExprIsView (Expr t) ~ True => Table -> QueryM Term -> Expr t
- Database.RethinkDB.Driver: newVar :: QueryM String
- Database.RethinkDB.Driver: next :: Results a -> IO (Maybe a)
- Database.RethinkDB.Driver: obj :: [Attribute] -> Obj
- Database.RethinkDB.Driver: op :: BuiltinType -> Builtin
- Database.RethinkDB.Driver: openConnection :: HostName -> Maybe PortID -> Maybe String -> IO RethinkDBHandle
- Database.RethinkDB.Driver: packUInt :: Int -> ByteString
- Database.RethinkDB.Driver: primaryAttr :: (ToExpr e, ExprTypeIsView (ExprType e) ~ True) => e -> String -> Expr (ExprType e)
- Database.RethinkDB.Driver: queryBuild :: Query w a -> QueryM (MaybeView w, Query)
- Database.RethinkDB.Driver: queryExtract :: Query w a -> MaybeView w -> [Value] -> Either String a
- Database.RethinkDB.Driver: queryExtractResponse :: Query w [a] -> MaybeView w -> Response -> RethinkDBHandle -> Int64 -> (Maybe (RethinkDBHandle, Int64), Seq a, Maybe String)
- Database.RethinkDB.Driver: rapply :: [QueryM Term] -> Builtin -> QueryM Term
- Database.RethinkDB.Driver: rdbDatabase :: RethinkDBHandle -> Database
- Database.RethinkDB.Driver: rdbHandle :: RethinkDBHandle -> Handle
- Database.RethinkDB.Driver: rdbToken :: RethinkDBHandle -> IORef Int64
- Database.RethinkDB.Driver: recvAll :: RethinkDBHandle -> Int -> IO ByteString
- Database.RethinkDB.Driver: replace :: (ToExpr sel, ExprIsView sel ~ True, ToJSON a) => sel -> a -> WriteQuery ()
- Database.RethinkDB.Driver: resultsError :: Results a -> IO (Maybe String)
- Database.RethinkDB.Driver: resultsHandle :: Results a -> IORef (Maybe (RethinkDBHandle, Int64))
- Database.RethinkDB.Driver: resultsQueryView :: Results a -> QueryViewPair [a]
- Database.RethinkDB.Driver: resultsSeq :: Results a -> IORef (Seq a)
- Database.RethinkDB.Driver: runBatch :: ToQuery q [a] => RethinkDBHandle -> q -> IO (Results a)
- Database.RethinkDB.Driver: runEither :: ToQuery a v => RethinkDBHandle -> a -> IO (Either String v)
- Database.RethinkDB.Driver: runJSON :: (JSONQuery (BuildViewQuery q), ToBuildQuery q) => RethinkDBHandle -> q -> IO [Value]
- Database.RethinkDB.Driver: runMaybe :: ToQuery a v => RethinkDBHandle -> a -> IO (Maybe v)
- Database.RethinkDB.Driver: runQLQuery :: RethinkDBHandle -> Query -> IO Response
- Database.RethinkDB.Driver: runQueryM :: QueryM a -> QuerySettings -> (a, QuerySettings)
- Database.RethinkDB.Driver: runRaw :: (ToBuildQuery q, JSONQuery (BuildViewQuery q)) => RethinkDBHandle -> q -> IO Response
- Database.RethinkDB.Driver: sendAll :: RethinkDBHandle -> ByteString -> IO ()
- Database.RethinkDB.Driver: setUseOutdated :: ToExpr e => Bool -> e -> Expr (ExprType e)
- Database.RethinkDB.Driver: showBacktrace :: [String] -> String
- Database.RethinkDB.Driver: simpleOp :: ExprIsView (Expr t) ~ False => BuiltinType -> [QueryM Term] -> Expr t
- Database.RethinkDB.Driver: str :: String -> Text
- Database.RethinkDB.Driver: stream :: ToStream a => a -> QueryM Term
- Database.RethinkDB.Driver: streamToArray :: (ToExpr e, ExprType e ~ StreamType w t) => e -> Expr (ValueType ArrayType)
- Database.RethinkDB.Driver: successCode :: Response -> SuccessCode
- Database.RethinkDB.Driver: successString :: Response -> [ByteString]
- Database.RethinkDB.Driver: table :: String -> Table
- Database.RethinkDB.Driver: tableCacheSize :: TableCreateOptions -> Maybe Int64
- Database.RethinkDB.Driver: tableCreate :: Table -> TableCreateOptions -> Query False Table
- Database.RethinkDB.Driver: tableDataCenter :: TableCreateOptions -> Maybe String
- Database.RethinkDB.Driver: tableDatabase :: Table -> Maybe Database
- Database.RethinkDB.Driver: tableDrop :: Table -> Query False ()
- Database.RethinkDB.Driver: tableList :: Database -> Query False [Table]
- Database.RethinkDB.Driver: tableName :: Table -> String
- Database.RethinkDB.Driver: tablePrimaryAttr :: Table -> String
- Database.RethinkDB.Driver: tableRef :: Table -> QueryM TableRef
- Database.RethinkDB.Driver: tableToTerm :: Table -> QueryM Term
- Database.RethinkDB.Driver: toExpr :: ToExpr o => o -> Expr (ExprType o)
- Database.RethinkDB.Driver: toJsonTerm :: ToJSON a => a -> Term
- Database.RethinkDB.Driver: toMapping :: ToMapping map => map -> Mapping (MappingFrom map) (MappingTo map)
- Database.RethinkDB.Driver: toQuery :: ToQuery a b => a -> Query (BuildViewQuery a) b
- Database.RethinkDB.Driver: toStream :: ToStream e => e -> Expr (StreamType (ExprIsView e) (FromMaybe a (ToStreamValue e)))
- Database.RethinkDB.Driver: toValue :: ToValue e => e -> Expr (ValueType (ToValueType (ExprType e)))
- Database.RethinkDB.Driver: type ArrayExpr = Expr (ValueType ArrayType)
- Database.RethinkDB.Driver: type ArrayStream = Expr (StreamType False ArrayType)
- Database.RethinkDB.Driver: type BoolExpr = Expr (ValueType BoolType)
- Database.RethinkDB.Driver: type BoolStream = Expr (StreamType False BoolType)
- Database.RethinkDB.Driver: type ExprIsView e = ExprTypeIsView (ExprType e)
- Database.RethinkDB.Driver: type HasToStreamValueOf a b = FromMaybe a (ToStreamValue b) ~ a
- Database.RethinkDB.Driver: type HasValueType a v = (ToValue a, ToValueType (ExprType a) ~ v)
- Database.RethinkDB.Driver: type HaveValueType a b v = (HasValueType a v, HasValueType b v)
- Database.RethinkDB.Driver: type NumberExpr = Expr (ValueType NumberType)
- Database.RethinkDB.Driver: type NumberStream = Expr (StreamType False NumberType)
- Database.RethinkDB.Driver: type ObjectExpr = Expr (ValueType ObjectType)
- Database.RethinkDB.Driver: type ObjectStream = Expr (StreamType False ObjectType)
- Database.RethinkDB.Driver: type QueryM = State QuerySettings
- Database.RethinkDB.Driver: type Selection = Expr (StreamType True ObjectType)
- Database.RethinkDB.Driver: type StringExpr = Expr (ValueType StringType)
- Database.RethinkDB.Driver: type StringStream = Expr (StreamType False StringType)
- Database.RethinkDB.Driver: type ToStreamValue e = ToStreamTypeValue (ExprType e)
- Database.RethinkDB.Driver: type ValueExpr t = Expr (ValueType t)
- Database.RethinkDB.Driver: uTableKey :: Table -> Utf8
- Database.RethinkDB.Driver: unpackUInt :: ByteString -> Int
- Database.RethinkDB.Driver: update :: (ToExpr sel, ExprType sel ~ StreamType True out, ToMapping map, MappingFrom map ~ out, MappingTo map ~ ObjectType) => sel -> map -> WriteQuery ()
- Database.RethinkDB.Driver: upsert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> a -> WriteQuery Document
- Database.RethinkDB.Driver: upsertMany :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> [a] -> WriteQuery [Document]
- Database.RethinkDB.Driver: use :: RethinkDBHandle -> Database -> RethinkDBHandle
- Database.RethinkDB.Driver: value :: ToValue a => a -> QueryM Term
- Database.RethinkDB.Driver: viewKeyAttr :: MaybeView b -> Utf8
- Database.RethinkDB.Driver: viewTable :: MaybeView True -> Table
- Database.RethinkDB.Driver: whenSuccess :: FromJSON a => String -> (a -> Either String b) -> [Value] -> Either String b
- Database.RethinkDB.Driver: whenSuccess_ :: b -> [Value] -> Either String b
- Database.RethinkDB.Driver: withView :: MaybeView b -> QueryM Term -> QueryM (MaybeView b, Term)
- Database.RethinkDB.Driver: writeQueryBuild :: WriteQuery a -> QueryM WriteQuery
- Database.RethinkDB.Driver: writeQueryExtract :: WriteQuery a -> [Value] -> Either String a
- Database.RethinkDB.Functions: (!?) :: HasValueType a ObjectType => a -> String -> BoolExpr
- Database.RethinkDB.Functions: MapReduce :: (ValueExpr a -> ValueExpr b) -> (ValueExpr c) -> (ValueExpr c -> ValueExpr b -> ValueExpr c) -> (ValueExpr c -> ValueExpr d) -> MapReduce a b c d
- Database.RethinkDB.Functions: add :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB.Functions: and :: HaveValueType a b BoolType => a -> b -> BoolExpr
- Database.RethinkDB.Functions: and' :: HaveValueType a b BoolType => a -> b -> BoolExpr
- Database.RethinkDB.Functions: bind :: ToValue e => e -> (ValueExpr (ToValueType (ExprType e)) -> Expr t) -> Expr t
- Database.RethinkDB.Functions: class CanConcat (a :: ValueTypeKind)
- Database.RethinkDB.Functions: class ToOrder a
- Database.RethinkDB.Functions: concat :: (HaveValueType a b v, CanConcat v) => a -> b -> Expr (ValueType v)
- Database.RethinkDB.Functions: concatMap' :: (ToMapping m, (MappingTo m) ~ ArrayType, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (StreamType False t)
- Database.RethinkDB.Functions: count :: (ToExpr e, Sequence (ExprType e)) => e -> NumberExpr
- Database.RethinkDB.Functions: count' :: MapReduce ObjectType NoneType NumberType NumberType
- Database.RethinkDB.Functions: data MapReduce a b c d
- Database.RethinkDB.Functions: div' :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB.Functions: drop' :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
- Database.RethinkDB.Functions: eq :: (HasValueType a x, HasValueType b y) => a -> b -> BoolExpr
- Database.RethinkDB.Functions: error' :: ExprTypeIsView t ~ False => String -> Expr t
- Database.RethinkDB.Functions: filter' :: (ToMapping m, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (ExprType e)
- Database.RethinkDB.Functions: fold :: (ToValue z, ToValueType (ExprType z) ~ a, ToStream e, b HasToStreamValueOf e, ToExpr c, ExprIsView c ~ False) => (ValueExpr a -> ValueExpr b -> c) -> z -> e -> Expr (ExprType c)
- Database.RethinkDB.Functions: ge :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB.Functions: groupBy' :: (ToStream e, ObjectType HasToStreamValueOf e) => [String] -> MapReduce ObjectType b c d -> e -> Expr (StreamType False d)
- Database.RethinkDB.Functions: groupedMapReduce :: (ToValue group, ToValue value, ToValue acc, ToValueType (ExprType acc) ~ b, ToValue acc', ToValueType (ExprType acc') ~ b, ToStream e, a HasToStreamValueOf e) => (ValueExpr a -> group) -> (ValueExpr a -> value) -> acc -> (ValueExpr b -> ValueExpr v -> acc') -> e -> Expr (StreamType False b)
- Database.RethinkDB.Functions: gt :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB.Functions: instance CanConcat 'ArrayType
- Database.RethinkDB.Functions: instance CanConcat 'StringType
- Database.RethinkDB.Functions: instance ToOrder Order
- Database.RethinkDB.Functions: instance ToOrder String
- Database.RethinkDB.Functions: jsfun :: ToValue e => String -> e -> Expr (ValueType y)
- Database.RethinkDB.Functions: le :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB.Functions: let' :: [Attribute] -> Expr t -> Expr t
- Database.RethinkDB.Functions: limit :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
- Database.RethinkDB.Functions: lt :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
- Database.RethinkDB.Functions: map' :: (ToMapping m, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (StreamType False (MappingTo m))
- Database.RethinkDB.Functions: mod' :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB.Functions: mul :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB.Functions: ne :: (HasValueType a x, HasValueType b y) => a -> b -> BoolExpr
- Database.RethinkDB.Functions: nil :: ValueExpr ArrayType
- Database.RethinkDB.Functions: not' :: HasValueType a BoolType => a -> BoolExpr
- Database.RethinkDB.Functions: nth :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> ValueExpr t
- Database.RethinkDB.Functions: or :: HaveValueType a b BoolType => a -> b -> BoolExpr
- Database.RethinkDB.Functions: or' :: HaveValueType a b BoolType => a -> b -> BoolExpr
- Database.RethinkDB.Functions: orderAscending :: Order -> Bool
- Database.RethinkDB.Functions: pick :: HasValueType e ObjectType => [String] -> e -> ObjectExpr
- Database.RethinkDB.Functions: signum :: (ToValue e, ToValueType (ExprType e) ~ NumberType) => e -> NumberExpr
- Database.RethinkDB.Functions: signum' :: (ToValue e, ToValueType (ExprType e) ~ NumberType) => e -> NumberExpr
- Database.RethinkDB.Functions: skip :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
- Database.RethinkDB.Functions: sub :: HaveValueType a b NumberType => a -> b -> NumberExpr
- Database.RethinkDB.Functions: sum' :: String -> MapReduce ObjectType NumberType NumberType NumberType
- Database.RethinkDB.Functions: take' :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
- Database.RethinkDB.Functions: toOrder :: ToOrder a => a -> Order
- Database.RethinkDB.Functions: union :: (ToStream a, t HasToStreamValueOf a, ToStream b, t HasToStreamValueOf b) => a -> b -> Expr (StreamType False t)
- Database.RethinkDB.Functions: union' :: (ToStream a, t HasToStreamValueOf a, ToStream b, t HasToStreamValueOf b) => a -> b -> Expr (StreamType False t)
- Database.RethinkDB.Functions: unpick :: HasValueType e ObjectType => [String] -> e -> ObjectExpr
- Database.RethinkDB.Functions: var :: ExprIsView (Expr t) ~ False => String -> Expr t
- Database.RethinkDB.Functions: zip :: (ToStream e, ObjectType HasToStreamValueOf e) => e -> Expr (StreamType False ObjectType)
- Database.RethinkDB.Functions: zip' :: (ToStream e, ObjectType HasToStreamValueOf e) => e -> Expr (StreamType False ObjectType)
- Database.RethinkDB.Types: ArrayType :: ValueTypeKind
- Database.RethinkDB.Types: BoolType :: ValueTypeKind
- Database.RethinkDB.Types: NoneType :: ValueTypeKind
- Database.RethinkDB.Types: NumberType :: ValueTypeKind
- Database.RethinkDB.Types: ObjectType :: ValueTypeKind
- Database.RethinkDB.Types: OtherValueType :: ValueTypeKind
- Database.RethinkDB.Types: StreamType :: Bool -> ValueTypeKind -> ExprTypeKind
- Database.RethinkDB.Types: StringType :: ValueTypeKind
- Database.RethinkDB.Types: ValueType :: ValueTypeKind -> ExprTypeKind
- Database.RethinkDB.Types: data ExprTypeKind
- Database.RethinkDB.Types: data ValueTypeKind
+ Database.RethinkDB: (!!) :: Expr a => a -> ReQL -> ReQL
+ Database.RethinkDB: (!=) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (#) :: (Expr a, Expr b, Expr c) => (ReQL -> a) -> (ReQL -> b) -> c -> ReQL
+ Database.RethinkDB: (&&) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (*) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (+) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (++) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (-) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (.) :: (Expr a, Expr b, Expr c) => (ReQL -> b) -> (ReQL -> a) -> c -> ReQL
+ Database.RethinkDB: (/) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (<) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (<=) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (==) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (=~) :: (Expr string, Expr regex) => string -> regex -> ReQL
+ Database.RethinkDB: (>) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (>=) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (\\) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: (||) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: ErrorBadQuery :: ErrorCode
+ Database.RethinkDB: ErrorBrokenClient :: ErrorCode
+ Database.RethinkDB: ErrorRuntime :: ErrorCode
+ Database.RethinkDB: ErrorUnexpectedResponse :: ErrorCode
+ Database.RethinkDB: RethinkDBError :: ErrorCode -> BaseReQL -> String -> Backtrace -> RethinkDBError
+ Database.RethinkDB: Success :: SuccessCode
+ Database.RethinkDB: SuccessPartial :: RethinkDBHandle -> Int64 -> SuccessCode
+ Database.RethinkDB: apply :: (Expr fun, Expr arg) => fun -> [arg] -> ReQL
+ Database.RethinkDB: asBool :: Expr x => x -> ReQL
+ Database.RethinkDB: asNumber :: Expr x => x -> ReQL
+ Database.RethinkDB: asObject :: Expr x => x -> ReQL
+ Database.RethinkDB: asString :: Expr x => x -> ReQL
+ Database.RethinkDB: changeAt :: (Expr n, Expr datum, Expr array) => n -> datum -> array -> ReQL
+ Database.RethinkDB: class Expr e
+ Database.RethinkDB: class Javascript r
+ Database.RethinkDB: class Obj o
+ Database.RethinkDB: class Result r
+ Database.RethinkDB: close :: RethinkDBHandle -> IO ()
+ Database.RethinkDB: coerceTo :: Expr x => ReQL -> x -> ReQL
+ Database.RethinkDB: concatMap :: (Expr a, Expr b) => (ReQL -> b) -> a -> ReQL
+ Database.RethinkDB: connect :: HostName -> Integer -> Maybe String -> IO RethinkDBHandle
+ Database.RethinkDB: convertResult :: Result r => MVar Response -> IO r
+ Database.RethinkDB: data Cursor a
+ Database.RethinkDB: data ErrorCode
+ Database.RethinkDB: data Object
+ Database.RethinkDB: data Response
+ Database.RethinkDB: data RethinkDBError
+ Database.RethinkDB: data SuccessCode
+ Database.RethinkDB: data UTCTime
+ Database.RethinkDB: data ZonedTime
+ Database.RethinkDB: date :: Expr time => time -> ReQL
+ Database.RethinkDB: day :: Expr time => time -> ReQL
+ Database.RethinkDB: dayOfWeek :: Expr time => time -> ReQL
+ Database.RethinkDB: dayOfYear :: Expr time => time -> ReQL
+ Database.RethinkDB: def :: Default a => a
+ Database.RethinkDB: deleteAt :: (Expr n, Expr array) => n -> array -> ReQL
+ Database.RethinkDB: drop :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: during :: (Expr left, Expr right, Expr time) => Bound left -> Bound right -> time -> ReQL
+ Database.RethinkDB: epochTime :: ReQL -> ReQL
+ Database.RethinkDB: error :: Expr s => s -> ReQL
+ Database.RethinkDB: errorBacktrace :: RethinkDBError -> Backtrace
+ Database.RethinkDB: errorCode :: RethinkDBError -> ErrorCode
+ Database.RethinkDB: errorMessage :: RethinkDBError -> String
+ Database.RethinkDB: errorTerm :: RethinkDBError -> BaseReQL
+ Database.RethinkDB: expr :: Expr e => e -> ReQL
+ Database.RethinkDB: filter :: (Expr predicate, Expr seq) => predicate -> seq -> ReQL
+ Database.RethinkDB: getAll :: Expr value => Key -> [value] -> Table -> ReQL
+ Database.RethinkDB: groupBy :: (Expr group, Expr reduction, Expr seq) => (ReQL -> group) -> (ReQL -> reduction) -> seq -> ReQL
+ Database.RethinkDB: handle :: (Expr handler, Expr reql) => handler -> reql -> ReQL
+ Database.RethinkDB: hasFields :: (Expr obj, Expr paths) => paths -> obj -> ReQL
+ Database.RethinkDB: hours :: Expr time => time -> ReQL
+ Database.RethinkDB: inTimezone :: Expr time => ReQL -> time -> ReQL
+ Database.RethinkDB: indexCreate :: Expr fun => String -> fun -> Table -> ReQL
+ Database.RethinkDB: indexDrop :: Key -> Table -> ReQL
+ Database.RethinkDB: indexList :: Table -> ReQL
+ Database.RethinkDB: indexesOf :: (Expr fun, Expr seq) => fun -> seq -> ReQL
+ Database.RethinkDB: info :: Expr a => a -> ReQL
+ Database.RethinkDB: insertAt :: (Expr n, Expr datum, Expr array) => n -> datum -> array -> ReQL
+ Database.RethinkDB: isEmpty :: Expr seq => seq -> ReQL
+ Database.RethinkDB: iso8601 :: ReQL -> ReQL
+ Database.RethinkDB: json :: Expr string => string -> ReQL
+ Database.RethinkDB: keys :: Expr obj => obj -> ReQL
+ Database.RethinkDB: length :: Expr a => a -> ReQL
+ Database.RethinkDB: map :: (Expr a, Expr b) => (ReQL -> b) -> a -> ReQL
+ Database.RethinkDB: member :: Expr o => [ReQL] -> o -> ReQL
+ Database.RethinkDB: mergeRightLeft :: Expr a => a -> ReQL
+ Database.RethinkDB: minutes :: Expr time => time -> ReQL
+ Database.RethinkDB: month :: Expr time => time -> ReQL
+ Database.RethinkDB: not :: Expr a => a -> ReQL
+ Database.RethinkDB: now :: ReQL
+ Database.RethinkDB: num :: Double -> ReQL
+ Database.RethinkDB: prepend :: (Expr datum, Expr array) => datum -> array -> ReQL
+ Database.RethinkDB: reduce1 :: (Expr a, Expr s) => (ReQL -> ReQL -> a) -> s -> ReQL
+ Database.RethinkDB: returnVals :: ReQL -> ReQL
+ Database.RethinkDB: run' :: Expr query => RethinkDBHandle -> query -> IO [Value]
+ Database.RethinkDB: runOpts :: (Expr query, Result r) => RethinkDBHandle -> [RunOptions] -> query -> IO r
+ Database.RethinkDB: sample :: (Expr n, Expr seq) => n -> seq -> ReQL
+ Database.RethinkDB: seconds :: Expr time => time -> ReQL
+ Database.RethinkDB: setDifference :: (Expr set, Expr remove) => remove -> set -> ReQL
+ Database.RethinkDB: setInsert :: (Expr datum, Expr array) => datum -> array -> ReQL
+ Database.RethinkDB: setIntersection :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: setUnion :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: spliceAt :: (Expr n, Expr replace, Expr array) => n -> replace -> array -> ReQL
+ Database.RethinkDB: sum :: Expr s => s -> ReQL
+ Database.RethinkDB: tablePrimaryKey :: Table -> Maybe Key
+ Database.RethinkDB: take :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB: time :: ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL
+ Database.RethinkDB: timeOfDay :: Expr time => time -> ReQL
+ Database.RethinkDB: timezone :: Expr time => time -> ReQL
+ Database.RethinkDB: toEpochTime :: Expr t => t -> ReQL
+ Database.RethinkDB: toIso8601 :: Expr t => t -> ReQL
+ Database.RethinkDB: typeOf :: Expr a => a -> ReQL
+ Database.RethinkDB: withFields :: (Expr paths, Expr seq) => [paths] -> seq -> ReQL
+ Database.RethinkDB: year :: Expr time => time -> ReQL
+ Database.RethinkDB.Driver: NoReply :: RunOptions
+ Database.RethinkDB.Driver: SoftDurability :: Bool -> RunOptions
+ Database.RethinkDB.Driver: UseOutdated :: RunOptions
+ Database.RethinkDB.Driver: class Result r
+ Database.RethinkDB.Driver: convertResult :: Result r => MVar Response -> IO r
+ Database.RethinkDB.Driver: data RunOptions
+ Database.RethinkDB.Driver: instance FromJSON a => Result (Cursor a)
+ Database.RethinkDB.Driver: instance FromJSON a => Result (Maybe a)
+ Database.RethinkDB.Driver: instance FromJSON a => Result [a]
+ Database.RethinkDB.Driver: instance Result Response
+ Database.RethinkDB.Driver: run' :: Expr query => RethinkDBHandle -> query -> IO [Value]
+ Database.RethinkDB.Driver: runOpts :: (Expr query, Result r) => RethinkDBHandle -> [RunOptions] -> query -> IO r
+ Database.RethinkDB.Functions: (#) :: (Expr a, Expr b, Expr c) => (ReQL -> a) -> (ReQL -> b) -> c -> ReQL
+ Database.RethinkDB.Functions: (&&) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB.Functions: (.) :: (Expr a, Expr b, Expr c) => (ReQL -> b) -> (ReQL -> a) -> c -> ReQL
+ Database.RethinkDB.Functions: (=~) :: (Expr string, Expr regex) => string -> regex -> ReQL
+ Database.RethinkDB.Functions: (\\) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB.Functions: (||) :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB.Functions: apply :: (Expr fun, Expr arg) => fun -> [arg] -> ReQL
+ Database.RethinkDB.Functions: asBool :: Expr x => x -> ReQL
+ Database.RethinkDB.Functions: asNumber :: Expr x => x -> ReQL
+ Database.RethinkDB.Functions: asObject :: Expr x => x -> ReQL
+ Database.RethinkDB.Functions: asString :: Expr x => x -> ReQL
+ Database.RethinkDB.Functions: changeAt :: (Expr n, Expr datum, Expr array) => n -> datum -> array -> ReQL
+ Database.RethinkDB.Functions: class Javascript r
+ Database.RethinkDB.Functions: coerceTo :: Expr x => ReQL -> x -> ReQL
+ Database.RethinkDB.Functions: db :: Text -> Database
+ Database.RethinkDB.Functions: dbCreate :: String -> ReQL
+ Database.RethinkDB.Functions: dbDrop :: Database -> ReQL
+ Database.RethinkDB.Functions: dbList :: ReQL
+ Database.RethinkDB.Functions: delete :: Expr selection => selection -> ReQL
+ Database.RethinkDB.Functions: deleteAt :: (Expr n, Expr array) => n -> array -> ReQL
+ Database.RethinkDB.Functions: get :: (Expr s, Expr k) => k -> s -> ReQL
+ Database.RethinkDB.Functions: getAll :: Expr value => Key -> [value] -> Table -> ReQL
+ Database.RethinkDB.Functions: handle :: (Expr handler, Expr reql) => handler -> reql -> ReQL
+ Database.RethinkDB.Functions: hasFields :: (Expr obj, Expr paths) => paths -> obj -> ReQL
+ Database.RethinkDB.Functions: indexCreate :: Expr fun => String -> fun -> Table -> ReQL
+ Database.RethinkDB.Functions: indexDrop :: Key -> Table -> ReQL
+ Database.RethinkDB.Functions: indexList :: Table -> ReQL
+ Database.RethinkDB.Functions: indexesOf :: (Expr fun, Expr seq) => fun -> seq -> ReQL
+ Database.RethinkDB.Functions: info :: Expr a => a -> ReQL
+ Database.RethinkDB.Functions: insert :: (Expr table, Expr object) => object -> table -> ReQL
+ Database.RethinkDB.Functions: insertAt :: (Expr n, Expr datum, Expr array) => n -> datum -> array -> ReQL
+ Database.RethinkDB.Functions: instance Javascript (ReQL -> ReQL -> ReQL)
+ Database.RethinkDB.Functions: instance Javascript (ReQL -> ReQL)
+ Database.RethinkDB.Functions: instance Javascript ReQL
+ Database.RethinkDB.Functions: isEmpty :: Expr seq => seq -> ReQL
+ Database.RethinkDB.Functions: json :: Expr string => string -> ReQL
+ Database.RethinkDB.Functions: keys :: Expr obj => obj -> ReQL
+ Database.RethinkDB.Functions: member :: Expr o => [ReQL] -> o -> ReQL
+ Database.RethinkDB.Functions: mergeRightLeft :: Expr a => a -> ReQL
+ Database.RethinkDB.Functions: prepend :: (Expr datum, Expr array) => datum -> array -> ReQL
+ Database.RethinkDB.Functions: reduce1 :: (Expr a, Expr s) => (ReQL -> ReQL -> a) -> s -> ReQL
+ Database.RethinkDB.Functions: replace :: Expr selection => (ReQL -> ReQL) -> selection -> ReQL
+ Database.RethinkDB.Functions: sample :: (Expr n, Expr seq) => n -> seq -> ReQL
+ Database.RethinkDB.Functions: setDifference :: (Expr set, Expr remove) => remove -> set -> ReQL
+ Database.RethinkDB.Functions: setInsert :: (Expr datum, Expr array) => datum -> array -> ReQL
+ Database.RethinkDB.Functions: setIntersection :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB.Functions: setUnion :: (Expr a, Expr b) => a -> b -> ReQL
+ Database.RethinkDB.Functions: spliceAt :: (Expr n, Expr replace, Expr array) => n -> replace -> array -> ReQL
+ Database.RethinkDB.Functions: table :: Text -> Table
+ Database.RethinkDB.Functions: tableCreate :: Table -> TableCreateOptions -> ReQL
+ Database.RethinkDB.Functions: tableDrop :: Table -> ReQL
+ Database.RethinkDB.Functions: tableList :: Database -> ReQL
+ Database.RethinkDB.Functions: typeOf :: Expr a => a -> ReQL
+ Database.RethinkDB.Functions: update :: Expr selection => (ReQL -> ReQL) -> selection -> ReQL
+ Database.RethinkDB.Functions: upsert :: (Expr table, Expr object) => object -> table -> ReQL
+ Database.RethinkDB.Functions: withFields :: (Expr paths, Expr seq) => [paths] -> seq -> ReQL
+ Database.RethinkDB.MapReduce: Map :: (ReQL -> ReQL) -> MapReduce
+ Database.RethinkDB.MapReduce: MapReduce :: (ReQL -> ReQL) -> (ReQL -> ReQL -> ReQL) -> (ReQL -> ReQL) -> MapReduce
+ Database.RethinkDB.MapReduce: None :: ReQL -> MapReduce
+ Database.RethinkDB.MapReduce: data MapReduce
+ Database.RethinkDB.MapReduce: extract :: Maybe Int -> TermType -> [MapReduce] -> [(Key, MapReduce)] -> (ReQL -> ReQL, [MapReduce])
+ Database.RethinkDB.MapReduce: extractOne :: MapReduce -> WriterT [MapReduce] (State (Maybe Int)) (ReQL -> ReQL)
+ Database.RethinkDB.MapReduce: fst3 :: (a, b, c) -> a
+ Database.RethinkDB.MapReduce: notNone :: MapReduce -> Bool
+ Database.RethinkDB.MapReduce: rebuild0 :: TermType -> [MapReduce] -> [(Text, MapReduce)] -> MapReduce
+ Database.RethinkDB.MapReduce: rebuildx :: TermType -> [MapReduce] -> [(Key, MapReduce)] -> MapReduce
+ Database.RethinkDB.MapReduce: sameVar :: Int -> BaseArray -> Bool
+ Database.RethinkDB.MapReduce: snd3 :: (a, b, c) -> b
+ Database.RethinkDB.MapReduce: termToMapReduce :: (ReQL -> ReQL) -> State QuerySettings (ReQL -> ReQL, ReQL -> ReQL -> ReQL, ReQL -> ReQL)
+ Database.RethinkDB.MapReduce: thrd3 :: (a, b, c) -> c
+ Database.RethinkDB.MapReduce: toFun1 :: ReQL -> (ReQL -> ReQL)
+ Database.RethinkDB.MapReduce: toFun2 :: ReQL -> (ReQL -> ReQL -> ReQL)
+ Database.RethinkDB.MapReduce: toMapReduce :: Int -> BaseReQL -> MapReduce
+ Database.RethinkDB.MapReduce: toReduce :: MapReduce -> (ReQL -> ReQL, ReQL -> ReQL -> ReQL, ReQL -> ReQL)
+ Database.RethinkDB.MapReduce: unionReduce :: ReQL -> ReQL -> ReQL
+ Database.RethinkDB.MapReduce: wrap :: BaseReQL -> ReQL
+ Database.RethinkDB.Network: ErrorBadQuery :: ErrorCode
+ Database.RethinkDB.Network: ErrorBrokenClient :: ErrorCode
+ Database.RethinkDB.Network: ErrorResponse :: RethinkDBError -> Response
+ Database.RethinkDB.Network: ErrorRuntime :: ErrorCode
+ Database.RethinkDB.Network: ErrorUnexpectedResponse :: ErrorCode
+ Database.RethinkDB.Network: RethinkDBConnectionError :: ByteString -> RethinkDBConnectionError
+ Database.RethinkDB.Network: RethinkDBError :: ErrorCode -> BaseReQL -> String -> Backtrace -> RethinkDBError
+ Database.RethinkDB.Network: RethinkDBHandle :: Handle -> MVar () -> IORef Token -> Database -> IORef (Map Token (Chan Response, BaseReQL)) -> ThreadId -> RethinkDBHandle
+ Database.RethinkDB.Network: Success :: SuccessCode
+ Database.RethinkDB.Network: SuccessPartial :: RethinkDBHandle -> Int64 -> SuccessCode
+ Database.RethinkDB.Network: SuccessResponse :: SuccessCode -> [Datum] -> Response
+ Database.RethinkDB.Network: close :: RethinkDBHandle -> IO ()
+ Database.RethinkDB.Network: collect :: Cursor a -> IO [a]
+ Database.RethinkDB.Network: connect :: HostName -> Integer -> Maybe String -> IO RethinkDBHandle
+ Database.RethinkDB.Network: data Cursor a
+ Database.RethinkDB.Network: data ErrorCode
+ Database.RethinkDB.Network: data Response
+ Database.RethinkDB.Network: data RethinkDBConnectionError
+ Database.RethinkDB.Network: data RethinkDBError
+ Database.RethinkDB.Network: data RethinkDBHandle
+ Database.RethinkDB.Network: data SuccessCode
+ Database.RethinkDB.Network: errorBacktrace :: RethinkDBError -> Backtrace
+ Database.RethinkDB.Network: errorCode :: RethinkDBError -> ErrorCode
+ Database.RethinkDB.Network: errorMessage :: RethinkDBError -> String
+ Database.RethinkDB.Network: errorResponse :: Response -> RethinkDBError
+ Database.RethinkDB.Network: errorTerm :: RethinkDBError -> BaseReQL
+ Database.RethinkDB.Network: instance Exception RethinkDBConnectionError
+ Database.RethinkDB.Network: instance Exception RethinkDBError
+ Database.RethinkDB.Network: instance Exception RethinkDBReadError
+ Database.RethinkDB.Network: instance Functor Cursor
+ Database.RethinkDB.Network: instance Show ErrorCode
+ Database.RethinkDB.Network: instance Show Response
+ Database.RethinkDB.Network: instance Show RethinkDBConnectionError
+ Database.RethinkDB.Network: instance Show RethinkDBError
+ Database.RethinkDB.Network: instance Show RethinkDBHandle
+ Database.RethinkDB.Network: instance Show RethinkDBReadError
+ Database.RethinkDB.Network: instance Show SuccessCode
+ Database.RethinkDB.Network: instance Typeable RethinkDBConnectionError
+ Database.RethinkDB.Network: instance Typeable RethinkDBError
+ Database.RethinkDB.Network: instance Typeable RethinkDBReadError
+ Database.RethinkDB.Network: makeCursor :: MVar Response -> IO (Cursor Datum)
+ Database.RethinkDB.Network: next :: Cursor a -> IO (Maybe a)
+ Database.RethinkDB.Network: nextResponse :: Response -> IO ()
+ Database.RethinkDB.Network: rdbDatabase :: RethinkDBHandle -> Database
+ Database.RethinkDB.Network: rdbHandle :: RethinkDBHandle -> Handle
+ Database.RethinkDB.Network: rdbThread :: RethinkDBHandle -> ThreadId
+ Database.RethinkDB.Network: rdbToken :: RethinkDBHandle -> IORef Token
+ Database.RethinkDB.Network: rdbWait :: RethinkDBHandle -> IORef (Map Token (Chan Response, BaseReQL))
+ Database.RethinkDB.Network: rdbWriteLock :: RethinkDBHandle -> MVar ()
+ Database.RethinkDB.Network: runQLQuery :: RethinkDBHandle -> Query -> BaseReQL -> IO (MVar Response)
+ Database.RethinkDB.Network: stopResponse :: Response -> IO ()
+ Database.RethinkDB.Network: successCode :: Response -> SuccessCode
+ Database.RethinkDB.Network: successDatums :: Response -> [Datum]
+ Database.RethinkDB.Network: use :: RethinkDBHandle -> Database -> RethinkDBHandle
+ Database.RethinkDB.Objects: Database :: Text -> Database
+ Database.RethinkDB.Objects: Table :: Maybe Database -> Text -> Maybe Key -> Table
+ Database.RethinkDB.Objects: TableCreateOptions :: Maybe Text -> Maybe Int64 -> TableCreateOptions
+ Database.RethinkDB.Objects: data Database
+ Database.RethinkDB.Objects: data Table
+ Database.RethinkDB.Objects: data TableCreateOptions
+ Database.RethinkDB.Objects: databaseName :: Database -> Text
+ Database.RethinkDB.Objects: instance Default TableCreateOptions
+ Database.RethinkDB.Objects: instance Eq Database
+ Database.RethinkDB.Objects: instance Eq Table
+ Database.RethinkDB.Objects: instance Ord Database
+ Database.RethinkDB.Objects: instance Ord Table
+ Database.RethinkDB.Objects: instance Show Database
+ Database.RethinkDB.Objects: instance Show Table
+ Database.RethinkDB.Objects: tableCacheSize :: TableCreateOptions -> Maybe Int64
+ Database.RethinkDB.Objects: tableDataCenter :: TableCreateOptions -> Maybe Text
+ Database.RethinkDB.Objects: tableDatabase :: Table -> Maybe Database
+ Database.RethinkDB.Objects: tableName :: Table -> Text
+ Database.RethinkDB.Objects: tablePrimaryKey :: Table -> Maybe Key
+ Database.RethinkDB.Objects: type Datum = Value
+ Database.RethinkDB.Objects: type Key = Text
+ Database.RethinkDB.Protobuf.Ql2: fileDescriptorProto :: FileDescriptorProto
+ Database.RethinkDB.Protobuf.Ql2: protoInfo :: ProtoInfo
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: Backtrace :: !(Seq Frame) -> Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: data Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: frames :: Backtrace -> !(Seq Frame)
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Data Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Default Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Eq Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance GPB Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Mergeable Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance MessageAPI msg' (msg' -> Backtrace) Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Ord Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance ReflectDescriptor Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Show Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Typeable Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Backtrace: instance Wire Backtrace
+ Database.RethinkDB.Protobuf.Ql2.Datum: Datum :: !(Maybe DatumType) -> !(Maybe Bool) -> !(Maybe Double) -> !(Maybe Utf8) -> !(Seq Datum) -> !(Seq AssocPair) -> !ExtField -> Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: data Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: ext'field :: Datum -> !ExtField
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Data Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Default Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Eq Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance ExtendMessage Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance GPB Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Mergeable Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance MessageAPI msg' (msg' -> Datum) Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Ord Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance ReflectDescriptor Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Show Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Typeable Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: instance Wire Datum
+ Database.RethinkDB.Protobuf.Ql2.Datum: r_array :: Datum -> !(Seq Datum)
+ Database.RethinkDB.Protobuf.Ql2.Datum: r_bool :: Datum -> !(Maybe Bool)
+ Database.RethinkDB.Protobuf.Ql2.Datum: r_num :: Datum -> !(Maybe Double)
+ Database.RethinkDB.Protobuf.Ql2.Datum: r_object :: Datum -> !(Seq AssocPair)
+ Database.RethinkDB.Protobuf.Ql2.Datum: r_str :: Datum -> !(Maybe Utf8)
+ Database.RethinkDB.Protobuf.Ql2.Datum: type' :: Datum -> !(Maybe DatumType)
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: AssocPair :: !(Maybe Utf8) -> !(Maybe Datum) -> AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: data AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Data AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Default AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Eq AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance GPB AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Mergeable AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance MessageAPI msg' (msg' -> AssocPair) AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Ord AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance ReflectDescriptor AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Show AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Typeable AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: instance Wire AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: key :: AssocPair -> !(Maybe Utf8)
+ Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair: val :: AssocPair -> !(Maybe Datum)
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: R_ARRAY :: DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: R_BOOL :: DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: R_NULL :: DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: R_NUM :: DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: R_OBJECT :: DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: R_STR :: DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: data DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Bounded DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Data DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Default DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Enum DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Eq DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance GPB DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Mergeable DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance MessageAPI msg' (msg' -> DatumType) DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Ord DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Read DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance ReflectEnum DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Show DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Typeable DatumType
+ Database.RethinkDB.Protobuf.Ql2.Datum.DatumType: instance Wire DatumType
+ Database.RethinkDB.Protobuf.Ql2.Frame: Frame :: !(Maybe FrameType) -> !(Maybe Int64) -> !(Maybe Utf8) -> Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: data Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Data Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Default Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Eq Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance GPB Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Mergeable Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance MessageAPI msg' (msg' -> Frame) Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Ord Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance ReflectDescriptor Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Show Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Typeable Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: instance Wire Frame
+ Database.RethinkDB.Protobuf.Ql2.Frame: opt :: Frame -> !(Maybe Utf8)
+ Database.RethinkDB.Protobuf.Ql2.Frame: pos :: Frame -> !(Maybe Int64)
+ Database.RethinkDB.Protobuf.Ql2.Frame: type' :: Frame -> !(Maybe FrameType)
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: OPT :: FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: POS :: FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: data FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Bounded FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Data FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Default FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Enum FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Eq FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance GPB FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Mergeable FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance MessageAPI msg' (msg' -> FrameType) FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Ord FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Read FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance ReflectEnum FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Show FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Typeable FrameType
+ Database.RethinkDB.Protobuf.Ql2.Frame.FrameType: instance Wire FrameType
+ Database.RethinkDB.Protobuf.Ql2.Query: Query :: !(Maybe QueryType) -> !(Maybe Term) -> !(Maybe Int64) -> !(Maybe Bool) -> !(Seq AssocPair) -> Query
+ Database.RethinkDB.Protobuf.Ql2.Query: data Query
+ Database.RethinkDB.Protobuf.Ql2.Query: global_optargs :: Query -> !(Seq AssocPair)
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Data Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Default Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Eq Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance GPB Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Mergeable Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance MessageAPI msg' (msg' -> Query) Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Ord Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance ReflectDescriptor Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Show Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Typeable Query
+ Database.RethinkDB.Protobuf.Ql2.Query: instance Wire Query
+ Database.RethinkDB.Protobuf.Ql2.Query: oBSOLETE_noreply :: Query -> !(Maybe Bool)
+ Database.RethinkDB.Protobuf.Ql2.Query: query :: Query -> !(Maybe Term)
+ Database.RethinkDB.Protobuf.Ql2.Query: token :: Query -> !(Maybe Int64)
+ Database.RethinkDB.Protobuf.Ql2.Query: type' :: Query -> !(Maybe QueryType)
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: AssocPair :: !(Maybe Utf8) -> !(Maybe Term) -> AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: data AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Data AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Default AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Eq AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance GPB AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Mergeable AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance MessageAPI msg' (msg' -> AssocPair) AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Ord AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance ReflectDescriptor AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Show AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Typeable AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: instance Wire AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: key :: AssocPair -> !(Maybe Utf8)
+ Database.RethinkDB.Protobuf.Ql2.Query.AssocPair: val :: AssocPair -> !(Maybe Term)
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: CONTINUE :: QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: START :: QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: STOP :: QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: data QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Bounded QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Data QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Default QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Enum QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Eq QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance GPB QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Mergeable QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance MessageAPI msg' (msg' -> QueryType) QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Ord QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Read QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance ReflectEnum QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Show QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Typeable QueryType
+ Database.RethinkDB.Protobuf.Ql2.Query.QueryType: instance Wire QueryType
+ Database.RethinkDB.Protobuf.Ql2.Response: Response :: !(Maybe ResponseType) -> !(Maybe Int64) -> !(Seq Datum) -> !(Maybe Backtrace) -> Response
+ Database.RethinkDB.Protobuf.Ql2.Response: backtrace :: Response -> !(Maybe Backtrace)
+ Database.RethinkDB.Protobuf.Ql2.Response: data Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Data Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Default Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Eq Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance GPB Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Mergeable Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance MessageAPI msg' (msg' -> Response) Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Ord Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance ReflectDescriptor Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Show Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Typeable Response
+ Database.RethinkDB.Protobuf.Ql2.Response: instance Wire Response
+ Database.RethinkDB.Protobuf.Ql2.Response: response :: Response -> !(Seq Datum)
+ Database.RethinkDB.Protobuf.Ql2.Response: token :: Response -> !(Maybe Int64)
+ Database.RethinkDB.Protobuf.Ql2.Response: type' :: Response -> !(Maybe ResponseType)
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: CLIENT_ERROR :: ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: COMPILE_ERROR :: ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: RUNTIME_ERROR :: ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: SUCCESS_ATOM :: ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: SUCCESS_PARTIAL :: ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: SUCCESS_SEQUENCE :: ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: data ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Bounded ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Data ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Default ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Enum ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Eq ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance GPB ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Mergeable ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance MessageAPI msg' (msg' -> ResponseType) ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Ord ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Read ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance ReflectEnum ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Show ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Typeable ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Response.ResponseType: instance Wire ResponseType
+ Database.RethinkDB.Protobuf.Ql2.Term: Term :: !(Maybe TermType) -> !(Maybe Datum) -> !(Seq Term) -> !(Seq AssocPair) -> !ExtField -> Term
+ Database.RethinkDB.Protobuf.Ql2.Term: args :: Term -> !(Seq Term)
+ Database.RethinkDB.Protobuf.Ql2.Term: data Term
+ Database.RethinkDB.Protobuf.Ql2.Term: datum :: Term -> !(Maybe Datum)
+ Database.RethinkDB.Protobuf.Ql2.Term: ext'field :: Term -> !ExtField
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Data Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Default Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Eq Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance ExtendMessage Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance GPB Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Mergeable Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance MessageAPI msg' (msg' -> Term) Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Ord Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance ReflectDescriptor Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Show Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Typeable Term
+ Database.RethinkDB.Protobuf.Ql2.Term: instance Wire Term
+ Database.RethinkDB.Protobuf.Ql2.Term: optargs :: Term -> !(Seq AssocPair)
+ Database.RethinkDB.Protobuf.Ql2.Term: type' :: Term -> !(Maybe TermType)
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: AssocPair :: !(Maybe Utf8) -> !(Maybe Term) -> AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: data AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Data AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Default AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Eq AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance GPB AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Mergeable AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance MessageAPI msg' (msg' -> AssocPair) AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Ord AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance ReflectDescriptor AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Show AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Typeable AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: instance Wire AssocPair
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: key :: AssocPair -> !(Maybe Utf8)
+ Database.RethinkDB.Protobuf.Ql2.Term.AssocPair: val :: AssocPair -> !(Maybe Term)
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ADD :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ALL :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ANY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: APPEND :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: APRIL :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ASC :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: AUGUST :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: BETWEEN :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: BRANCH :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: CHANGE_AT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: COERCE_TO :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: CONCATMAP :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: CONTAINS :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: COUNT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DATE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DATUM :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DAY_OF_WEEK :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DAY_OF_YEAR :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DB :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DB_CREATE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DB_DROP :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DB_LIST :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DECEMBER :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DEFAULT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DELETE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DELETE_AT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DESC :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DIFFERENCE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DISTINCT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DIV :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: DURING :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: EPOCH_TIME :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: EQ :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: EQ_JOIN :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ERROR :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: FEBRUARY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: FILTER :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: FOREACH :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: FRIDAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: FUNC :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: FUNCALL :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: GE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: GET :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: GET_ALL :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: GET_FIELD :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: GROUPBY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: GROUPED_MAP_REDUCE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: GT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: HAS_FIELDS :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: HOURS :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: IMPLICIT_VAR :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INDEXES_OF :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INDEX_CREATE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INDEX_DROP :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INDEX_LIST :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INFO :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INNER_JOIN :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INSERT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: INSERT_AT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: IN_TIMEZONE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ISO8601 :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: IS_EMPTY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: JANUARY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: JAVASCRIPT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: JSON :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: JULY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: JUNE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: KEYS :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: LE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: LIMIT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: LITERAL :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: LT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MAKE_ARRAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MAKE_OBJ :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MAP :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MARCH :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MATCH :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MERGE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MINUTES :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MOD :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MONDAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MONTH :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: MUL :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: NE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: NOT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: NOVEMBER :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: NOW :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: NTH :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: OCTOBER :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ORDERBY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: OUTER_JOIN :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: PLUCK :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: PREPEND :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: REDUCE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: REPLACE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SAMPLE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SATURDAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SECONDS :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SEPTEMBER :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SET_DIFFERENCE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SET_INSERT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SET_INTERSECTION :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SET_UNION :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SKIP :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SLICE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SPLICE_AT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SUB :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: SUNDAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TABLE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TABLE_CREATE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TABLE_DROP :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TABLE_LIST :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: THURSDAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TIME :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TIMEZONE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TIME_OF_DAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TO_EPOCH_TIME :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TO_ISO8601 :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TUESDAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: TYPEOF :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: UNION :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: UPDATE :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: VAR :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: WEDNESDAY :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: WITHOUT :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: WITH_FIELDS :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: YEAR :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: ZIP :: TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: data TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Bounded TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Data TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Default TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Enum TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Eq TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance GPB TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Mergeable TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance MessageAPI msg' (msg' -> TermType) TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Ord TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Read TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance ReflectEnum TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Show TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Typeable TermType
+ Database.RethinkDB.Protobuf.Ql2.Term.TermType: instance Wire TermType
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: VersionDummy :: VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: data VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Data VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Default VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Eq VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance GPB VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Mergeable VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance MessageAPI msg' (msg' -> VersionDummy) VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Ord VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance ReflectDescriptor VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Show VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Typeable VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy: instance Wire VersionDummy
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: V0_1 :: Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: V0_2 :: Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: data Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Bounded Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Data Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Default Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Enum Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Eq Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance GPB Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Mergeable Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance MessageAPI msg' (msg' -> Version) Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Ord Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Read Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance ReflectEnum Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Show Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Typeable Version
+ Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version: instance Wire Version
+ Database.RethinkDB.ReQL: (:=) :: Text -> e -> Attribute
+ Database.RethinkDB.ReQL: BaseAttribute :: Text -> BaseReQL -> BaseAttribute
+ Database.RethinkDB.ReQL: BaseReQL :: TermType -> Maybe Datum -> BaseArray -> [BaseAttribute] -> BaseReQL
+ Database.RethinkDB.ReQL: Object :: State QuerySettings [BaseAttribute] -> Object
+ Database.RethinkDB.ReQL: QuerySettings :: Int64 -> Database -> Int -> Maybe Bool -> Maybe Bool -> QuerySettings
+ Database.RethinkDB.ReQL: ReQL :: State QuerySettings BaseReQL -> ReQL
+ Database.RethinkDB.ReQL: arr :: Arr a => a -> Array
+ Database.RethinkDB.ReQL: baseArray :: Array -> State QuerySettings BaseArray
+ Database.RethinkDB.ReQL: baseObject :: Object -> State QuerySettings [BaseAttribute]
+ Database.RethinkDB.ReQL: baseReQL :: ReQL -> State QuerySettings BaseReQL
+ Database.RethinkDB.ReQL: buildQuery :: ReQL -> Int64 -> Database -> (Query, BaseReQL)
+ Database.RethinkDB.ReQL: canReturnVals :: ReQL -> ReQL
+ Database.RethinkDB.ReQL: class Expr e
+ Database.RethinkDB.ReQL: class Obj o
+ Database.RethinkDB.ReQL: cons :: Expr e => e -> Array -> Array
+ Database.RethinkDB.ReQL: convertBacktrace :: Backtrace -> Backtrace
+ Database.RethinkDB.ReQL: data Attribute
+ Database.RethinkDB.ReQL: data BaseAttribute
+ Database.RethinkDB.ReQL: data BaseReQL
+ Database.RethinkDB.ReQL: data Object
+ Database.RethinkDB.ReQL: data QuerySettings
+ Database.RethinkDB.ReQL: data ReQL
+ Database.RethinkDB.ReQL: expr :: Expr e => e -> ReQL
+ Database.RethinkDB.ReQL: instance (Expr a, Expr b) => Arr (a, b)
+ Database.RethinkDB.ReQL: instance (Expr a, Expr b, Expr c) => Arr (a, b, c)
+ Database.RethinkDB.ReQL: instance (Expr a, Expr b, Expr c, Expr d) => Arr (a, b, c, d)
+ Database.RethinkDB.ReQL: instance Arr ()
+ Database.RethinkDB.ReQL: instance Arr Array
+ Database.RethinkDB.ReQL: instance Default QuerySettings
+ Database.RethinkDB.ReQL: instance Expr ()
+ Database.RethinkDB.ReQL: instance Expr (ReQL -> ReQL -> ReQL)
+ Database.RethinkDB.ReQL: instance Expr (ReQL -> ReQL)
+ Database.RethinkDB.ReQL: instance Expr Array
+ Database.RethinkDB.ReQL: instance Expr Bool
+ Database.RethinkDB.ReQL: instance Expr Database
+ Database.RethinkDB.ReQL: instance Expr Datum
+ Database.RethinkDB.ReQL: instance Expr Double
+ Database.RethinkDB.ReQL: instance Expr Int
+ Database.RethinkDB.ReQL: instance Expr Int64
+ Database.RethinkDB.ReQL: instance Expr Integer
+ Database.RethinkDB.ReQL: instance Expr Object
+ Database.RethinkDB.ReQL: instance Expr Rational
+ Database.RethinkDB.ReQL: instance Expr ReQL
+ Database.RethinkDB.ReQL: instance Expr Table
+ Database.RethinkDB.ReQL: instance Expr Text
+ Database.RethinkDB.ReQL: instance Expr UTCTime
+ Database.RethinkDB.ReQL: instance Expr Value
+ Database.RethinkDB.ReQL: instance Expr ZonedTime
+ Database.RethinkDB.ReQL: instance Expr a => Arr [a]
+ Database.RethinkDB.ReQL: instance Expr a => Expr [a]
+ Database.RethinkDB.ReQL: instance Expr e => Expr (HashMap Text e)
+ Database.RethinkDB.ReQL: instance Expr x => Expr (Vector x)
+ Database.RethinkDB.ReQL: instance IsString ReQL
+ Database.RethinkDB.ReQL: instance Num ReQL
+ Database.RethinkDB.ReQL: instance Obj ()
+ Database.RethinkDB.ReQL: instance Obj Object
+ Database.RethinkDB.ReQL: instance Obj [Attribute]
+ Database.RethinkDB.ReQL: instance Show BaseAttribute
+ Database.RethinkDB.ReQL: instance Show BaseReQL
+ Database.RethinkDB.ReQL: instance Show Frame
+ Database.RethinkDB.ReQL: instance Show ReQL
+ Database.RethinkDB.ReQL: newVarId :: State QuerySettings Int
+ Database.RethinkDB.ReQL: num :: Double -> ReQL
+ Database.RethinkDB.ReQL: obj :: Obj o => o -> Object
+ Database.RethinkDB.ReQL: op :: (Arr a, Obj o) => TermType -> a -> o -> ReQL
+ Database.RethinkDB.ReQL: queryDefaultDatabase :: QuerySettings -> Database
+ Database.RethinkDB.ReQL: queryReturnVals :: QuerySettings -> Maybe Bool
+ Database.RethinkDB.ReQL: queryToken :: QuerySettings -> Int64
+ Database.RethinkDB.ReQL: queryUseOutdated :: QuerySettings -> Maybe Bool
+ Database.RethinkDB.ReQL: queryVarIndex :: QuerySettings -> Int
+ Database.RethinkDB.ReQL: reqlToProtobuf :: ReQL -> Query
+ Database.RethinkDB.ReQL: returnVals :: ReQL -> ReQL
+ Database.RethinkDB.ReQL: str :: String -> ReQL
+ Database.RethinkDB.ReQL: termArgs :: BaseReQL -> BaseArray
+ Database.RethinkDB.ReQL: termDatum :: BaseReQL -> Maybe Datum
+ Database.RethinkDB.ReQL: termOptArgs :: BaseReQL -> [BaseAttribute]
+ Database.RethinkDB.ReQL: termType :: BaseReQL -> TermType
+ Database.RethinkDB.ReQL: type Backtrace = [Frame]
+ Database.RethinkDB.ReQL: type BaseArray = [BaseReQL]
+ Database.RethinkDB.ReQL: withQuerySettings :: (QuerySettings -> ReQL) -> ReQL
+ Database.RethinkDB.Time: Closed :: a -> Bound a
+ Database.RethinkDB.Time: Open :: a -> Bound a
+ Database.RethinkDB.Time: UTCTime :: UTCTime -> UTCTime
+ Database.RethinkDB.Time: ZonedTime :: ZonedTime -> ZonedTime
+ Database.RethinkDB.Time: boundString :: Bound a -> Text
+ Database.RethinkDB.Time: boundValue :: Bound a -> a
+ Database.RethinkDB.Time: data Bound a
+ Database.RethinkDB.Time: date :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: day :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: dayOfWeek :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: dayOfYear :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: during :: (Expr left, Expr right, Expr time) => Bound left -> Bound right -> time -> ReQL
+ Database.RethinkDB.Time: epochTime :: ReQL -> ReQL
+ Database.RethinkDB.Time: hours :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: inTimezone :: Expr time => ReQL -> time -> ReQL
+ Database.RethinkDB.Time: instance Expr UTCTime
+ Database.RethinkDB.Time: instance Expr ZonedTime
+ Database.RethinkDB.Time: instance FromJSON UTCTime
+ Database.RethinkDB.Time: instance FromJSON ZonedTime
+ Database.RethinkDB.Time: iso8601 :: ReQL -> ReQL
+ Database.RethinkDB.Time: minutes :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: month :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: newtype UTCTime
+ Database.RethinkDB.Time: newtype ZonedTime
+ Database.RethinkDB.Time: now :: ReQL
+ Database.RethinkDB.Time: parseTimeZone :: String -> Parser TimeZone
+ Database.RethinkDB.Time: seconds :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: time :: ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL
+ Database.RethinkDB.Time: timeOfDay :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: timezone :: Expr time => time -> ReQL
+ Database.RethinkDB.Time: toEpochTime :: Expr t => t -> ReQL
+ Database.RethinkDB.Time: toIso8601 :: Expr t => t -> ReQL
+ Database.RethinkDB.Time: year :: Expr time => time -> ReQL
- Database.RethinkDB: (!) :: (ToExpr a, ExprValueType a ~ ObjectType) => a -> String -> ValueExpr t
+ Database.RethinkDB: (!) :: Expr s => s -> ReQL -> ReQL
- Database.RethinkDB: (:=) :: String -> e -> Attribute
+ Database.RethinkDB: (:=) :: Text -> e -> Attribute
- Database.RethinkDB: Asc :: String -> Order
+ Database.RethinkDB: Asc :: Key -> Order
- Database.RethinkDB: Database :: String -> Database
+ Database.RethinkDB: Database :: Text -> Database
- Database.RethinkDB: Desc :: String -> Order
+ Database.RethinkDB: Desc :: Key -> Order
- Database.RethinkDB: Table :: Maybe Database -> String -> Maybe String -> Table
+ Database.RethinkDB: Table :: Maybe Database -> Text -> Maybe Key -> Table
- Database.RethinkDB: TableCreateOptions :: Maybe String -> Maybe Int64 -> TableCreateOptions
+ Database.RethinkDB: TableCreateOptions :: Maybe Text -> Maybe Int64 -> TableCreateOptions
- Database.RethinkDB: append :: (HasValueType a ArrayType, HasValueType b x) => a -> b -> ArrayExpr
+ Database.RethinkDB: append :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB: asArray :: ToExpr e => e -> ArrayExpr
+ Database.RethinkDB: asArray :: Expr x => x -> ReQL
- Database.RethinkDB: avg :: String -> MapReduce ObjectType ArrayType ArrayType NumberType
+ Database.RethinkDB: avg :: Expr s => s -> ReQL
- Database.RethinkDB: between :: (ToJSON a, ToStream e, ObjectType HasToStreamValueOf e) => (Maybe a) -> (Maybe a) -> e -> Expr (ExprType e)
+ Database.RethinkDB: between :: (Expr left, Expr right, Expr seq) => Key -> left -> right -> seq -> ReQL
- Database.RethinkDB: collect :: Results a -> IO [a]
+ Database.RethinkDB: collect :: Cursor a -> IO [a]
- Database.RethinkDB: databaseName :: Database -> String
+ Database.RethinkDB: databaseName :: Database -> Text
- Database.RethinkDB: db :: String -> Database
+ Database.RethinkDB: db :: Text -> Database
- Database.RethinkDB: dbCreate :: String -> Query False Database
+ Database.RethinkDB: dbCreate :: String -> ReQL
- Database.RethinkDB: dbDrop :: Database -> Query False ()
+ Database.RethinkDB: dbDrop :: Database -> ReQL
- Database.RethinkDB: dbList :: Query False [Database]
+ Database.RethinkDB: dbList :: ReQL
- Database.RethinkDB: delete :: (ToExpr sel, ExprIsView sel ~ True) => sel -> WriteQuery ()
+ Database.RethinkDB: delete :: Expr selection => selection -> ReQL
- Database.RethinkDB: distinct :: (ToStream e, v HasToStreamValueOf e) => e -> Expr (StreamType False v)
+ Database.RethinkDB: distinct :: Expr s => s -> ReQL
- Database.RethinkDB: eqJoin :: (ToStream a, ObjectType HasToStreamValueOf a, ToExpr b, ExprType b ~ ExprType Selection) => a -> String -> b -> Expr (StreamType False ObjectType)
+ Database.RethinkDB: eqJoin :: (Expr a, Expr b) => Key -> a -> Key -> b -> ReQL
- Database.RethinkDB: forEach :: (ToStream a, v HasToStreamValueOf a) => a -> (ValueExpr v -> WriteQuery b) -> WriteQuery ()
+ Database.RethinkDB: forEach :: (Expr s, Expr a) => s -> (ReQL -> a) -> ReQL
- Database.RethinkDB: get :: (ToExpr e, ExprType e ~ StreamType True ObjectType, ToValue k) => e -> k -> ObjectExpr
+ Database.RethinkDB: get :: (Expr s, Expr k) => k -> s -> ReQL
- Database.RethinkDB: if' :: (ToValue e, ToValueType (ExprType e) ~ BoolType, ToExpr a, ExprTypeNoView (ExprType a) ~ x, ToExpr b, ExprTypeNoView (ExprType b) ~ x, ExprTypeIsView x ~ False) => e -> a -> b -> Expr x
+ Database.RethinkDB: if' :: (Expr a, Expr b, Expr c) => a -> b -> c -> ReQL
- Database.RethinkDB: innerJoin :: (ToStream a, l HasToStreamValueOf a, ToStream b, r HasToStreamValueOf b) => a -> b -> (ValueExpr l -> ValueExpr r -> BoolExpr) -> Expr (StreamType False ObjectType)
+ Database.RethinkDB: innerJoin :: (Expr a, Expr b, Expr c) => (ReQL -> ReQL -> c) -> a -> b -> ReQL
- Database.RethinkDB: insert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> a -> WriteQuery Document
+ Database.RethinkDB: insert :: (Expr table, Expr object) => object -> table -> ReQL
- Database.RethinkDB: js :: String -> Expr (ValueType any)
+ Database.RethinkDB: js :: Javascript r => String -> r
- Database.RethinkDB: merge :: (ToExpr a, ExprType a ~ ValueType ObjectType, ToExpr b, ExprType b ~ ValueType ObjectType) => a -> b -> ObjectExpr
+ Database.RethinkDB: merge :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB: mod :: HaveValueType a b NumberType => a -> b -> NumberExpr
+ Database.RethinkDB: mod :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB: next :: Results a -> IO (Maybe a)
+ Database.RethinkDB: next :: Cursor a -> IO (Maybe a)
- Database.RethinkDB: obj :: [Attribute] -> Obj
+ Database.RethinkDB: obj :: Obj o => o -> Object
- Database.RethinkDB: orderAttr :: Order -> String
+ Database.RethinkDB: orderAttr :: Order -> Key
- Database.RethinkDB: orderBy :: (ToOrder o, ToStream e, a HasToStreamValueOf e) => [o] -> e -> Expr (StreamType (ExprIsView e) a)
+ Database.RethinkDB: orderBy :: Expr s => [Order] -> s -> ReQL
- Database.RethinkDB: outerJoin :: (ToStream a, l HasToStreamValueOf a, ToStream b, r HasToStreamValueOf b) => a -> b -> (ValueExpr l -> ValueExpr r -> BoolExpr) -> Expr (StreamType False ObjectType)
+ Database.RethinkDB: outerJoin :: (Expr a, Expr b, Expr c) => (ReQL -> ReQL -> c) -> a -> b -> ReQL
- Database.RethinkDB: pluck :: (ToStream e, ObjectType HasToStreamValueOf e) => [String] -> e -> Expr (StreamType False ObjectType)
+ Database.RethinkDB: pluck :: Expr o => [ReQL] -> o -> ReQL
- Database.RethinkDB: reduce :: (ToValue z, ToValueType (ExprType z) ~ a, ToStream e, b HasToStreamValueOf e, ToExpr c, ExprIsView c ~ False) => e -> z -> (ValueExpr a -> ValueExpr b -> c) -> Expr (ExprType c)
+ Database.RethinkDB: reduce :: (Expr base, Expr seq, Expr a) => (ReQL -> ReQL -> a) -> base -> seq -> ReQL
- Database.RethinkDB: replace :: (ToExpr sel, ExprIsView sel ~ True, ToJSON a) => sel -> a -> WriteQuery ()
+ Database.RethinkDB: replace :: Expr selection => (ReQL -> ReQL) -> selection -> ReQL
- Database.RethinkDB: run :: ToQuery a v => RethinkDBHandle -> a -> IO v
+ Database.RethinkDB: run :: (Expr query, Result r) => RethinkDBHandle -> query -> IO r
- Database.RethinkDB: slice :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType, ToExpr m, ExprType m ~ ValueType NumberType) => e -> n -> m -> Expr (StreamType (ExprIsView e) t)
+ Database.RethinkDB: slice :: (Expr a, Expr b, Expr c) => a -> b -> c -> ReQL
- Database.RethinkDB: str :: String -> Text
+ Database.RethinkDB: str :: String -> ReQL
- Database.RethinkDB: table :: String -> Table
+ Database.RethinkDB: table :: Text -> Table
- Database.RethinkDB: tableCreate :: Table -> TableCreateOptions -> Query False Table
+ Database.RethinkDB: tableCreate :: Table -> TableCreateOptions -> ReQL
- Database.RethinkDB: tableDataCenter :: TableCreateOptions -> Maybe String
+ Database.RethinkDB: tableDataCenter :: TableCreateOptions -> Maybe Text
- Database.RethinkDB: tableDrop :: Table -> Query False ()
+ Database.RethinkDB: tableDrop :: Table -> ReQL
- Database.RethinkDB: tableList :: Database -> Query False [Table]
+ Database.RethinkDB: tableList :: Database -> ReQL
- Database.RethinkDB: tableName :: Table -> String
+ Database.RethinkDB: tableName :: Table -> Text
- Database.RethinkDB: update :: (ToExpr sel, ExprType sel ~ StreamType True out, ToMapping map, MappingFrom map ~ out, MappingTo map ~ ObjectType) => sel -> map -> WriteQuery ()
+ Database.RethinkDB: update :: Expr selection => (ReQL -> ReQL) -> selection -> ReQL
- Database.RethinkDB: upsert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) => Table -> a -> WriteQuery Document
+ Database.RethinkDB: upsert :: (Expr table, Expr object) => object -> table -> ReQL
- Database.RethinkDB: without :: (ToStream e, ObjectType HasToStreamValueOf e) => [String] -> e -> Expr (StreamType False ObjectType)
+ Database.RethinkDB: without :: Expr o => [ReQL] -> o -> ReQL
- Database.RethinkDB.Driver: run :: ToQuery a v => RethinkDBHandle -> a -> IO v
+ Database.RethinkDB.Driver: run :: (Expr query, Result r) => RethinkDBHandle -> query -> IO r
- Database.RethinkDB.Functions: (!!) :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> ValueExpr t
+ Database.RethinkDB.Functions: (!!) :: Expr a => a -> ReQL -> ReQL
- Database.RethinkDB.Functions: (!) :: (ToExpr a, ExprValueType a ~ ObjectType) => a -> String -> ValueExpr t
+ Database.RethinkDB.Functions: (!) :: Expr s => s -> ReQL -> ReQL
- Database.RethinkDB.Functions: (!=) :: (HasValueType a x, HasValueType b y) => a -> b -> BoolExpr
+ Database.RethinkDB.Functions: (!=) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (*) :: HaveValueType a b NumberType => a -> b -> NumberExpr
+ Database.RethinkDB.Functions: (*) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (+) :: HaveValueType a b NumberType => a -> b -> NumberExpr
+ Database.RethinkDB.Functions: (+) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (++) :: (HaveValueType a b v, CanConcat v) => a -> b -> Expr (ValueType v)
+ Database.RethinkDB.Functions: (++) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (-) :: HaveValueType a b NumberType => a -> b -> NumberExpr
+ Database.RethinkDB.Functions: (-) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (/) :: HaveValueType a b NumberType => a -> b -> NumberExpr
+ Database.RethinkDB.Functions: (/) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (<) :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
+ Database.RethinkDB.Functions: (<) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (<=) :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
+ Database.RethinkDB.Functions: (<=) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (==) :: (HasValueType a x, HasValueType b y) => a -> b -> BoolExpr
+ Database.RethinkDB.Functions: (==) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (>) :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
+ Database.RethinkDB.Functions: (>) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: (>=) :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr
+ Database.RethinkDB.Functions: (>=) :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: Asc :: String -> Order
+ Database.RethinkDB.Functions: Asc :: Key -> Order
- Database.RethinkDB.Functions: Desc :: String -> Order
+ Database.RethinkDB.Functions: Desc :: Key -> Order
- Database.RethinkDB.Functions: append :: (HasValueType a ArrayType, HasValueType b x) => a -> b -> ArrayExpr
+ Database.RethinkDB.Functions: append :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: asArray :: ToExpr e => e -> ArrayExpr
+ Database.RethinkDB.Functions: asArray :: Expr x => x -> ReQL
- Database.RethinkDB.Functions: avg :: String -> MapReduce ObjectType ArrayType ArrayType NumberType
+ Database.RethinkDB.Functions: avg :: Expr s => s -> ReQL
- Database.RethinkDB.Functions: between :: (ToJSON a, ToStream e, ObjectType HasToStreamValueOf e) => (Maybe a) -> (Maybe a) -> e -> Expr (ExprType e)
+ Database.RethinkDB.Functions: between :: (Expr left, Expr right, Expr seq) => Key -> left -> right -> seq -> ReQL
- Database.RethinkDB.Functions: concatMap :: (ToMapping m, (MappingTo m) ~ ArrayType, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (StreamType False t)
+ Database.RethinkDB.Functions: concatMap :: (Expr a, Expr b) => (ReQL -> b) -> a -> ReQL
- Database.RethinkDB.Functions: distinct :: (ToStream e, v HasToStreamValueOf e) => e -> Expr (StreamType False v)
+ Database.RethinkDB.Functions: distinct :: Expr s => s -> ReQL
- Database.RethinkDB.Functions: drop :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
+ Database.RethinkDB.Functions: drop :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: eqJoin :: (ToStream a, ObjectType HasToStreamValueOf a, ToExpr b, ExprType b ~ ExprType Selection) => a -> String -> b -> Expr (StreamType False ObjectType)
+ Database.RethinkDB.Functions: eqJoin :: (Expr a, Expr b) => Key -> a -> Key -> b -> ReQL
- Database.RethinkDB.Functions: error :: ExprTypeIsView t ~ False => String -> Expr t
+ Database.RethinkDB.Functions: error :: Expr s => s -> ReQL
- Database.RethinkDB.Functions: filter :: (ToMapping m, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (ExprType e)
+ Database.RethinkDB.Functions: filter :: (Expr predicate, Expr seq) => predicate -> seq -> ReQL
- Database.RethinkDB.Functions: forEach :: (ToStream a, v HasToStreamValueOf a) => a -> (ValueExpr v -> WriteQuery b) -> WriteQuery ()
+ Database.RethinkDB.Functions: forEach :: (Expr s, Expr a) => s -> (ReQL -> a) -> ReQL
- Database.RethinkDB.Functions: groupBy :: (ToStream e, ObjectType HasToStreamValueOf e) => [String] -> MapReduce ObjectType b c d -> e -> Expr (StreamType False d)
+ Database.RethinkDB.Functions: groupBy :: (Expr group, Expr reduction, Expr seq) => (ReQL -> group) -> (ReQL -> reduction) -> seq -> ReQL
- Database.RethinkDB.Functions: if' :: (ToValue e, ToValueType (ExprType e) ~ BoolType, ToExpr a, ExprTypeNoView (ExprType a) ~ x, ToExpr b, ExprTypeNoView (ExprType b) ~ x, ExprTypeIsView x ~ False) => e -> a -> b -> Expr x
+ Database.RethinkDB.Functions: if' :: (Expr a, Expr b, Expr c) => a -> b -> c -> ReQL
- Database.RethinkDB.Functions: innerJoin :: (ToStream a, l HasToStreamValueOf a, ToStream b, r HasToStreamValueOf b) => a -> b -> (ValueExpr l -> ValueExpr r -> BoolExpr) -> Expr (StreamType False ObjectType)
+ Database.RethinkDB.Functions: innerJoin :: (Expr a, Expr b, Expr c) => (ReQL -> ReQL -> c) -> a -> b -> ReQL
- Database.RethinkDB.Functions: js :: String -> Expr (ValueType any)
+ Database.RethinkDB.Functions: js :: Javascript r => String -> r
- Database.RethinkDB.Functions: length :: (ToExpr e, Sequence (ExprType e)) => e -> NumberExpr
+ Database.RethinkDB.Functions: length :: Expr a => a -> ReQL
- Database.RethinkDB.Functions: map :: (ToMapping m, ToStream e, MappingFrom m HasToStreamValueOf e) => m -> e -> Expr (StreamType False (MappingTo m))
+ Database.RethinkDB.Functions: map :: (Expr a, Expr b) => (ReQL -> b) -> a -> ReQL
- Database.RethinkDB.Functions: merge :: (ToExpr a, ExprType a ~ ValueType ObjectType, ToExpr b, ExprType b ~ ValueType ObjectType) => a -> b -> ObjectExpr
+ Database.RethinkDB.Functions: merge :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: mod :: HaveValueType a b NumberType => a -> b -> NumberExpr
+ Database.RethinkDB.Functions: mod :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: not :: HasValueType a BoolType => a -> BoolExpr
+ Database.RethinkDB.Functions: not :: Expr a => a -> ReQL
- Database.RethinkDB.Functions: orderAttr :: Order -> String
+ Database.RethinkDB.Functions: orderAttr :: Order -> Key
- Database.RethinkDB.Functions: orderBy :: (ToOrder o, ToStream e, a HasToStreamValueOf e) => [o] -> e -> Expr (StreamType (ExprIsView e) a)
+ Database.RethinkDB.Functions: orderBy :: Expr s => [Order] -> s -> ReQL
- Database.RethinkDB.Functions: outerJoin :: (ToStream a, l HasToStreamValueOf a, ToStream b, r HasToStreamValueOf b) => a -> b -> (ValueExpr l -> ValueExpr r -> BoolExpr) -> Expr (StreamType False ObjectType)
+ Database.RethinkDB.Functions: outerJoin :: (Expr a, Expr b, Expr c) => (ReQL -> ReQL -> c) -> a -> b -> ReQL
- Database.RethinkDB.Functions: pluck :: (ToStream e, ObjectType HasToStreamValueOf e) => [String] -> e -> Expr (StreamType False ObjectType)
+ Database.RethinkDB.Functions: pluck :: Expr o => [ReQL] -> o -> ReQL
- Database.RethinkDB.Functions: reduce :: (ToValue z, ToValueType (ExprType z) ~ a, ToStream e, b HasToStreamValueOf e, ToExpr c, ExprIsView c ~ False) => e -> z -> (ValueExpr a -> ValueExpr b -> c) -> Expr (ExprType c)
+ Database.RethinkDB.Functions: reduce :: (Expr base, Expr seq, Expr a) => (ReQL -> ReQL -> a) -> base -> seq -> ReQL
- Database.RethinkDB.Functions: slice :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType, ToExpr m, ExprType m ~ ValueType NumberType) => e -> n -> m -> Expr (StreamType (ExprIsView e) t)
+ Database.RethinkDB.Functions: slice :: (Expr a, Expr b, Expr c) => a -> b -> c -> ReQL
- Database.RethinkDB.Functions: sum :: String -> MapReduce ObjectType NumberType NumberType NumberType
+ Database.RethinkDB.Functions: sum :: Expr s => s -> ReQL
- Database.RethinkDB.Functions: take :: (ToStream e, t HasToStreamValueOf e, ToExpr n, ExprType n ~ ValueType NumberType) => e -> n -> Expr (StreamType (ExprIsView e) t)
+ Database.RethinkDB.Functions: take :: (Expr a, Expr b) => a -> b -> ReQL
- Database.RethinkDB.Functions: without :: (ToStream e, ObjectType HasToStreamValueOf e) => [String] -> e -> Expr (StreamType False ObjectType)
+ Database.RethinkDB.Functions: without :: Expr o => [ReQL] -> o -> ReQL

Files

Database/RethinkDB.hs view
@@ -1,100 +1,113 @@---- | RethinkDB client library for Haskell--- --- Modelled upon the official Javascript and Python API: <http://www.rethinkdb.com/api/>--- +-- | Haskell client driver for RethinkDB +--+-- Based upon the official Javascript, Python and Ruby API: <http://www.rethinkdb.com/api/>+-- -- /How to use/---  --- >>> import Database.RethinkDB--- >>> import qualified Database.RethinkDB.Functions as R+--+-- >>> {-# LANGUAGE OverloadedStrings #-}+-- >>> import Database.RethinkDB as R  module Database.RethinkDB (-     -- * Accessing RethinkDB-  +   RethinkDBHandle,-  openConnection,-  closeConnection, +  connect,+  close,   use,-  run, runMaybe, runEither, runRaw, runJSON, runBatch,-  next, collect, resultsError,-  +  run, run', runOpts,+  next, collect,+  Cursor,+  Response,+  Result(..),+  RethinkDBError(..),+  SuccessCode(..),+  ErrorCode(..),+   -- * Manipulating databases-  +   Database(..),-  db, dbCreate, dbDrop, dbList, -  +  db, dbCreate, dbDrop, dbList,+   -- * Manipulating Tables-  -  Table(..), tablePrimaryAttr, TableCreateOptions(..),++  Table(..), TableCreateOptions(..),   table, tableCreate, tableDrop, tableList,-  +  indexCreate, indexDrop, indexList,+   -- * Writing data-  -  Document(..), -  insert, insertMany, upsert, upsertMany,++  insert, upsert,   update, replace, delete,-  +  returnVals,+   -- * Selecting data-  -  get, filter', between,-  ++  get, filter, between, getAll,+   -- * Joins-  -  innerJoin, outerJoin, eqJoin, zip',-  ++  innerJoin, outerJoin, eqJoin, mergeRightLeft,+   -- * Transformations-  -  map', concatMap', orderBy, skip, limit,-  slice, nth, pluck, without, union',++  map, withFields, concatMap, drop, take,+  (!!), slice,+  orderBy,  Order(..),+  indexesOf, isEmpty, (++), sample,      -- * Aggregation-  -  reduce, count, distinct, groupedMapReduce, groupBy',-  -  -- * Reductions-  -  count', sum', avg,-  ++  reduce, reduce1, distinct, groupBy, member,++  -- * Aggregators++  length, sum, avg,+   -- * Document manipulation++  pluck, without,+  merge, append,+  prepend, (\\),+  setInsert, setUnion, setIntersection, setDifference,+  (!), hasFields,+  insertAt, spliceAt, deleteAt, changeAt, keys,++  -- * Math and logic++  (+), (-), (*), (/), mod, (&&), (||),+  (==), (!=), (>), (<), (<=), (>=), not,++  -- * String manipulation   -  pick, unpick, merge, append, (!), (!?),+  (=~),   -  -- * Operators+  -- * Dates and times   -  concat,-  add, sub, mul, div', mod, and', or',-  eq, ne, gt, ge, lt, le, not',+  UTCTime, ZonedTime,+  now, time, epochTime, iso8601, inTimezone, during,+  timezone, date, timeOfDay, year, month, day, dayOfWeek, dayOfYear, hours, minutes, seconds,+  toIso8601, toEpochTime,      -- * Control structures-  -  bind, let', var, if', forEach, error', js, jsfun,-  -  -- * Sequence conversion-  -  streamToArray, arrayToStream, asArray, -  -- * Short constructors-  -  Obj, Attribute(..), obj, str, nil,-  -  -- * Types and type classes+  apply, Javascript(js), if', forEach, error,+  handle, Expr(..), coerceTo,+  asArray, asString, asNumber, asObject, asBool,+  typeOf, info, json,   -  Query, ToQuery(..),-  ValueTypeKind(..), ExprTypeKind(..),-  ExprIsView, ExprValueType, Expr(..), ToExpr(..), ToValue(..),-  HasValueType, HaveValueType,-  NumberExpr, BoolExpr, ObjectExpr, ArrayExpr, StringExpr, ValueExpr,-  NumberStream, BoolStream, ObjectStream, ArrayStream, StringStream, Selection,-  CanCompare,-  Order(..), ToOrder(..),-  Sequence(..),-  Mapping(..), ToMapping(..),-  Results+  -- * Helpers++  Obj(..), Object, Attribute(..), str, num, (.), (#),+  def+   ) where  import Prelude () -import Database.RethinkDB.Types+import Database.RethinkDB.ReQL+import Database.RethinkDB.Network+import Database.RethinkDB.Objects import Database.RethinkDB.Driver import Database.RethinkDB.Functions+import Database.RethinkDB.Time+import Data.Default
Database/RethinkDB/Driver.hs view
@@ -1,1224 +1,89 @@-{-# LANGUAGE OverloadedStrings, KindSignatures, DataKinds, MultiParamTypeClasses, -             TypeFamilies, ExistentialQuantification, FlexibleInstances, -             ConstraintKinds, FlexibleContexts, UndecidableInstances, -             PolyKinds, FunctionalDependencies, GADTs, ScopedTypeVariables, -             RankNTypes, RecordWildCards #-}---- | The core of the haskell client library for RethinkDB--module Database.RethinkDB.Driver where--import {-# SOURCE #-} Database.RethinkDB.Functions-import Database.RethinkDB.Types--import Control.Arrow-import Data.Aeson.Types (parseMaybe)-import Data.String-import Data.Typeable-import Data.Data-import GHC.Prim--import qualified Database.RethinkDB.Internal.Types as QL-import qualified Database.RethinkDB.Internal.Query_Language.Response as QLResponse-import qualified Database.RethinkDB.Internal.Query_Language.Query as QLQuery-import qualified Database.RethinkDB.Internal.Query_Language.VarTermTuple as QLVarTermTuple-import qualified Database.RethinkDB.Internal.Query_Language.Predicate as QLPredicate-import qualified Database.RethinkDB.Internal.Query_Language.Builtin as QLBuiltin-import qualified Database.RethinkDB.Internal.Query_Language.ReadQuery as QLReadQuery-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery as QLWriteQuery-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as QLMapping-import qualified Database.RethinkDB.Internal.Query_Language.Term as QL (type')-import qualified Database.RethinkDB.Internal.Query_Language.MetaQuery.CreateTable as QLCreateTable--import Text.ProtocolBuffers.Basic hiding (Default)-import Text.ProtocolBuffers.WireMessage--import System.IO (Handle, hClose)-import Network--import Data.List-import Control.Monad.State as S-import qualified Data.HashMap.Strict as HM-import Data.Default-import qualified Data.Attoparsec.Lazy as Attoparsec-import Data.Foldable (toList)-import qualified Data.Text as T-import Data.Aeson-import qualified Data.Aeson.Parser (value)-import qualified Data.Sequence as Seq-import Data.Monoid-import Data.Maybe-import Data.ByteString.Lazy (pack, unpack, hPut, hGet)-import qualified Data.ByteString.Lazy as B-import Data.IORef-import Data.Bits---- * Network---- | A connection to the database server-data RethinkDBHandle = RethinkDBHandle {-  rdbHandle :: Handle, -  rdbToken :: IORef Int64, -- ^ The next token to use-  rdbDatabase :: Database  -- ^ When no database is specified, this one will be used-  }---- | Create a new connection to the database server--- --- /Example:/ connect using the default port (28015) and specifying the--- default database for all queries.--- --- >>> h <- openConnection "localhost" Nothing (Just "test")--openConnection :: HostName -> Maybe PortID -> Maybe String -> IO RethinkDBHandle-openConnection host port mdb = do-  h <- connectTo host (fromMaybe (PortNumber 28015) port)-  hPut h initialMessage-  r <- newIORef 1-  -- db' <- maybe (fmap head $ run (RethinkDBHandle h r (Database "")) $ dbList) (return . Database) mdb-  let db' = Database $ fromMaybe "" mdb-  return (RethinkDBHandle h r db')-  where initialMessage = packUInt 0xaf61ba35---- | Set the default connection--- --- The new handle is an alias for the old one. Calling closeConnection on either one--- will close both.--- --- >>> let h' = h `use` (db "players")--use :: RethinkDBHandle -> Database -> RethinkDBHandle-use h db' = h { rdbDatabase = db' }---- | Close an open connection--- --- >>> closeConnection h--closeConnection :: RethinkDBHandle -> IO ()-closeConnection (RethinkDBHandle h _ _) = hClose h---- | Receive a fixed amoutn of data-recvAll :: RethinkDBHandle -> Int -> IO ByteString-recvAll (RethinkDBHandle h _ _) n = hGet h n---- | Send a bytestring-sendAll :: RethinkDBHandle -> ByteString -> IO ()-sendAll (RethinkDBHandle h _ _) s = hPut h s---- | Get a request token and increment the token counter-getNewToken :: RethinkDBHandle -> IO Int64-getNewToken (RethinkDBHandle _ r _) = atomicModifyIORef r $ \t -> (t + 1, t)--data ErrorCode = ErrorBrokenClient-               | ErrorBadQuery-               | ErrorRuntime-               | ErrorNetwork--instance Show ErrorCode where-  show ErrorBrokenClient = "broken client error"-  show ErrorBadQuery = "malformed query error"-  show ErrorRuntime = "runtime error"-  show ErrorNetwork = "error talking to server"--data SuccessCode = SuccessEmpty-                 | SuccessJson-                 | SuccessPartial-                 | SuccessStream-                 deriving Show---- | The raw response to a query-data Response = ErrorResponse {-  errorCode :: ErrorCode,-  errorMessage :: String,-  errorBacktrace :: [String]-  } | SuccessResponse {-  successCode :: SuccessCode,-  successString :: [B.ByteString]-  }--instance Show Response where-  show ErrorResponse {..} = show errorCode ++ ": " ++-                            show errorMessage ++ " (" ++-                            showBacktrace errorBacktrace ++ ")"-  show SuccessResponse {..} = show successCode ++ ": " ++ show successString--convertResponse :: Either String QL.Response -> Response-convertResponse (Left s) = ErrorResponse ErrorNetwork s []-convertResponse (Right QL.Response {..}) = case status_code of-  QL.SUCCESS_EMPTY   -> SuccessResponse SuccessEmpty   r-  QL.SUCCESS_JSON    -> SuccessResponse SuccessJson    r-  QL.SUCCESS_PARTIAL -> SuccessResponse SuccessPartial r-  QL.SUCCESS_STREAM  -> SuccessResponse SuccessStream  r-  QL.BROKEN_CLIENT   -> ErrorResponse ErrorBrokenClient e bt-  QL.BAD_QUERY       -> ErrorResponse ErrorBadQuery     e bt-  QL.RUNTIME_ERROR   -> ErrorResponse ErrorRuntime      e bt-  where bt = fromMaybe [] $ fmap (map uToString . toList . QL.frame) backtrace-        r = map utf8 $ toList response-        e = fromMaybe "error" $ fmap uToString error_message--showBacktrace :: [String] -> String-showBacktrace [] = "query"-showBacktrace bt = ("in " ++ ) . concat . (++ [" query"]) .-                   intersperse " " . map f . reverse $ bt-  where f x = x ++ " in"---- | Execute a raw protobuffer query and return the raw response-runQLQuery :: RethinkDBHandle -> QL.Query -> IO Response-runQLQuery h query = do-  let queryS = messagePut query-  sendAll h $ packUInt (fromIntegral $ B.length queryS) <> queryS-  fmap convertResponse $ readResponse (QLQuery.token query)-  -  where readResponse t = do-          header <- recvAll h 4-          responseS <- recvAll h (unpackUInt header)-          let eResponse = messageGet responseS-          case eResponse of-            Left errMsg -> return $ Left errMsg-            Right (response, rest)-              | B.null rest ->-                (case QLResponse.token response of-                  n | n == t -> return $ Right response-                    | n > t -> return $ Left "RethinkDB: runQLQuery: invalid response token"-                    | otherwise -> readResponse t)-              | otherwise -> return $ Left "RethinkDB: runQLQuery: invalid reply length"---- * CRUD---- | A database, referenced by name-data Database = Database {-  databaseName :: String-  } deriving (Eq, Ord)--instance Show Database where-  show (Database d) = show d---- | Create a Database reference-db :: String -> Database-db s = Database s---- | Create a database on the server-dbCreate :: String -> Query False Database-dbCreate db_name = Query-  (metaQuery $ return $ QL.MetaQuery QL.CREATE_DB (Just $ uFromString db_name) Nothing Nothing)-  (const $ Right $ Database db_name)---- | Drop a database-dbDrop :: Database -> Query False ()-dbDrop (Database name) = Query-  (metaQuery $ return $ QL.MetaQuery QL.DROP_DB (Just $ uFromString name) Nothing Nothing)-  (const $ Right ())---- | List the databases on the server--- --- >>> run h $ dbList--- [test, dev, prod]--dbList :: Query False [Database]-dbList = Query-  (metaQuery $ return $ QL.MetaQuery QL.LIST_DBS Nothing Nothing Nothing)-  (maybe (Left "error") Right . sequence . map (fmap Database . convert))---- | Options used to create a table-data TableCreateOptions = TableCreateOptions {-  tableDataCenter :: Maybe String,-  tableCacheSize :: Maybe Int64-  }--instance Default TableCreateOptions where-  def = TableCreateOptions Nothing Nothing---- | A table description-data Table = Table {-  tableDatabase :: Maybe Database, -- ^ when Nothing, use the rdbDatabase-  tableName :: String,-  _tablePrimaryAttr :: Maybe String -- ^ when Nothing, "id" is used-  } deriving (Eq, Ord)--instance Show Table where-  show (Table db' nam pa) =-    maybe "" (\(Database d) -> d++".") db' ++ nam ++ maybe "" (\x -> "{"++x++"}") pa--tablePrimaryAttr :: Table -> String-tablePrimaryAttr = fromMaybe (uToString defaultPrimaryAttr) . _tablePrimaryAttr---- | "id"-defaultPrimaryAttr :: Utf8-defaultPrimaryAttr = uFromString "id"---- | Create a simple table refence with no associated database or primary key--- --- >>> table "music"--- --- Another way to create table references is to use the Table constructor:--- --- >>> Table (Just "mydatabase") "music" (Just "tuneid")--table :: String -> Table-table n = Table Nothing n Nothing---- | Create a table on the server--- --- @def@ can be imported from Data.Default--- --- >>> t <- run h $ tableCreate (table "fruits") def--tableCreate :: Table -> TableCreateOptions -> Query False Table-tableCreate (Table mdb table_name primary_key)-  (TableCreateOptions datacenter cache_size) = Query-  (metaQuery $ do -      curdb <- activeDB-      let create = defaultValue {-        QLCreateTable.datacenter = fmap uFromString datacenter,-        QLCreateTable.table_ref = QL.TableRef (uFromString $ databaseName $ fromMaybe curdb mdb)-                                  (uFromString table_name) Nothing, -        QLCreateTable.primary_key = fmap uFromString primary_key,-        QLCreateTable.cache_size = cache_size-        }-      return $ QL.MetaQuery QL.CREATE_TABLE Nothing (Just create) Nothing)-               (const $ Right $ Table mdb table_name primary_key)---- | Drop a table-tableDrop :: Table -> Query False ()-tableDrop tbl = Query-  (metaQuery $ do-      ref <- tableRef tbl-      return $ QL.MetaQuery QL.DROP_TABLE Nothing Nothing $ Just $ ref)-  (const $ Right ())---- | List the tables in a database-tableList :: Database -> Query False [Table]-tableList (Database name) = Query -  (metaQuery $ return $ -    QL.MetaQuery QL.LIST_TABLES (Just $ uFromString name) Nothing Nothing)-  (maybe (Left "error") Right . sequence .-   map (fmap (\x -> Table (Just (Database name)) x Nothing) . convert))---- | Get the primary key of the table as a Utf8, or "id" if there is none-uTableKey :: Table -> Utf8-uTableKey (Table _ _ mkey) = fromMaybe defaultPrimaryAttr $ fmap uFromString mkey---- | A reference to a document-data Document = Document {-  documentTable :: Table,-  documentKey :: Value-  } deriving (Eq)--instance Show Document where-  show (Document t k) = show t ++ "[" ++ show k ++ "]"---- | Get a document by primary key-get :: (ToExpr e, ExprType e ~ StreamType True ObjectType, ToValue k) =>-       e -> k -> ObjectExpr-get e k = Expr $ do-  (vw, _) <- exprV e-  let tbl@(Table _ _ mattr) = viewTable vw-  ref <- tableRef tbl-  key <- value k-  withView NoView $ return defaultValue {-    QL.type' = QL.GETBYKEY,-    QL.get_by_key = Just $ QL.GetByKey ref (fromMaybe defaultPrimaryAttr $-                                            fmap uFromString mattr) key-    }--insert_or_upsert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) =>-                    Table -> [a] -> Bool -> WriteQuery [Document]-insert_or_upsert tbl array overwrite = WriteQuery-  (do ref <- tableRef tbl-      as <- mapM value array-      let write = defaultValue {-          QLWriteQuery.type' = QL.INSERT,-          QL.insert = Just $ QL.Insert ref-                      (Seq.fromList $ as) (Just overwrite) }-      return $ write)-  (whenSuccess "generated_keys" $ \keys -> Right $ map (\doc -> Document tbl doc) keys)---- | Insert a document into a table--- --- >>> d <- run h $ insert t (object ["name" .= "banana", "color" .= "red"])--insert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) =>-          Table -> a -> WriteQuery Document-insert tb a = fmap head $ insert_or_upsert tb [a] False---- | Insert many documents into a table-insertMany :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) =>-              Table -> [a] -> WriteQuery [Document]-insertMany tb a = insert_or_upsert tb a False---- | Insert a document into a table, overwriting a document with the---   same primary key if one exists.--upsert :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) =>-          Table -> a -> WriteQuery Document-upsert tb a = fmap head $ insert_or_upsert tb [a] True---- | Insert many documents into a table, overwriting any existing documents ---   with the same primary key.-upsertMany :: (ToValue a, ToValueType (ExprType a) ~ ObjectType) =>-              Table -> [a] -> WriteQuery [Document]-upsertMany tb a = insert_or_upsert tb a True---- | Update a table--- --- >>> t <- run h $ tableCreate (table "example") def--- >>> run h $ insertMany t [object ["a" .= 1, "b" .= 11], object ["a" .= 2, "b" .= 12]]--- >>> run h $ update t (object ["b" .= 20])--- >>> run h $ t--update :: (ToExpr sel, ExprType sel ~ StreamType True out, ToMapping map,-           MappingFrom map ~ out, MappingTo map ~ ObjectType) =>-          sel -> map -> WriteQuery ()-update view m = WriteQuery-  (do mT <- mapping m-      write <- case toExpr view of-        Expr _ -> do viewT <- expr view-                     return defaultValue {-                       QLWriteQuery.type' = QL.UPDATE,-                       QL.update = Just $ QL.Update viewT mT }-        SpotExpr (Document tbl@(Table _ _ k) d) -> do-          ref <- tableRef tbl-          return $ defaultValue {-            QLWriteQuery.type' = QL.POINTUPDATE,-            QL.point_update = Just $ QL.PointUpdate ref-                              (fromMaybe defaultPrimaryAttr $ fmap uFromString k)-                              (toJsonTerm d) mT }-      return write)-  (whenSuccess_ ())---- | Replace documents in a table-replace :: (ToExpr sel, ExprIsView sel ~ True, ToJSON a) => sel -> a -> WriteQuery ()-replace view a = WriteQuery-  (do fun <- mapping (toJSON a)-      write <- case toExpr view of-        Expr f -> do-          (_, e) <- f-          return defaultValue {-            QLWriteQuery.type' = QL.MUTATE,-            QL.mutate = Just $ QL.Mutate e fun }-        SpotExpr (Document tbl@(Table _ _ k) d) -> do-          ref <- tableRef tbl-          return defaultValue {-            QLWriteQuery.type' = QL.POINTMUTATE,-            QL.point_mutate = Just $ QL.PointMutate ref-                              (fromMaybe defaultPrimaryAttr $ fmap uFromString k)-                              (toJsonTerm d) fun }-      return write)-  (whenSuccess_ ())---- | Delete one or more documents from a table-delete :: (ToExpr sel, ExprIsView sel ~ True) => sel -> WriteQuery ()-delete view = WriteQuery-  (do write <- case toExpr view of-          Expr f -> do-            (_, ex) <- f-            return defaultValue {-              QLWriteQuery.type' = QL.DELETE,-              QL.delete = Just $ QL.Delete ex }-          SpotExpr (Document tbl@(Table _ _ k) d) -> do-            ref <- tableRef tbl-            return defaultValue {-              QLWriteQuery.type' = QL.POINTDELETE,-              QL.point_delete = Just $ QL.PointDelete ref-                              (fromMaybe defaultPrimaryAttr $ fmap uFromString k)-                              (toJsonTerm d) }-      return write)-  (whenSuccess_ ())---- * Queries---- | A query returning a-data Query (b :: Bool) a where-  Query :: { _queryBuild :: QueryM QL.Query, -             _queryExtract :: [Value] -> Either String a } -> Query False a-  ViewQuery ::  { _viewQueryBuild :: QueryM (Table, QL.Query),-                  _viewQueryExtract :: [(Document, Value)] -> Either String a }-                -> Query True a--data WriteQuery a = WriteQuery {-  writeQueryBuild :: QueryM QL.WriteQuery,-  writeQueryExtract :: [Value] -> Either String a-  }--queryBuild :: Query w a -> QueryM (MaybeView w, QL.Query)-queryBuild (Query b _) = fmap ((,) NoView) b-queryBuild (ViewQuery b _) = fmap (first ViewOf) b--queryExtract :: Query w a -> MaybeView w -> [Value] -> Either String a-queryExtract (Query _ e)     _            vs = e vs-queryExtract (ViewQuery _ e) (ViewOf tbl) vs = e =<< mapM (addDoc tbl) vs-queryExtract _ _ _ = error "GHC was right, this branch is reachable!"--instance Functor (Query w) where-  fmap f (Query a g) = Query a (fmap f . g)-  fmap f (ViewQuery a g) = ViewQuery a (fmap f . g)--instance Functor WriteQuery where-  fmap f (WriteQuery a g) = WriteQuery a (fmap f . g)---type family If (p :: Bool) (a :: k) (b :: k) :: k-type instance If True  a b = a-type instance If False a b = b----- | Convert things like tables and documents into queries-class ToBuildQuery a where-  type BuildViewQuery a :: Bool-  buildQuery :: a -> ([If (BuildViewQuery a)-                       (Document, Value) Value]-                      -> Either String b) -> Query (BuildViewQuery a) b--class ToBuildQuery a => ToQuery a b | a -> b where-  toQuery :: a -> Query (BuildViewQuery a) b--instance ToBuildQuery (Query w a) where-  type BuildViewQuery (Query w a) = w-  buildQuery (Query b _) = Query b-  buildQuery (ViewQuery b _) = ViewQuery b--instance ToQuery (Query w a) a where-  toQuery q = q--instance ToBuildQuery (WriteQuery a) where-  type BuildViewQuery (WriteQuery a) = False-  buildQuery (WriteQuery b _) = Query $ do-    wq <- b-    tok <- getToken-    return $ defaultValue { QLQuery.type' = QL.WRITE, QLQuery.token = tok, -                            QLQuery.write_query = Just $ wq }  --instance ToQuery (WriteQuery a) a where-  toQuery w@(WriteQuery _ e) = buildQuery w e--instance ToBuildQuery Table where-  type BuildViewQuery Table = True-  buildQuery = buildQuery . toExpr--instance FromJSON a => ToQuery Table [(Document, a)] where-  toQuery tbl = buildQuery tbl $-    (maybe (Left "wrong response type") Right . mapMSnd convert)--mapMSnd :: Monad m => (a -> m b) -> [(c,a)] -> m [(c,b)]-mapMSnd f = mapM $ \(a,b) -> liftM ((,) a) (f b)--instance ToBuildQuery Document where-  type BuildViewQuery Document = True-  buildQuery = buildQuery . toExpr--instance FromJSON a => ToQuery Document a where-  toQuery doc = buildQuery doc $-    maybe (Left "empty response") Right . ((convert . snd) <=< listToMaybe)--data Proxy t = Proxy--instance ToBuildQuery (Expr (StreamType False v)) where-  type BuildViewQuery (Expr (StreamType False v)) = False-  buildQuery = Query . fmap snd . exprToQLQuery--instance ExtractValue v a => ToQuery (Expr (StreamType False v)) [a] where-  toQuery e = buildQuery e $-              maybe (Left "cannot convert response") Right-              . extractListOf (Proxy :: Proxy v)--instance ToBuildQuery (Expr (StreamType True v)) where-  type BuildViewQuery (Expr (StreamType True v)) = True-  buildQuery = ViewQuery . fmap (first viewTable) . exprToQLQuery--instance ExtractValue v a => ToQuery (Expr (StreamType True v)) [(Document, a)] where-  toQuery e = exprViewQuery (maybe (Left "cannot convert response") Right . extract) e-    where extract = extractListOf (Proxy :: Proxy v)--instance ToBuildQuery (Expr (ValueType v)) where-  type BuildViewQuery (Expr (ValueType v)) = False-  buildQuery = Query . fmap snd . exprToQLQuery--instance ExtractValue v a => ToQuery (Expr (ValueType v)) a where-  toQuery e = buildQuery e $ -              maybe (Left "empty response")-                (maybe (Left "cannot convert response") Right .-                 extractValue (Proxy :: Proxy v))-              . listToMaybe--exprToQLQuery :: Expr t -> QueryM (MaybeView (ExprTypeIsView t), QL.Query)-exprToQLQuery e = do-  token <- getToken-  (vw, ex) <- exprV e-  return $ (,) vw $ QL.Query QL.READ token (-    Just $ defaultValue { QLReadQuery.term = ex }) Nothing Nothing--exprViewQuery :: (ExprTypeIsView t ~ True) =>-                 ([Value] -> Either String [a]) -> Expr t -> Query True [(Document, a)]-exprViewQuery c e = flip ViewQuery (\x -> fmap (zip $ map fst x) (c (map snd x))) $ do-  token <- getToken-  (ViewOf tbl, ex) <- exprV e-  return $ (,) tbl $ QL.Query QL.READ token (-    Just $ defaultValue { QLReadQuery.term = ex }) Nothing Nothing--extractListOf :: ExtractValue t a => Proxy t -> [Value] -> Maybe [a]-extractListOf p = sequence . map (extractValue p)--class ExtractValue t v | t -> v where-  extractValue :: Proxy t -> Value -> Maybe v--instance (Num a, FromJSON a) => ExtractValue NumberType a where extractValue _ = convert-instance ExtractValue BoolType Bool where extractValue _ = convert-instance FromJSON a => ExtractValue ObjectType a where extractValue _ = convert-instance FromJSON a => ExtractValue ArrayType a where extractValue _ = convert-instance (IsString a, FromJSON a) => ExtractValue StringType a where extractValue _ = convert-instance ExtractValue NoneType () where extractValue _ = const $ Just ()-instance FromJSON a => ExtractValue OtherValueType a where extractValue _ = convert---- | Run a query on the connection--- --- The return value depends on the type of the second argument.--- --- When the return value is polymorphic, type annotations may be required.--- --- >>> run h $ table "fruits" :: IO [(Document, Value)]--run :: ToQuery a v => RethinkDBHandle -> a -> IO v-run h q = do-  r <- runEither h q-  case r of-    Left e -> error e-    Right a -> return a---- | Run a query on the connection, returning (Left message) on error-runEither :: ToQuery a v => RethinkDBHandle -> a -> IO (Either String v)-runEither h q = case toQuery q of-  -- TODO: just call runBatch and get the resultsSeq-  query -> do-    tok <- getNewToken h-    let ((vw, qlq), _) = runQueryM (queryBuild query) $-                    QuerySettings tok (rdbDatabase h) initialVars False-    r <- runQLQuery h qlq-    return $ case r of-      ErrorResponse {} -> Left (show r)-      SuccessResponse _ strs -> queryExtract query vw =<<-       (maybe (Left "decode error") Right . sequence . map decodeAny $ strs)--addDoc :: Table -> Value -> Either String (Document, Value)-addDoc tbl x = do-  id' <- maybe (Left "missign primary key") Right $ getKey (tablePrimaryAttr tbl) x-  return (Document tbl id', x)-  where getKey k (Object o) = parseMaybe (.: str k) o-        getKey _ _ = Nothing---- | Run a query on the connection, returning Nothing on error-runMaybe :: ToQuery a v => RethinkDBHandle -> a -> IO (Maybe v)-runMaybe h = fmap (either (const Nothing) Just) . runEither h---- | Run a query on the connection and return the raw response-runRaw :: (ToBuildQuery q, JSONQuery (BuildViewQuery q)) =>-          RethinkDBHandle -> q -> IO Response-runRaw h q = do-  tok <- getNewToken h-  let ((_, qlq), _) = runQueryM (queryBuild (jsonQuery (buildQuery q))) $-                      QuerySettings tok (rdbDatabase h) initialVars False-  runQLQuery h qlq---- | Run a query on the connection and return the resulting JSON value-runJSON :: (JSONQuery (BuildViewQuery q), ToBuildQuery q) =>-           RethinkDBHandle -> q -> IO [Value]-runJSON h q = run h (jsonQuery (buildQuery q))--class JSONQuery (b :: Bool) where-  jsonQuery :: (forall a . ([If b (Document, Value) Value] -> Either String a) -> Query b a)-               -> Query b [Value]--instance JSONQuery False where-  jsonQuery f = f Right--instance JSONQuery True where-  jsonQuery f = f (Right . map snd)--data Results a = Results {-  resultsHandle :: IORef (Maybe (RethinkDBHandle, Int64)),-  resultsSeq :: IORef (Seq.Seq a),-  _resultsError :: IORef (Maybe String),-  resultsQueryView :: QueryViewPair [a]-  }--data QueryViewPair a where-  QueryViewPair :: Query w a -> MaybeView w -> QueryViewPair a---- | Run a query on the connection and a return a lazy result list--- --- >>> res <- runBatch h <- (arrayToStream [1,2,3] :: NumberStream)--- >>> next res--- Just 1--- >>> collect res--- [2,3]--runBatch :: ToQuery q [a] => RethinkDBHandle -> q -> IO (Results a)-runBatch h q = case toQuery q of-  query -> do-    tok <- getNewToken h-    let ((vw, qlq), _) = runQueryM (queryBuild query) $-                    QuerySettings tok (rdbDatabase h) initialVars False-    r <- runQLQuery h qlq-    let (han, seq', err) = queryExtractResponse query vw r h tok-    refHan <- newIORef han-    refSeq <- newIORef seq'-    refErr <- newIORef err-    return $ Results refHan refSeq refErr (QueryViewPair query vw)--queryExtractResponse ::-  Query w [a] -> MaybeView w -> Response -> RethinkDBHandle -> Int64-  -> (Maybe (RethinkDBHandle, Int64), Seq a, Maybe String)-queryExtractResponse query vw r h tok =-    case r of-      ErrorResponse {} -> (Nothing, Seq.fromList [], Just $ show r)-      SuccessResponse typ strs ->-        let rList = queryExtract query vw =<<-               (maybe (Left "decode error") Right . sequence . map decodeAny $ strs)-        in case rList of-          Left err -> (Nothing, Seq.fromList [], Just err)-          Right list ->-            let han = case typ of-                  SuccessPartial -> Just (h, tok)-                  SuccessStream -> Nothing-                  SuccessJson -> Nothing-                  SuccessEmpty -> Nothing-            in (han, Seq.fromList list, Nothing)---- | Read the next value from a lazy query. Fetch it from the server if needed.-next :: Results a -> IO (Maybe a)-next res = do-  seq' <- readIORef (resultsSeq res)-  case Seq.viewl seq' of-    car Seq.:< cdr -> do-      writeIORef (resultsSeq res) cdr-      return (Just car)-    Seq.EmptyL -> do-      mh <- readIORef (resultsHandle res)-      case (mh, resultsQueryView res) of-        (Nothing, _) -> return Nothing-        (Just (h, tok), (QueryViewPair query vw)) -> do-          resp <- runQLQuery h $ defaultValue {-            QLQuery.type' = QL.CONTINUE, QLQuery.token = tok }-          let (han, seq'', err) = queryExtractResponse query vw resp h tok-          writeIORef (resultsHandle res) han-          modifyIORef (resultsSeq res) (<> seq'')-          writeIORef (_resultsError res) err-          next res---- | Return all the results of a lazy query.-collect :: Results a -> IO [a]-collect r = do-  ma <- next r-  case ma of-    Nothing -> return []-    Just a -> fmap (a:) (collect r)---- | Get the last error from a lazy query.--- --- If both next and resultsError return Nothing, then--- all results have been fetched without error.--resultsError :: Results a -> IO (Maybe String)-resultsError = readIORef . _resultsError---- * Expressions---- | Can the Expr be written to? (updated or deleted)-type family ExprTypeIsView (expr :: ExprTypeKind) :: Bool-type instance ExprTypeIsView (StreamType w o) = w-type instance ExprTypeIsView (ValueType v) = False--type ExprIsView e = ExprTypeIsView (ExprType e)--type family ExprTypeNoView (t :: ExprTypeKind) :: ExprTypeKind-type instance ExprTypeNoView (StreamType b t) = StreamType False t-type instance ExprTypeNoView (ValueType t) = ValueType t---- | The type of the value of an Expr-type family ExprValueType expr :: ValueTypeKind-type instance ExprValueType (Expr (ValueType v)) = v-type instance ExprValueType (Expr (StreamType w v)) = v---- | The type of the stream of an Expr-type family ExprTypeStreamType (t :: ExprTypeKind) :: ValueTypeKind-type instance ExprTypeStreamType (StreamType w t) = t---- | An RQL expression-data Expr (t :: ExprTypeKind) where-  Expr :: QueryM (MaybeView (ExprIsView (Expr t)), QL.Term) -> Expr t-  SpotExpr :: Document -> Expr (StreamType True ObjectType)--mkExpr :: ExprIsView (Expr t) ~ False => QueryM QL.Term -> Expr t-mkExpr q = Expr $ fmap ((,) NoView) q--mkView :: ExprIsView (Expr t) ~ True => Table -> QueryM QL.Term -> Expr t-mkView t q = Expr $ fmap ((,) (ViewOf t)) q--viewKeyAttr :: MaybeView b -> Utf8-viewKeyAttr v = fromMaybe defaultPrimaryAttr $ fmap uFromString $-    case v of -      ViewOf (Table _ _ k) -> k-      NoView -> Nothing--viewTable :: MaybeView True -> Table-viewTable v = case v of ViewOf t -> t--data MaybeView (w :: Bool) where- NoView :: MaybeView False- ViewOf :: Table -> MaybeView True---- | Convert something into an Expr-class ToExpr (o :: *) where-  type ExprType o :: ExprTypeKind-  toExpr :: o -> Expr (ExprType o)---- | The result type of toValue-type family ToValueType (t :: ExprTypeKind) :: ValueTypeKind-type instance ToValueType (StreamType w t) = ArrayType-type instance ToValueType (ValueType t) = t---- | Convert something into a value Expr-class ToValue e where-  toValue :: e -> Expr (ValueType (ToValueType (ExprType e)))--type family FromMaybe (a :: k) (m :: Maybe k) :: k-type instance FromMaybe a Nothing = a-type instance FromMaybe a (Just b) = b--type HasToStreamValueOf a b = FromMaybe a (ToStreamValue b) ~ a--type ToStreamValue e = ToStreamTypeValue (ExprType e)--type family ToStreamTypeValue (t :: ExprTypeKind) :: Maybe ValueTypeKind-type instance ToStreamTypeValue (StreamType w t) = Just t-type instance ToStreamTypeValue (ValueType t) = Nothing--class ToExpr e => ToStream e where-  toStream :: e -> Expr (StreamType (ExprIsView e) (FromMaybe a (ToStreamValue e)))--instance ToExpr Document where-  type ExprType Document = StreamType True 'ObjectType-  toExpr doc = SpotExpr doc--instance ToValue Document where-  toValue = streamToArray--instance ToStream Document where-  toStream = toExpr--instance ToExpr Table where-  type ExprType Table = StreamType True ObjectType-  toExpr tbl = mkView tbl $ do-    ref <- tableRef tbl-    return defaultValue { -      QL.type' = QL.TABLE,-      QL.table = Just $ QL.Table ref }--instance ToValue Table where-  toValue = streamToArray-                                  -instance ToStream Table where-  toStream = toExpr--instance ToExpr (Expr t) where-  type ExprType (Expr t) = t-  toExpr e = e--instance ToValue (Expr (ValueType t)) where-  toValue e = e--instance ToValue (Expr (StreamType w t)) where-  toValue = streamToArray--instance ToStream (Expr (ValueType ArrayType)) where-  toStream = arrayToStream--instance ToStream (Expr (StreamType w t)) where-  toStream e = e--instance ToExpr Int where-  type ExprType Int = ValueType NumberType-  toExpr n = mkExpr $ return $ defaultValue {-    QL.type' = QL.NUMBER, QL.number = Just $ fromIntegral n }--instance ToValue Int where-  toValue = toExpr-  -instance ToExpr Integer where-  type ExprType Integer = ValueType NumberType-  toExpr n = mkExpr $ return $ defaultValue {-    QL.type' = QL.NUMBER, QL.number = Just $ fromInteger n }--instance ToValue Integer where-  toValue = toExpr--instance ToExpr Double where-  type ExprType Double = ValueType NumberType-  toExpr n = mkExpr $ return $ defaultValue {-    QL.type' = QL.NUMBER, QL.number = Just n }--instance ToValue Double where-  toValue = toExpr--instance ToExpr Char where-  type ExprType Char = ValueType StringType-  toExpr c = mkExpr $ return defaultValue {-    QL.type' = QL.STRING, QL.valuestring = Just $ uFromString [c] }--instance ToExpr T.Text where-  type ExprType T.Text = ValueType StringType-  toExpr s = mkExpr $ return defaultValue {-    QL.type' = QL.STRING, QL.valuestring = Just $ uFromString (T.unpack s) }--instance ToValue T.Text where-  toValue = toExpr--str :: String -> T.Text-str = T.pack--instance ToExpr a => ToExpr [a] where-  type ExprType [a] = ValueType ArrayType-  toExpr l = mkExpr $ do-    exs <- sequence $ map (expr . toExpr) l-    return defaultValue {-      QL.type' = QL.ARRAY, QL.array = Seq.fromList exs }--instance ToExpr a => ToValue [a] where-  toValue = toExpr--instance ToExpr a => ToStream [a] where-  toStream = arrayToStream . toExpr--instance ToExpr () where-  type ExprType () = ValueType NoneType-  toExpr () = mkExpr $ return $  defaultValue { QL.type' = QL.JSON_NULL }--instance ToValue () where-  toValue = toExpr--instance ToExpr Obj where-  type ExprType Obj = ValueType ObjectType-  toExpr (Obj o) = mkExpr $ do-    exs <- sequence $ map go o-    return defaultValue {-      QL.type' = QL.OBJECT, QL.object = Seq.fromList exs }-    where go (k := a) = do-            ex <- value a-            return QL.VarTermTuple {-              QLVarTermTuple.var = uFromString k, QLVarTermTuple.term = ex }--instance ToValue Obj where-  toValue = toExpr---- | Aliases for type constraints on expressions-type HasValueType a v = (ToValue a, ToValueType (ExprType a) ~ v)-type HaveValueType a b v = (HasValueType a v, HasValueType b v)---- | Simple aliases for different Expr types-type NumberExpr = Expr (ValueType NumberType)-type BoolExpr = Expr (ValueType BoolType)-type ObjectExpr = Expr (ValueType ObjectType)-type ArrayExpr = Expr (ValueType ArrayType)-type StringExpr = Expr (ValueType StringType)-type ValueExpr t = Expr (ValueType t)-type NumberStream = Expr (StreamType False NumberType)-type BoolStream = Expr (StreamType False BoolType)-type ArrayStream = Expr (StreamType False ArrayType)-type StringStream = Expr (StreamType False StringType)-type ObjectStream = Expr (StreamType False ObjectType)-type Selection = Expr (StreamType True ObjectType)---- | What values can be compared with eq, ne, lt, gt, le and ge-class CanCompare (a :: ValueTypeKind)-instance CanCompare NumberType-instance CanCompare StringType--instance Num (Expr (ValueType NumberType)) where-  (+) = add-  (-) = sub-  (*) = mul-  abs = jsfun "abs"-  signum = signum'-  fromInteger = toExpr--instance Fractional (Expr (ValueType NumberType)) where-  fromRational n = toExpr (fromRational n :: Double)-  (/) = div'---- | A sequence is either a stream or an array-class Sequence (e :: ExprTypeKind) where-  type SequenceType e (t :: ValueTypeKind) :: Constraint--instance Sequence (StreamType w t) where-  type SequenceType (StreamType w t) tt = t ~ tt--instance a ~ ArrayType => Sequence (ValueType a) where-  type SequenceType (ValueType a) t = ()---- | A list of String/Expr pairs-data Obj = Obj [Attribute]-data Attribute = forall e . (ToValue e) => String := e---- | Build an Obj-obj :: [Attribute] -> Obj-obj = Obj---- | Convert a stream into an array--streamToArray :: (ToExpr e, ExprType e ~ StreamType w t) => e -> Expr (ValueType ArrayType)-streamToArray = simpleOp QL.STREAMTOARRAY . return . expr---- | Convert an array into a stream-arrayToStream :: (ToExpr e, ExprType e ~ ValueType ArrayType) => e -> Expr (StreamType False t)-arrayToStream = simpleOp QL.ARRAYTOSTREAM . return . expr---- * Mappings---- | A mapping is a like single-parameter function-data Mapping (from :: ValueTypeKind) (to :: ValueTypeKind) =-  Mapping (QueryM QL.Mapping)---- | Convert objects into mappings-class ToMapping map where-  type MappingFrom map :: ValueTypeKind-  type MappingTo map :: ValueTypeKind-  toMapping :: map -> Mapping (MappingFrom map) (MappingTo map)--instance ToMapping Obj where-  type MappingFrom Obj = ObjectType-  type MappingTo Obj = ObjectType-  toMapping v = Mapping $ do -    ex <- expr v-    return $ defaultValue { QLMapping.body = ex }--instance ToMapping Value where-  type MappingFrom Value = ObjectType-  type MappingTo Value = ObjectType-  toMapping v = Mapping $ return $ defaultValue { QLMapping.body = toJsonTerm v }--instance (ToValue b, a ~ Expr (ValueType t)) => ToMapping (a -> b) where -  type MappingFrom (a -> b) = ExprValueType a-  type MappingTo (a -> b) = ToValueType (ExprType b)-  toMapping f = Mapping $ do-    v <- newVar-    ex <- value (f (var v))-    return $ defaultValue {-      QLMapping.arg = uFromString v,-      QLMapping.body = ex }--instance ToMapping (Expr (ValueType t)) where-  type MappingFrom (Expr (ValueType t)) = ObjectType-  type MappingTo (Expr (ValueType t)) = t-  toMapping e = Mapping $ do -    ex <- expr e-    return defaultValue { QLMapping.body = ex }---- * QueryM Monad--data QuerySettings = QuerySettings {-  _queryToken :: Int64,-  _queryDB :: Database,-  _queryVars :: [String],-  _queryUseOutdated :: Bool-  }--instance Default QuerySettings where-  def = QuerySettings 0 (db "") initialVars False--type QueryM = State QuerySettings--runQueryM :: QueryM a -> QuerySettings -> (a, QuerySettings)-runQueryM = runState--initialVars :: [String]-initialVars = concat $ zipWith (\n as -> map (++ (if n == 0 then "" else show n)) as)-              [0 :: Int ..] (map (map return) $ repeat ['a'..'z'])--getToken :: QueryM Int64-getToken = fmap _queryToken S.get--activeDB :: QueryM Database-activeDB = fmap _queryDB S.get--newVar :: QueryM String-newVar  = state $ \s -> let (x:xs) = _queryVars s in (x, s { _queryVars = xs} )--setUseOutdated :: ToExpr e => Bool -> e -> Expr (ExprType e)-setUseOutdated b e = Expr $ do-  state $ \s -> runQueryM (exprV e) s { _queryUseOutdated = b }---- * Utilities---- | Convert a protobuf Mapping into a Predicate-mappingToPredicate :: QL.Mapping -> QL.Predicate-mappingToPredicate (QL.Mapping arg body _1) = defaultValue {-  QLPredicate.arg = arg,-  QLPredicate.body = body-  }---- | Convert a table to a raw protobuf term-tableToTerm :: Table -> QueryM QL.Term-tableToTerm tbl = do-  ref <- tableRef tbl-  return $ defaultValue {-    QL.type' = QL.TABLE,-    QL.table = Just $ QL.Table ref }---- | Convert into a raw protobuf mapping-mapping :: ToMapping m => m -> QueryM QL.Mapping-mapping m = case toMapping m of Mapping f -> f---- | Convert an Expr to a term-expr ::  ToExpr e => e -> QueryM QL.Term-expr = fmap snd . exprV--exprV :: ToExpr e => e -> QueryM (MaybeView (ExprIsView e), QL.Term)-exprV e = case toExpr e of-  Expr f -> f-  SpotExpr (Document tbl@(Table _ _ mkey) d) -> do-    ref <- tableRef tbl-    return $ ((,) (ViewOf tbl)) defaultValue { -      QL.type' = QL.GETBYKEY,-      QL.get_by_key = Just $ QL.GetByKey ref-             (fromMaybe defaultPrimaryAttr $ fmap uFromString mkey)-             (toJsonTerm d) }---- | Convert a stream to a term-stream :: ToStream a => a -> QueryM QL.Term-stream = expr . toStream---- | Convert a value to a term-value :: ToValue a => a -> QueryM QL.Term-value = expr . toValue---- | build a raw protobuf Term-toJsonTerm :: ToJSON a => a -> QL.Term-toJsonTerm a = defaultValue {-  QL.type' = QL.JSON,-  QL.jsonstring = Just $ Utf8 (encode a)-  }---- | Test if a field is present in a json Value and return it-(.?) :: FromJSON a => Value -> String -> Maybe a-(.?) (Object h) k = toMaybe . fromJSON =<< HM.lookup (T.pack k) h-  where toMaybe (Success a) = Just a-        toMaybe _ = Nothing-(.?) _ _ = Nothing---- | Helper function to handle responses to a query-whenSuccess :: FromJSON a => String -> (a -> Either String b) -> [Value] -> Either String b-whenSuccess key f response = do-  info <- maybe (Left "invalid response") Right (convert =<< listToMaybe response)-  if info .? "errors" /= Just (0 :: Int)-    then maybe (Left "unknown error") Left $ info .? "first_error"-    else fromMaybe (Left "key missing in response") (fmap f (info .? key))---- | same as whenSuccess, but ignore the response when there is no error-whenSuccess_ :: b -> [Value] -> Either String b-whenSuccess_ b response = do-  info <- maybe (Left "invalid response") Right (convert =<< listToMaybe response)-  if info .? "errors" /= Just (0 :: Int)-    then maybe (Left "unknown error") Left $ info .? "first_error"-    else Right b---- | Like aeson's decode, but but works on numbers and strings, not only objects and arrays-decodeAny :: FromJSON a => ByteString -> Maybe a-decodeAny s =-  case Attoparsec.parse Data.Aeson.Parser.value s of-    Attoparsec.Done _ v -> convert v-    _          -> Nothing---- | Convert a JSON Value into another type-convert :: FromJSON a => Value -> Maybe a-convert v = case fromJSON v of-  Success a -> Just a-  _         -> Nothing---- | Extract the error message from a Response if there is an error--- | Help build meta queries-metaQuery :: QueryM QL.MetaQuery -> QueryM QL.Query-metaQuery q = do-  t <- getToken-  mq <- q-  return $ QL.Query QL.META t Nothing Nothing $ Just mq---- | Convert an int to a 4-byte bytestring-packUInt :: Int -> ByteString-packUInt n = pack $ map fromIntegral $ -               [n `mod` 256, (n `shiftR` 8) `mod` 256,-                (n `shiftR` 16) `mod` 256, (n `shiftR` 24) `mod` 256]---- | Convert a 4-bte byestring to an int-unpackUInt :: ByteString -> Int-unpackUInt s = case unpack s of-  [a,b,c,d] -> fromIntegral a .|.-               fromIntegral b `shiftL` 8 .|.-               fromIntegral c `shiftL` 16 .|.-               fromIntegral d `shiftL` 24-  _ -> error "unpackUInt: lengh is not 4"--op :: QL.BuiltinType -> QLBuiltin.Builtin-op o = defaultValue { QLBuiltin.type' = o }--apply :: QL.Builtin -> [QueryM QL.Term] -> QueryM QL.Term-apply o args = do-  a <- sequence args-  return $ defaultValue { QL.type' = QL.CALL, QL.call = Just $ QL.Call o (Seq.fromList a) }--rapply :: [QueryM QL.Term] -> QL.Builtin -> QueryM QL.Term-rapply = flip apply--simpleOp :: ExprIsView (Expr t) ~ False => QL.BuiltinType -> [QueryM QL.Term] -> Expr t-simpleOp o a = mkExpr $ apply (op o) a--withView :: MaybeView b -> QueryM QL.Term -> QueryM (MaybeView b, QL.Term)-withView v = fmap ((,) v)--primaryAttr :: (ToExpr e, ExprTypeIsView (ExprType e) ~ True) =>-               e -> String -> Expr (ExprType e)-primaryAttr e a = Expr $ do-  (ViewOf (Table mdb name _), ex) <- exprV e-  return (ViewOf (Table mdb name (Just a)), ex)--comparison :: ExprTypeIsView t ~ False => QL.Comparison -> [QueryM QL.Term] -> Expr t-comparison o a = mkExpr $ rapply a (op QL.COMPARE) { QL.comparison = Just o }---- | Build a protobuf TableRef object-tableRef :: Table -> QueryM QL.TableRef-tableRef (Table mdb tb _) = do-  curdb <- activeDB-  useOutdated <- fmap _queryUseOutdated S.get-  return $ QL.TableRef (uFromString $ databaseName $ fromMaybe curdb mdb)-    (uFromString tb) (Just useOutdated)--extractTerm :: ToExpr e => e -> QL.Term-extractTerm e = fst $ runQueryM (expr e) def--dumpExpr :: ToExpr e => e -> String-dumpExpr = dumpTermPart "" . extractTerm--dumpTermPart :: Data a => String -> a -> String-dumpTermPart p a = case dataTypeName (dataTypeOf a) of-  name | "Database.RethinkDB.Internal" `isPrefixOf` name ->-    showConstr (toConstr a) ++ maybeFields a-       | ".Utf8" `isSuffixOf` name ->-         show (uToString (fromJust $ cast a))-       | ".Double" `isSuffixOf` name ->-           show (fromJust $ cast a :: Double)-       | ".Seq" `isSuffixOf` name -> dumpSeq a -       | otherwise -> dataTypeName (dataTypeOf a) -- showConstr (toConstr a)-  where fieldValues t = gmapQ maybeDump t-        fields t = catMaybes $ zipWith (\x y -> fmap ((x ++ ": ") ++) y)-                   (constrFields (toConstr t)) (fieldValues t)-        maybeFields t = let f = fields t in if null f then ""-                        else " {\n" ++ p ++ concat (intersperse (",\n"++p) f) ++ " }"-        maybeDump :: Data a => a -> Maybe String-        maybeDump t = case showConstr (toConstr t) of-          "Nothing" -> Nothing-          "Just" -> Just $ head (gmapQ (dumpTermPart (p ++ "  ")) t)-          "empty" -> Nothing -- empty Seq-          "ExtField" -> Nothing-          _ -> Just $ dumpTermPart (p ++ "  ") t-        dumpSeq t = let elems :: Data a => a -> [String]-                        elems tt = case showConstr (toConstr tt) of -                          "empty" -> []-                          _ -> gmapQi 0 (dumpTermPart (p ++ "  ")) tt : gmapQi 1 elems tt-          in "[" ++ concat (intersperse ", " $ elems t) ++ "]"+module Database.RethinkDB.Driver (+  run,+  run',+  Result(..),+  runOpts,+  RunOptions(..),+  ) where++import Data.Aeson (Value, FromJSON, fromJSON)+import qualified Data.Aeson (Result(Error, Success))+import Control.Monad+import Control.Concurrent.MVar (MVar, takeMVar)+import Data.Sequence ((|>))++import Database.RethinkDB.Protobuf.Ql2.Query (Query(..))+import Database.RethinkDB.Protobuf.Ql2.Query.AssocPair (AssocPair(..))+import Database.RethinkDB.Protobuf.Ql2.Term as Term (Term(..))+import Database.RethinkDB.Protobuf.Ql2.Term.TermType+import Database.RethinkDB.Protobuf.Ql2.Datum as Datum+import Database.RethinkDB.Protobuf.Ql2.Datum.DatumType+import Text.ProtocolBuffers.Basic (uFromString, defaultValue)++import Database.RethinkDB.Network+import Database.RethinkDB.ReQL++-- | Per-query settings+data RunOptions =+  UseOutdated |+  NoReply |+  SoftDurability Bool++applyOption :: RunOptions -> Query -> Query+applyOption UseOutdated q = addQueryOption q "user_outdated" True+applyOption NoReply q = addQueryOption q "noreply" True+applyOption (SoftDurability b) q = addQueryOption q "soft_durability" b++addQueryOption :: Query -> String -> Bool -> Query+addQueryOption q k v = q {+  global_optargs = global_optargs q |> AssocPair (Just $ uFromString k) (Just boolTrue) }+  where+    boolTrue = defaultValue{+      Term.type' = Just DATUM, datum = Just defaultValue{+         Datum.type' = Just R_BOOL, r_bool = Just v } }++-- | Run a query with the given options+runOpts :: (Expr query, Result r) => RethinkDBHandle -> [RunOptions] -> query -> IO r+runOpts h opts t = do+  let (q, bt) = buildQuery (expr t) 0 (rdbDatabase h)+  let q' = foldr (fmap . applyOption) id opts q+  r <- runQLQuery h q' bt+  convertResult r++-- | Run a given query and return a Result+run :: (Expr query, Result r) => RethinkDBHandle -> query -> IO r+run h = runOpts h []++-- | Run a given query and return a Value+run' :: Expr query => RethinkDBHandle -> query -> IO [Value]+run' h t = do+  c <- run h t+  collect c++-- | Convert the raw query response into useful values+class Result r where+  convertResult :: MVar Response -> IO r++instance Result Response where+    convertResult = takeMVar++instance FromJSON a => Result (Cursor a) where+  convertResult r = fmap (fmap $ unsafe . fromJSON) $ makeCursor r+    where+      unsafe (Data.Aeson.Error e) = error e+      unsafe (Data.Aeson.Success a) = a++instance FromJSON a => Result [a] where+  convertResult = collect <=< convertResult+  +instance FromJSON a => Result (Maybe a) where+  convertResult r = do+    c <- convertResult r+    car <- next c+    case car of+      Nothing -> return Nothing+      Just a -> do+        cadr <- next c+        case cadr of+          Nothing -> return $ Just a+          Just _ -> return Nothing
− Database/RethinkDB/Driver.hs-boot
@@ -1,13 +0,0 @@-{-# LANGUAGE TypeFamilies, ConstraintKinds, DataKinds #-}-module Database.RethinkDB.Driver where-import Database.RethinkDB.Types-class ToExpr a-class ToValue e-type family ExprType a :: ExprTypeKind-type family ToValueType (t :: ExprTypeKind) :: ValueTypeKind-type HasValueType a v = (ToValue a, ToValueType (ExprType a) ~ v)-type HaveValueType a b v = (HasValueType a v, HasValueType b v)-data Expr (a :: ExprTypeKind)-type NumberExpr = Expr (ValueType NumberType)-type family ExprTypeIsView (expr :: ExprTypeKind) :: Bool-type ExprIsView e = ExprTypeIsView (ExprType e)
Database/RethinkDB/Functions.hs view
@@ -1,437 +1,399 @@-{-# LANGUAGE DataKinds, TypeFamilies, ConstraintKinds, FlexibleInstances, -             FlexibleContexts, TypeOperators, ViewPatterns #-}+{-# LANGUAGE FlexibleInstances, OverloadedStrings #-} +-- TODO: operator fixity+ -- | Functions from the ReQL (RethinkDB Query Language)  module Database.RethinkDB.Functions where -import Database.RethinkDB.Types-import Database.RethinkDB.Driver+import Data.Text (Text)+import Control.Monad.State+import Control.Applicative+import Data.Maybe -import Text.ProtocolBuffers.Basic hiding (Default)-import qualified Database.RethinkDB.Internal.Types as QL-import qualified Database.RethinkDB.Internal.Query_Language.Term as QLTerm-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery as QLWriteQuery-import qualified Database.RethinkDB.Internal.Query_Language.Builtin as QLBuiltin-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.OrderBy as QLOrderBy-import qualified Database.RethinkDB.Internal.Query_Language.Reduction as QLReduction+import Database.RethinkDB.ReQL+import Database.RethinkDB.MapReduce+import Database.RethinkDB.Objects as O +import Database.RethinkDB.Protobuf.Ql2.Term.TermType++import Prelude (($), return, Double, Bool, String) import qualified Prelude as P-import Prelude (Bool(..), ($), Maybe(..), Int, String, flip, undefined, return, (.), mapM) -import Control.Monad (liftM)-import Data.Maybe-import Data.Functor-import Data.Aeson-import qualified Data.Sequence as Seq+-- | Arithmetic Operator+(+), (-), (*), (/), mod+  :: (Expr a, Expr b) => a -> b -> ReQL+(+) a b = op ADD (a, b) ()+(-) a b = op SUB (a, b) ()+(*) a b = op MUL (a, b) ()+(/) a b = op DIV (a, b) ()+mod a b = op MOD (a, b) () --- * Numbers, Booleans and Comparisons+-- | Boolean operator+(||), (&&) :: (Expr a, Expr b) => a -> b -> ReQL+a || b = op ANY (a, b) ()+a && b = op ALL (a, b) () -signum, signum' :: (ToValue e, ToValueType (ExprType e) ~ NumberType) => e -> NumberExpr-signum x = bind x (\n -> if' (n `lt` (0 :: NumberExpr)) (-1 :: Int)-                         (if' (n `lt` (0 :: NumberExpr)) (1 :: Int) (0 :: Int)))-signum' = signum+-- | Comparison operator+(==), (!=) :: (Expr a, Expr b) => a -> b -> ReQL+a == b = op EQ (a, b) ()+a != b = op NE (a, b) () -(+), add, (-), sub, (*), mul, (/), div', mod, mod'-  :: (HaveValueType a b NumberType) => a -> b -> NumberExpr+-- | Comparison operator+(>), (>=), (<), (<=)+  :: (Expr a, Expr b) => a -> b -> ReQL+a > b = op GT (a, b) ()+a < b = op LT (a, b) ()+a >=b = op GE (a, b) ()+a <=b = op LE (a, b) () -(+) a b = simpleOp QL.ADD [value a, value b]-(-) a b = simpleOp QL.SUBTRACT [value a, value b]-(*) a b = simpleOp QL.MULTIPLY [value a, value b]-(/) a b = simpleOp QL.DIVIDE [value a, value b]-add = (+)-sub = (-)-mul = (*)-div' = (/)+-- | Negation+not :: (Expr a) => a -> ReQL+not a = op NOT [a] () -mod a b = simpleOp QL.MODULO [value a, value b]-mod' = mod+-- * Lists and Streams -or, or', and, and' :: HaveValueType a b BoolType => a -> b -> BoolExpr-or a b = simpleOp QL.ANY [value a, value b]-and a b = simpleOp QL.ALL [value a, value b]-or' = or-and' = and+-- | The size of a sequence or an array+-- Called /count/ in the official drivers+length :: (Expr a) => a -> ReQL+length e = op COUNT [e] () -(==), (!=), eq, ne :: (HasValueType a x, HasValueType b y) => a -> b -> BoolExpr-eq a b = comparison QL.EQ [value a, value b]-ne a b = comparison QL.NE [value a, value b]-(==) = eq-(!=) = ne+-- | Join two sequences.+-- Called /union/ in the official drivers+(++) :: (Expr a, Expr b) => a -> b -> ReQL+a ++ b = op UNION (a, b) () -(>), (>=), (<), (<=), gt, lt, ge, le-  :: (HaveValueType a b v, CanCompare v) => a -> b -> BoolExpr-gt a b = comparison QL.GT [value a, value b]-lt a b = comparison QL.LT [value a, value b]-ge a b = comparison QL.GE [value a, value b]-le a b = comparison QL.LE [value a, value b]-(>) = gt-(>=) = ge-(<) = lt-(<=) = le+-- | Map a function over a sequence+map :: (Expr a, Expr b) => (ReQL -> b) -> a -> ReQL+map f a = op MAP (a, expr P.. f) () -not, not' :: HasValueType a BoolType => a -> BoolExpr-not a = simpleOp QL.NOT [value a]-not' = not+-- | Filter a sequence given a predicate+filter :: (Expr predicate, Expr seq) => predicate -> seq -> ReQL+filter f a = op FILTER (a, f) () --- * Lists and Streams+-- | Query all the documents whose value for the given index is in a given range+between :: (Expr left, Expr right, Expr seq) => Key -> left -> right -> seq -> ReQL+between i a b e = op BETWEEN [e] ["left_bound" := a, "right_bound" := b, "index" := i] -length, count :: (ToExpr e, Sequence (ExprType e)) => e -> NumberExpr-count e = simpleOp QL.LENGTH [expr e]-length = count+-- | Append a datum to a sequence+append :: (Expr a, Expr b) => a -> b -> ReQL+append a b = op APPEND (b, a) () -(++), concat :: (HaveValueType a b v, CanConcat v) => a -> b -> Expr (ValueType v)-(++) a b = simpleOp QL.ADD [value a, value b]-concat = (++)+-- | Map a function of a sequence and concat the results+concatMap :: (Expr a, Expr b) => (ReQL -> b) -> a -> ReQL+concatMap f e = op CONCATMAP (e, expr P.. f) () -map, map' :: (ToMapping m, ToStream e, MappingFrom m `HasToStreamValueOf` e) =>-       m -> e -> Expr (StreamType False (MappingTo m))-map fun a = mkExpr $ do-  mapp <- mapping fun-  rapply [expr a] $ (op QL.MAP) {-    QL.map = Just $ QL.Map mapp }+-- | SQL-like join of two sequences. Returns each pair of rows that satisfy the 2-ary predicate.+innerJoin, outerJoin :: (Expr a, Expr b, Expr c) => (ReQL -> ReQL -> c) -> a -> b -> ReQL+innerJoin f a b = op INNER_JOIN (a, b, fmap expr P.. f) ()+outerJoin f a b = op OUTER_JOIN (a, b, fmap expr P.. f) () -map' = map+-- | An efficient iner_join that uses a key for the first table and an index for the left table.+eqJoin :: (Expr a, Expr b) => Key -> a -> Key -> b -> ReQL+eqJoin a i k b = op EQ_JOIN (b, k, a) ["index" := i] --- | Get all the documents for which the given predicate is true-filter', filter :: (ToMapping m, ToStream e,-                    MappingFrom m `HasToStreamValueOf` e) =>-                   m -> e -> Expr (ExprType e)-filter' fil e = Expr $ do-  mapp <- mapping fil-  (vw, term) <- exprV e-  withView vw $ rapply [return term] $ (op QL.FILTER) {-    QL.filter = Just $ QL.Filter $ mappingToPredicate mapp }+-- | Drop elements from the head of a sequence+-- Called /skip/ in the official drivers+drop :: (Expr a, Expr b) => a -> b -> ReQL+drop a b = op SKIP (b, a) () -filter = filter'+-- | Limit the size of a sequence+-- Called /limit/ in the official drivers+take :: (Expr a, Expr b) => a -> b -> ReQL+take a b = op LIMIT (a, b) () --- | Get all documents between two primary keys (both keys are inclusive)-between :: (ToJSON a, ToStream e, ObjectType `HasToStreamValueOf` e) =>-           (Maybe a) -> (Maybe a) -> e -> Expr (ExprType e)-between a b e = Expr $ do-  (vw, term) <- exprV e-  withView vw $ rapply [return term] (op QL.RANGE) {-          QL.range = Just $ QL.Range (viewKeyAttr vw)-                     (fmap toJsonTerm a) (fmap toJsonTerm b) }+-- | Cut out part of a sequence+slice :: (Expr a, Expr b, Expr c) => a -> b -> c -> ReQL+slice n m s = op SLICE (s, n, m) () -append :: (HasValueType a ArrayType, HasValueType b x) => a -> b -> ArrayExpr-append a b = simpleOp QL.ARRAYAPPEND [value a, value b]+-- | Get the nth value of a sequence or array+(!!) :: (Expr a) => a -> ReQL -> ReQL+s !! n = op NTH (s, n) () -concatMap, concatMap' ::-  (ToMapping m, (MappingTo m) ~ ArrayType,-   ToStream e, MappingFrom m `HasToStreamValueOf` e) =>-   m -> e -> Expr (StreamType False t)-concatMap fun e = mkExpr $ do-  mapp <- mapping fun-  rapply [stream e] (op QL.CONCATMAP) {-    QL.concat_map = Just $ QL.ConcatMap mapp }+-- | Reduce a sequence to a single value+reduce :: (Expr base, Expr seq, Expr a) => (ReQL -> ReQL -> a) -> base -> seq -> ReQL+reduce f b s = op REDUCE (s, fmap expr P.. f) ["base" := b] -concatMap' = concatMap+-- | Reduce a non-empty sequence to a single value+reduce1 :: (Expr a, Expr s) => (ReQL -> ReQL -> a) -> s -> ReQL+reduce1 f s = op REDUCE (s, fmap expr P.. f) () -innerJoin :: (ToStream a, l `HasToStreamValueOf` a,-              ToStream b, r `HasToStreamValueOf` b) =>-             a -> b -> (ValueExpr l -> ValueExpr r -> BoolExpr) ->-             Expr (StreamType False ObjectType)-innerJoin self other p =-  flip concatMap self-  (\row -> flip concatMap other-           (\row2 -> if' (p row row2)-                     [obj ["left" := row, "right" := row2]]-                     nil))+-- | Filter out identical elements of the sequence+distinct :: (Expr s) => s -> ReQL+distinct s = op DISTINCT [s] () -outerJoin :: (ToStream a, l `HasToStreamValueOf` a,-              ToStream b, r `HasToStreamValueOf` b) =>-             a -> b -> (ValueExpr l -> ValueExpr r -> BoolExpr) ->-             Expr (StreamType False ObjectType)-outerJoin self other p =-  flip concatMap' self-  (\row -> bind (flip concatMap' other-                 (\row2 -> if' (p row row2)-                           [obj ["left" := row, "right" := row2]]-                           nil))-           (\matches ->-             if' (count matches `gt` (0 :: Int)) (asArray matches) [obj ["left" := row]]))+-- | Like map but for write queries+forEach :: (Expr s, Expr a) => s -> (ReQL -> a) -> ReQL+forEach s f = op FOREACH (s, expr P.. f) () -asArray :: ToExpr e => e -> ArrayExpr-asArray e = mkExpr $ expr e+-- | Merge the "left" and "right" attributes of the objects in a sequence+-- Called /zip/ in the official drivers+mergeRightLeft :: (Expr a) => a -> ReQL+mergeRightLeft a = op ZIP [a] () -eqJoin :: (ToStream a, ObjectType `HasToStreamValueOf` a,-           ToExpr b, ExprType b ~ ExprType Selection) =>-           a -> String -> b -> Expr (StreamType False ObjectType)-eqJoin this k1 other =-  flip concatMap this $ \row ->-    bind (get other (row ! k1)) $ \right ->-      if' (right != ()) [obj ["left" := row, "right" := right]] nil+-- | Oredering specification for orderBy+data Order =+  Asc { orderAttr :: Key } |+  Desc { orderAttr :: Key } -drop, drop', skip :: (ToStream e, t `HasToStreamValueOf` e,-         ToExpr n, ExprType n ~ ValueType NumberType) =>-        e -> n -> Expr (StreamType (ExprIsView e) t)-drop e n = Expr $ do-  (vw, ex) <- exprV e-  withView vw $ rapply [return ex, expr (), expr n] (op QL.SLICE)-drop' = drop-skip = drop+-- | Order a sequence by the given keys+orderBy :: (Expr s) => [Order] -> s -> ReQL+orderBy o s = ReQL $ do+  s' <- baseReQL (expr s)+  o' <- baseArray $ arr $ P.map buildOrder o+  return $ BaseReQL ORDERBY P.Nothing (s' : o') []+  where+    buildOrder (Asc k) = op ASC [k] ()+    buildOrder (Desc k) = op DESC [k] () -take, take', limit :: (ToStream e, t `HasToStreamValueOf` e,-         ToExpr n, ExprType n ~ ValueType NumberType) =>-        e -> n -> Expr (StreamType (ExprIsView e) t)-take e n = Expr $ do-  (vw, ex) <- exprV e-  withView vw $ rapply [return ex, expr n, expr ()] (op QL.SLICE)-take' = take-limit  = take+-- | Turn a grouping function and a reduction function into a grouped map reduce operation+groupBy ::+  (Expr group, Expr reduction, Expr seq)+  => (ReQL -> group) -> (ReQL -> reduction) -> seq -> ReQL+groupBy g mr s = ReQL $ do+  (m, r, f) <- termToMapReduce (expr . mr)+  baseReQL $ map (f . (!"reduction")) $+    op GROUPED_MAP_REDUCE [expr s, expr $ expr P.. g, expr m, expr r] () -slice :: (ToStream e, t `HasToStreamValueOf` e,-         ToExpr n, ExprType n ~ ValueType NumberType,-         ToExpr m, ExprType m ~ ValueType NumberType) =>-        e -> n -> m -> Expr (StreamType (ExprIsView e) t)-slice e n m = Expr $ do-  (vw, ex) <- exprV e-  withView vw $ rapply [return ex, expr n, expr m] (op QL.SLICE)+-- | The sum of a sequence+sum :: (Expr s) => s -> ReQL+sum = reduce ((+) :: ReQL -> ReQL -> ReQL) (0 :: ReQL) -(!!), nth :: (ToStream e, t `HasToStreamValueOf` e,-        ToExpr n, ExprType n ~ ValueType NumberType) =>-        e -> n -> ValueExpr t-nth e n = Expr $ withView NoView $ rapply [stream e, expr n] (op QL.NTH)-(!!) = nth+-- | The average of a sequence+avg :: (Expr s) => s -> ReQL+avg = (\x -> (x!!0) / (x!!1)) .+  reduce (\a b -> [(a!!0) + (b!!0), (a!!1) + (b!!1)]) [num 0, num 0] .+  map (\x -> [x, 1]) --- | The empty list expression-nil :: ValueExpr ArrayType-nil = toExpr ([] :: [()])+-- * Accessors -union, union' :: (ToStream a, t `HasToStreamValueOf` a,-           ToStream b, t `HasToStreamValueOf` b) =>-          a -> b -> Expr (StreamType False t)-union a b = simpleOp QL.UNION [stream a, stream b]-union' = union+-- | Get a single field form an object+(!) :: (Expr s) => s -> ReQL -> ReQL+s ! k = op GET_FIELD (s, k) () --- | A fold--- --- >>> run h $ reduce [1,2,3] (0 :: Int) (+)--- 6+-- | Keep only the given attributes+pluck :: (Expr o) => [ReQL] -> o -> ReQL+pluck ks e = op PLUCK (cons e $ arr (P.map expr ks)) () -fold :: (ToValue z, ToValueType (ExprType z) ~ a,-         ToStream e, b `HasToStreamValueOf` e,-         ToExpr c, ExprIsView c ~ False) =>-        (ValueExpr a -> ValueExpr b -> c) -> z -> e -> Expr (ExprType c)-fold f a e = Expr $ do-  v1 <- newVar-  v2 <- newVar-  aq <- value a-  result <- expr (f (var v1) (var v2))-  withView NoView $ rapply [stream e] (op QL.REDUCE) {-    QL.reduce = Just $ QL.Reduction {-       QL.base = aq,-       QL.var1 = uFromString v1,-       QL.var2 = uFromString v2, -       QLReduction.body = result } }+-- | Remove the given attributes from an object+without :: (Expr o) => [ReQL] -> o -> ReQL+without ks e = op WITHOUT (cons e $ arr (P.map expr ks)) () -reduce :: (ToValue z, ToValueType (ExprType z) ~ a,-         ToStream e, b `HasToStreamValueOf` e,-         ToExpr c, ExprIsView c ~ False) =>-        e -> z -> (ValueExpr a -> ValueExpr b -> c) -> Expr (ExprType c)-reduce this base f = fold f base this+-- | Test if an object contains the given attribute+-- Called /contains/ in the official drivers+member :: (Expr o) => [ReQL] -> o -> ReQL+member ks o = op CONTAINS (cons o $ arr (P.map expr ks)) () -distinct :: (ToStream e, v `HasToStreamValueOf` e) =>-            e -> Expr (StreamType False v)-distinct e = simpleOp QL.DISTINCT [stream e]+-- | Merge two objects together+merge :: (Expr a, Expr b) => a -> b -> ReQL+merge a b = op MERGE (a, b) () --- TODO: does not work-groupedMapReduce :: (ToValue group, ToValue value,-                     ToValue acc, ToValueType (ExprType acc) ~ b,-                     ToValue acc', ToValueType (ExprType acc') ~ b,-                     ToStream e, a `HasToStreamValueOf` e) =>-                    (ValueExpr a -> group) ->-                    (ValueExpr a -> value) ->-                    acc ->-                    (ValueExpr b -> ValueExpr v -> acc') ->-                    e -> -                    Expr (StreamType False b)-groupedMapReduce group val base reduction e = Expr $ do-  g <- mapping group-  v <- mapping val-  v1 <- newVar-  v2 <- newVar-  b <- value base-  result <- value (reduction (var v1) (var v2))-  withView NoView $ rapply [stream e] (op QL.GROUPEDMAPREDUCE) {-    QL.grouped_map_reduce = Just $ QL.GroupedMapReduce {-       QL.group_mapping = g,-       QL.value_mapping = v,-       QL.reduction = QL.Reduction {-         QL.base = b, -         QL.var1 = uFromString v1,-         QL.var2 = uFromString v2,-         QLReduction.body = result }} }+-- | Create a javascript expression+class Javascript r where+  js :: P.String -> r --- | Execute a write query for each element of the stream--- --- >>> run h $ forEach [1,2,3::Int] (\x -> insert (table "fruits") (obj ["n" := x]))+instance Javascript ReQL where+  js s = op JAVASCRIPT [str s] () -forEach :: (ToStream a, v `HasToStreamValueOf` a) =>-           a -> (ValueExpr v -> WriteQuery b) -> WriteQuery ()-forEach s mkwq = WriteQuery (do-  arg <- newVar-  let wq = mkwq (var arg)-  qlwq <- writeQueryBuild wq-  as <- stream s-  return $ defaultValue {-    QLWriteQuery.type' = QL.FOREACH,-    QL.for_each = Just $ QL.ForEach as (uFromString arg) (Seq.singleton qlwq) })-  (whenSuccess_ ())+instance Javascript (ReQL -> ReQL) where+  js s x = op FUNCALL (op JAVASCRIPT [str s] (), x) () -zip, zip' :: (ToStream e, ObjectType `HasToStreamValueOf` e) =>-             e -> Expr (StreamType False ObjectType)-zip = map (\row -> if' (row !? "right")-                   (merge (row ! "left") (row ! "right"))-                   (row ! "left"))-zip' = zip+instance Javascript (ReQL -> ReQL -> ReQL) where+  js s x y = op FUNCALL (op JAVASCRIPT [str s] (), x, y) () -data Order = Asc  { orderAttr :: String }-           | Desc { orderAttr :: String }+-- | Called /branch/ in the official drivers+if' :: (Expr a, Expr b, Expr c) => a -> b -> c -> ReQL+if' a b c = op BRANCH (a, b, c) () -orderAscending :: Order -> Bool-orderAscending Asc  {} = True-orderAscending Desc {} = False+error :: (Expr s) => s -> ReQL+error m = op ERROR [m] () -class ToOrder a where toOrder :: a -> Order-instance ToOrder String where toOrder = Asc-instance ToOrder Order where toOrder o = o+-- | Create a Database reference+db :: Text -> O.Database+db s = O.Database s -orderBy :: (ToOrder o, ToStream e, a `HasToStreamValueOf` e) =>-           [o] -> e -> Expr (StreamType (ExprIsView e) a)-orderBy o e = Expr $ do-  (vw, ex) <- exprV e-  withView vw $ rapply [return ex] (op QL.ORDERBY) {-    QL.order_by = Seq.fromList $ flip P.map o $ \(toOrder -> x) -> QL.OrderBy {-       QLOrderBy.attr = uFromString (orderAttr x), QL.ascending = Just $ orderAscending x }}+-- | Create a database on the server+dbCreate :: P.String -> ReQL+dbCreate db_name = op DB_CREATE [str db_name] () -groupBy,groupBy' :: (ToStream e, ObjectType `HasToStreamValueOf` e) =>-                    [String] -> MapReduce ObjectType b c d -> e -> Expr (StreamType False d)-groupBy ks (MapReduce m b r f) e = map f (groupedMapReduce (pick ks) m b r e)-groupBy' = groupBy+-- | Drop a database+dbDrop :: Database -> ReQL+dbDrop (O.Database name) = op DB_DROP [name] () -data MapReduce a b c d = MapReduce (ValueExpr a -> ValueExpr b) (ValueExpr c)-                         (ValueExpr c -> ValueExpr b -> ValueExpr c)-                         (ValueExpr c -> ValueExpr d)+-- | List the databases on the server+dbList :: ReQL+dbList = op DB_LIST () () -sum, sum' :: String -> MapReduce ObjectType NumberType NumberType NumberType-sum a = MapReduce (! a) 0 (+) P.id-sum' = sum+-- | Create an index on the table from the given function+indexCreate :: (Expr fun) => P.String -> fun -> Table -> ReQL+indexCreate name f tbl = op INDEX_CREATE (tbl, str name, f) () -count' :: MapReduce ObjectType NoneType NumberType NumberType-count' = MapReduce (P.const (toExpr ())) 0 (\x _ -> x + (1 :: Int)) P.id+-- | Drop an index+indexDrop :: Key -> Table -> ReQL+indexDrop name tbl = op INDEX_DROP (tbl, name) () -avg :: String -> MapReduce ObjectType ArrayType ArrayType NumberType-avg k = MapReduce (\x -> toExpr [x ! k :: NumberExpr, 1]) (toExpr [0,0 :: Int])-        (\a o -> toExpr [(a !! (0 :: Int)) + (o !! (0 :: Int)), (a !! (1 :: Int)) + (o !! (1 :: Int)) :: NumberExpr])-        (\a -> ((a !! (0 :: Int)) / (a !! (1 :: Int))))+-- | List the indexes on the table+indexList :: Table -> ReQL+indexList tbl = op INDEX_LIST [tbl] () --- * Accessors+-- | Retreive documents by their indexed value+getAll :: (Expr value) => Key -> [value] -> Table -> ReQL+getAll idx xs tbl = op GET_ALL (expr tbl : P.map expr xs) ["index" := idx] --- | Get the value of the field of an object--- --- When GHC thinks the result is ambiguous, it may have to be annotated.--- --- >>> run h $ (get (table "tea") "black" ! "water_temperature" :: NumberExpr)--- 95+-- | Create a simple table refence with no associated database+table :: Text -> Table+table n = O.Table Nothing n Nothing -(!) :: (ToExpr a, ExprValueType a ~ ObjectType) => a -> String -> ValueExpr t-(!) a b = mkExpr $ rapply [expr a] (op QL.GETATTR) {-  QLBuiltin.attr = Just (uFromString b) }+-- | Create a table on the server+tableCreate :: Table -> TableCreateOptions -> ReQL+tableCreate (O.Table mdb table_name pkey) opts =+  withQuerySettings $ \QuerySettings{ queryDefaultDatabase = ddb } ->+    op TABLE_CREATE (fromMaybe ddb mdb, table_name) $ catMaybes [+      ("datacenter" :=) <$> tableDataCenter opts,+      ("cache_size" :=) <$> tableCacheSize opts,+      ("primary_key" :=) <$> pkey ] -pick :: HasValueType e ObjectType => [String] -> e -> ObjectExpr-pick ks e = mkExpr $ rapply [value e] (op QL.PICKATTRS) {-  QL.attrs = Seq.fromList $ P.map uFromString ks }+-- | Drop a table+tableDrop :: Table -> ReQL+tableDrop (O.Table mdb table_name _) =+  withQuerySettings $ \QuerySettings{ queryDefaultDatabase = ddb } ->+    op TABLE_DROP (fromMaybe ddb mdb, table_name) () -unpick :: HasValueType e ObjectType => [String] -> e -> ObjectExpr-unpick ks e = mkExpr $ rapply [value e] (op QL.WITHOUT) {-  QL.attrs = Seq.fromList $ P.map uFromString ks }+-- | List the tables in a database+tableList :: Database -> ReQL+tableList (O.Database name) = op DB_LIST [name] () -(!?) :: (HasValueType a ObjectType) => a -> String -> BoolExpr -(!?) a b = mkExpr $ rapply [value a] (op QL.HASATTR) {-  QLBuiltin.attr = Just $ uFromString b }+-- | Get a document by primary key +get :: (Expr s, Expr k) => k -> s -> ReQL+get k e = op GET (e, k) () -pluck :: (ToStream e, ObjectType `HasToStreamValueOf` e) =>-         [String] -> e -> Expr (StreamType False ObjectType)-pluck ks = map (pick ks)+-- | Insert a document or a list of documents into a table+insert :: (Expr table, Expr object) => object -> table -> ReQL+insert a tb = op INSERT (tb, a) () -without :: (ToStream e, ObjectType `HasToStreamValueOf` e) =>-           [String] -> e -> Expr (StreamType False ObjectType)-without ks = map (unpick ks)+-- | Like insert, but update existing documents with the same primary key+upsert :: (Expr table, Expr object) => object -> table -> ReQL+upsert a tb = op INSERT (tb, a) ["upsert" := P.True] -merge :: (ToExpr a, ExprType a ~ ValueType ObjectType,-          ToExpr b, ExprType b ~ ValueType ObjectType) =>-         a -> b -> ObjectExpr-merge this other = simpleOp QL.MAPMERGE [expr this, expr other]+-- | Add to or modify the contents of a document+update :: (Expr selection) => (ReQL -> ReQL) -> selection -> ReQL+update f s = op UPDATE (s, f) () --- * Control Structures, Functions and Javascript+-- | Replace a document with another+replace :: (Expr selection) => (ReQL -> ReQL) -> selection -> ReQL+replace f s = op REPLACE (s, f) () --- | A javascript expression--- --- It is often necessary to specify the result type:--- --- >>> run h $ (js "1 + 2" :: NumberExpr)--- 3+-- | Delete the documents+delete :: (Expr selection) => selection -> ReQL+delete s = op DELETE [s] () -js :: String -> Expr (ValueType any)-js s = mkExpr $ return defaultValue {-  QLTerm.type' = QL.JAVASCRIPT,-  QLTerm.javascript = Just $ uFromString ("return (" P.++ s P.++ ")") }+-- | Convert a value to a different type+coerceTo :: (Expr x) => ReQL -> x -> ReQL+coerceTo t a = op COERCE_TO (a, t) () -bind :: (ToValue e) => e -> (ValueExpr (ToValueType (ExprType e)) -> Expr t) -> Expr t-bind val f = Expr $ do-  arg <- value val-  v <- newVar-  (vw, body) <- exprV (f (var v))-  withView vw $ return defaultValue {-    QLTerm.type' = QL.LET,-    QLTerm.let' = Just $ QL.Let (Seq.singleton $ QL.VarTermTuple (uFromString v) arg)-                  body }+-- | Convert a value to a different type+asArray, asString, asNumber, asObject, asBool :: Expr x => x -> ReQL+asArray = coerceTo "ARRAY"+asString = coerceTo "STRING"+asNumber = coerceTo "NUMBER"+asObject = coerceTo "OBJECT"+asBool = coerceTo "BOOL" -let' :: [Attribute] -> Expr t -> Expr t-let' pairs e = Expr $ do-  varTerms <- mapM (\(k := v) ->-                     (QL.VarTermTuple (uFromString k)) `liftM` value v) pairs-  (vw, body) <- exprV e-  withView vw $ return defaultValue {-    QLTerm.type' = QL.LET,-    QLTerm.let' = Just $ QL.Let (Seq.fromList $ varTerms) body }+-- | Like hasFields followed by pluck+withFields :: (Expr paths, Expr seq) => [paths] -> seq -> ReQL+withFields p s = op WITH_FIELDS (s, p) () -var :: ExprIsView (Expr t) ~ False => String -> Expr t-var v = mkExpr $ return defaultValue { -  QLTerm.type' = QL.VAR,-  QLTerm.var = Just $ uFromString v-  }+-- | The position in the sequence of the elements that match the predicate+indexesOf :: (Expr fun, Expr seq) => fun -> seq -> ReQL+indexesOf f s = op INDEXES_OF (s, f) () -if' :: (ToValue e, ToValueType (ExprType e) ~ BoolType,-        ToExpr a, ExprTypeNoView (ExprType a) ~ x,-        ToExpr b, ExprTypeNoView (ExprType b) ~ x,-        ExprTypeIsView x ~ False) =>-          e -> a -> b -> Expr x-if' t a b = mkExpr $ do-  tq <- value t-  aq <- expr a-  bq <- expr b-  return defaultValue {-    QLTerm.type' = QL.IF, QL.if_ = Just $ QL.If tq aq bq }+-- | Test if a sequence is empty+isEmpty :: Expr seq => seq -> ReQL+isEmpty s = op IS_EMPTY [s] () --- | A javascript function--- --- >>> let squareRoot = jsfun "Math.sqrt" :: NumberExpr -> NumberExpr--- >>> run h $ squareRoot 5 :: IO Double--- 2.23606797749979+-- | Select a given number of elements from a sequence with uniform random distribution+sample :: (Expr n, Expr seq) => n -> seq -> ReQL+sample n s = op SAMPLE (s, n) () -jsfun :: ToValue e => String -> e -> Expr (ValueType y)-jsfun f e = mkExpr $ do -  v <- newVar-  expr (let' [v := e] $ js $ f P.++ "(" P.++ v P.++ ")")+-- | Prepend an element to an array+prepend :: (Expr datum, Expr array) => datum -> array -> ReQL+prepend d a = op PREPEND (a, d) () -error, error' :: (ExprTypeIsView t ~ False) => String -> Expr t-error m = Expr $ withView NoView $ return defaultValue {-  QLTerm.type' = QL.ERROR, QL.error = Just $ uFromString m }-error' = error+-- | Called /difference/ in the official drivers+(\\) :: (Expr a, Expr b) => a -> b -> ReQL+a \\ b = op DIFFERENCE (a, b) () -class CanConcat (a :: ValueTypeKind)-instance CanConcat StringType-instance CanConcat ArrayType+-- | Insert a datum into an array if it is not yet present+setInsert :: (Expr datum, Expr array) => datum -> array -> ReQL+setInsert d a = op SET_INSERT (a, d) ()++-- | The union of two sets+setUnion :: (Expr a, Expr b) => a -> b -> ReQL+setUnion a b = op SET_UNION (b, a) ()++-- | The intersection of two sets+setIntersection :: (Expr a, Expr b) => a -> b -> ReQL+setIntersection a b = op SET_INTERSECTION (b, a) ()++-- | The difference of two sets+setDifference :: (Expr set, Expr remove) => remove -> set -> ReQL+setDifference r s = op SET_DIFFERENCE (s, r) ()++-- | Test if an object has the given fields+hasFields :: (Expr obj, Expr paths) => paths -> obj -> ReQL+hasFields p o = op HAS_FIELDS (o, p) ()++-- | Insert a datum at the given position in an array+insertAt :: (Expr n, Expr datum, Expr array) => n -> datum -> array -> ReQL+insertAt n d a = op INSERT_AT (a, n, d) ()++-- | Splice an array at a given position inside another array+spliceAt :: (Expr n, Expr replace, Expr array) => n -> replace -> array -> ReQL+spliceAt n s a = op SPLICE_AT (a, n, s) ()++-- | Delete an element from an array+deleteAt :: (Expr n, Expr array) => n -> array -> ReQL+deleteAt n a = op DELETE_AT (a, n) ()++-- | Change an element in an array+changeAt :: (Expr n, Expr datum, Expr array) => n -> datum -> array -> ReQL+changeAt n d a = op CHANGE_AT (a, n, d) ()++-- | The list of keys of the given object+keys :: Expr obj => obj -> ReQL+keys o = op KEYS [o] ()++-- | Match a string to a regulr expression+-- Called /match/ in the official drivers+(=~) :: (Expr string, Expr regex) => string -> regex -> ReQL+s =~ r = op MATCH (s, r) ()++-- | Apply a function to a list of arguments+-- Called /do/ in the official drivers+apply :: (Expr fun, Expr arg) => fun -> [arg] -> ReQL+f `apply` as = op FUNCALL (expr f : P.map expr as) ()++-- | Catch some expections inside the query.+-- Called /default/ in the official drivers+handle :: (Expr handler, Expr reql) => handler -> reql -> ReQL+handle h r = op DEFAULT (r, h) ()++-- | A string representing the type of an expression+typeOf :: Expr a => a -> ReQL+typeOf a = op TYPEOF [a] ()++-- | Get information on a given expression. Useful for tables and databases.+info :: Expr a => a -> ReQL+info a = op INFO [a] ()++-- | Parse a json string into an object+json :: Expr string => string -> ReQL+json s = op JSON [s] ()++-- | Flipped function composition+(#) :: (Expr a, Expr b, Expr c) =>  (ReQL -> a) -> (ReQL -> b) -> c -> ReQL+(f # g) x = expr (g (expr (f (expr x))))++-- | Specialised function composition+(.) :: (Expr a, Expr b, Expr c) =>  (ReQL -> b) -> (ReQL -> a) -> c -> ReQL+(f . g) x = expr (f (expr (g (expr x))))
− Database/RethinkDB/Functions.hs-boot
@@ -1,9 +0,0 @@-{-# LANGUAGE ConstraintKinds, DataKinds, TypeFamilies #-}-module Database.RethinkDB.Functions where-import Database.RethinkDB.Types-import {-# SOURCE #-} Database.RethinkDB.Driver-add, sub, mul, div'-  :: (HaveValueType a b NumberType) => a -> b -> NumberExpr-jsfun :: ToValue e => String -> e -> Expr (ValueType y)-var :: ExprIsView (Expr t) ~ False => String -> Expr t-signum' :: (ToValue e, ToValueType (ExprType e) ~ NumberType) => e -> NumberExpr
− Database/RethinkDB/Internal/Query_Language/Builtin.hs
@@ -1,123 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin (Builtin(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType as Query_Language.Builtin (BuiltinType)-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.Comparison as Query_Language.Builtin (Comparison)-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.ConcatMap as Query_Language.Builtin (ConcatMap)-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.Filter as Query_Language.Builtin (Filter)-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.GroupedMapReduce as Query_Language.Builtin (GroupedMapReduce)-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.Map as Query_Language.Builtin (Map)-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.OrderBy as Query_Language.Builtin (OrderBy)-import qualified Database.RethinkDB.Internal.Query_Language.Builtin.Range as Query_Language.Builtin (Range)-import qualified Database.RethinkDB.Internal.Query_Language.Reduction as Query_Language (Reduction)- -data Builtin = Builtin{type' :: !Query_Language.Builtin.BuiltinType, attr :: !(P'.Maybe P'.Utf8), attrs :: !(P'.Seq P'.Utf8),-                       comparison :: !(P'.Maybe Query_Language.Builtin.Comparison),-                       filter :: !(P'.Maybe Query_Language.Builtin.Filter), map :: !(P'.Maybe Query_Language.Builtin.Map),-                       concat_map :: !(P'.Maybe Query_Language.Builtin.ConcatMap),-                       order_by :: !(P'.Seq Query_Language.Builtin.OrderBy), reduce :: !(P'.Maybe Query_Language.Reduction),-                       grouped_map_reduce :: !(P'.Maybe Query_Language.Builtin.GroupedMapReduce),-                       range :: !(P'.Maybe Query_Language.Builtin.Range)}-             deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Builtin where-  mergeAppend (Builtin x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10 x'11) (Builtin y'1 y'2 y'3 y'4 y'5 y'6 y'7 y'8 y'9 y'10 y'11)-   = Builtin (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)-      (P'.mergeAppend x'5 y'5)-      (P'.mergeAppend x'6 y'6)-      (P'.mergeAppend x'7 y'7)-      (P'.mergeAppend x'8 y'8)-      (P'.mergeAppend x'9 y'9)-      (P'.mergeAppend x'10 y'10)-      (P'.mergeAppend x'11 y'11)- -instance P'.Default Builtin where-  defaultValue-   = Builtin P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue- -instance P'.Wire Builtin where-  wireSize ft' self'@(Builtin x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10 x'11)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size-         = (P'.wireSizeReq 1 14 x'1 + P'.wireSizeOpt 1 9 x'2 + P'.wireSizeRep 1 9 x'3 + P'.wireSizeOpt 1 14 x'4 +-             P'.wireSizeOpt 1 11 x'5-             + P'.wireSizeOpt 1 11 x'6-             + P'.wireSizeOpt 1 11 x'7-             + P'.wireSizeRep 1 11 x'8-             + P'.wireSizeOpt 1 11 x'9-             + P'.wireSizeOpt 1 11 x'10-             + P'.wireSizeOpt 1 11 x'11)-  wirePut ft' self'@(Builtin x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10 x'11)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 8 14 x'1-             P'.wirePutOpt 18 9 x'2-             P'.wirePutRep 26 9 x'3-             P'.wirePutOpt 32 14 x'4-             P'.wirePutOpt 42 11 x'5-             P'.wirePutOpt 50 11 x'6-             P'.wirePutOpt 58 11 x'7-             P'.wirePutRep 66 11 x'8-             P'.wirePutOpt 74 11 x'9-             P'.wirePutOpt 82 11 x'10-             P'.wirePutOpt 90 11 x'11-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = new'Field}) (P'.wireGet 14)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{attr = Prelude'.Just new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{attrs = P'.append (attrs old'Self) new'Field}) (P'.wireGet 9)-             32 -> Prelude'.fmap (\ !new'Field -> old'Self{comparison = Prelude'.Just new'Field}) (P'.wireGet 14)-             42 -> Prelude'.fmap (\ !new'Field -> old'Self{filter = P'.mergeAppend (filter old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             50 -> Prelude'.fmap (\ !new'Field -> old'Self{map = P'.mergeAppend (map old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             58 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{concat_map = P'.mergeAppend (concat_map old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             66 -> Prelude'.fmap (\ !new'Field -> old'Self{order_by = P'.append (order_by old'Self) new'Field}) (P'.wireGet 11)-             74 -> Prelude'.fmap (\ !new'Field -> old'Self{reduce = P'.mergeAppend (reduce old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             82 -> Prelude'.fmap-                    (\ !new'Field ->-                      old'Self{grouped_map_reduce = P'.mergeAppend (grouped_map_reduce old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             90 -> Prelude'.fmap (\ !new'Field -> old'Self{range = P'.mergeAppend (range old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Builtin) Builtin where-  getVal m' f' = f' m'- -instance P'.GPB Builtin- -instance P'.ReflectDescriptor Builtin where-  getMessageInfo _-   = P'.GetMessageInfo (P'.fromDistinctAscList [8]) (P'.fromDistinctAscList [8, 18, 26, 32, 42, 50, 58, 66, 74, 82, 90])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Builtin\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Builtin\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Builtin.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.BuiltinType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"BuiltinType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.attr\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"attr\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.attrs\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"attrs\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.comparison\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"comparison\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.Comparison\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"Comparison\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.filter\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"filter\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.Filter\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"Filter\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.map\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"map\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.Map\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"Map\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.concat_map\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"concat_map\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 58}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.ConcatMap\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"ConcatMap\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.order_by\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"order_by\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 66}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.OrderBy\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"OrderBy\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.reduce\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"reduce\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 74}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Reduction\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Reduction\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.grouped_map_reduce\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"grouped_map_reduce\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 82}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.GroupedMapReduce\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"GroupedMapReduce\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.range\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\"], baseName' = FName \"range\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 90}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin.Range\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"Range\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Builtin/BuiltinType.hs
@@ -1,231 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType (BuiltinType(..)) where-import Prelude ((+), (/), (.))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data BuiltinType = NOT-                 | GETATTR-                 | IMPLICIT_GETATTR-                 | HASATTR-                 | IMPLICIT_HASATTR-                 | PICKATTRS-                 | IMPLICIT_PICKATTRS-                 | MAPMERGE-                 | ARRAYAPPEND-                 | SLICE-                 | ADD-                 | SUBTRACT-                 | MULTIPLY-                 | DIVIDE-                 | MODULO-                 | COMPARE-                 | FILTER-                 | MAP-                 | CONCATMAP-                 | ORDERBY-                 | DISTINCT-                 | LENGTH-                 | UNION-                 | NTH-                 | STREAMTOARRAY-                 | ARRAYTOSTREAM-                 | REDUCE-                 | GROUPEDMAPREDUCE-                 | ANY-                 | ALL-                 | RANGE-                 | IMPLICIT_WITHOUT-                 | WITHOUT-                 deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable BuiltinType- -instance Prelude'.Bounded BuiltinType where-  minBound = NOT-  maxBound = WITHOUT- -instance P'.Default BuiltinType where-  defaultValue = NOT- -toMaybe'Enum :: Prelude'.Int -> P'.Maybe BuiltinType-toMaybe'Enum 1 = Prelude'.Just NOT-toMaybe'Enum 2 = Prelude'.Just GETATTR-toMaybe'Enum 3 = Prelude'.Just IMPLICIT_GETATTR-toMaybe'Enum 4 = Prelude'.Just HASATTR-toMaybe'Enum 5 = Prelude'.Just IMPLICIT_HASATTR-toMaybe'Enum 6 = Prelude'.Just PICKATTRS-toMaybe'Enum 7 = Prelude'.Just IMPLICIT_PICKATTRS-toMaybe'Enum 8 = Prelude'.Just MAPMERGE-toMaybe'Enum 9 = Prelude'.Just ARRAYAPPEND-toMaybe'Enum 11 = Prelude'.Just SLICE-toMaybe'Enum 14 = Prelude'.Just ADD-toMaybe'Enum 15 = Prelude'.Just SUBTRACT-toMaybe'Enum 16 = Prelude'.Just MULTIPLY-toMaybe'Enum 17 = Prelude'.Just DIVIDE-toMaybe'Enum 18 = Prelude'.Just MODULO-toMaybe'Enum 19 = Prelude'.Just COMPARE-toMaybe'Enum 20 = Prelude'.Just FILTER-toMaybe'Enum 21 = Prelude'.Just MAP-toMaybe'Enum 22 = Prelude'.Just CONCATMAP-toMaybe'Enum 23 = Prelude'.Just ORDERBY-toMaybe'Enum 24 = Prelude'.Just DISTINCT-toMaybe'Enum 26 = Prelude'.Just LENGTH-toMaybe'Enum 27 = Prelude'.Just UNION-toMaybe'Enum 28 = Prelude'.Just NTH-toMaybe'Enum 29 = Prelude'.Just STREAMTOARRAY-toMaybe'Enum 30 = Prelude'.Just ARRAYTOSTREAM-toMaybe'Enum 31 = Prelude'.Just REDUCE-toMaybe'Enum 32 = Prelude'.Just GROUPEDMAPREDUCE-toMaybe'Enum 35 = Prelude'.Just ANY-toMaybe'Enum 36 = Prelude'.Just ALL-toMaybe'Enum 37 = Prelude'.Just RANGE-toMaybe'Enum 38 = Prelude'.Just IMPLICIT_WITHOUT-toMaybe'Enum 39 = Prelude'.Just WITHOUT-toMaybe'Enum _ = Prelude'.Nothing- -instance Prelude'.Enum BuiltinType where-  fromEnum NOT = 1-  fromEnum GETATTR = 2-  fromEnum IMPLICIT_GETATTR = 3-  fromEnum HASATTR = 4-  fromEnum IMPLICIT_HASATTR = 5-  fromEnum PICKATTRS = 6-  fromEnum IMPLICIT_PICKATTRS = 7-  fromEnum MAPMERGE = 8-  fromEnum ARRAYAPPEND = 9-  fromEnum SLICE = 11-  fromEnum ADD = 14-  fromEnum SUBTRACT = 15-  fromEnum MULTIPLY = 16-  fromEnum DIVIDE = 17-  fromEnum MODULO = 18-  fromEnum COMPARE = 19-  fromEnum FILTER = 20-  fromEnum MAP = 21-  fromEnum CONCATMAP = 22-  fromEnum ORDERBY = 23-  fromEnum DISTINCT = 24-  fromEnum LENGTH = 26-  fromEnum UNION = 27-  fromEnum NTH = 28-  fromEnum STREAMTOARRAY = 29-  fromEnum ARRAYTOSTREAM = 30-  fromEnum REDUCE = 31-  fromEnum GROUPEDMAPREDUCE = 32-  fromEnum ANY = 35-  fromEnum ALL = 36-  fromEnum RANGE = 37-  fromEnum IMPLICIT_WITHOUT = 38-  fromEnum WITHOUT = 39-  toEnum-   = P'.fromMaybe-      (Prelude'.error-        "hprotoc generated code: toEnum failure for type Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType")-      . toMaybe'Enum-  succ NOT = GETATTR-  succ GETATTR = IMPLICIT_GETATTR-  succ IMPLICIT_GETATTR = HASATTR-  succ HASATTR = IMPLICIT_HASATTR-  succ IMPLICIT_HASATTR = PICKATTRS-  succ PICKATTRS = IMPLICIT_PICKATTRS-  succ IMPLICIT_PICKATTRS = MAPMERGE-  succ MAPMERGE = ARRAYAPPEND-  succ ARRAYAPPEND = SLICE-  succ SLICE = ADD-  succ ADD = SUBTRACT-  succ SUBTRACT = MULTIPLY-  succ MULTIPLY = DIVIDE-  succ DIVIDE = MODULO-  succ MODULO = COMPARE-  succ COMPARE = FILTER-  succ FILTER = MAP-  succ MAP = CONCATMAP-  succ CONCATMAP = ORDERBY-  succ ORDERBY = DISTINCT-  succ DISTINCT = LENGTH-  succ LENGTH = UNION-  succ UNION = NTH-  succ NTH = STREAMTOARRAY-  succ STREAMTOARRAY = ARRAYTOSTREAM-  succ ARRAYTOSTREAM = REDUCE-  succ REDUCE = GROUPEDMAPREDUCE-  succ GROUPEDMAPREDUCE = ANY-  succ ANY = ALL-  succ ALL = RANGE-  succ RANGE = IMPLICIT_WITHOUT-  succ IMPLICIT_WITHOUT = WITHOUT-  succ _-   = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType"-  pred GETATTR = NOT-  pred IMPLICIT_GETATTR = GETATTR-  pred HASATTR = IMPLICIT_GETATTR-  pred IMPLICIT_HASATTR = HASATTR-  pred PICKATTRS = IMPLICIT_HASATTR-  pred IMPLICIT_PICKATTRS = PICKATTRS-  pred MAPMERGE = IMPLICIT_PICKATTRS-  pred ARRAYAPPEND = MAPMERGE-  pred SLICE = ARRAYAPPEND-  pred ADD = SLICE-  pred SUBTRACT = ADD-  pred MULTIPLY = SUBTRACT-  pred DIVIDE = MULTIPLY-  pred MODULO = DIVIDE-  pred COMPARE = MODULO-  pred FILTER = COMPARE-  pred MAP = FILTER-  pred CONCATMAP = MAP-  pred ORDERBY = CONCATMAP-  pred DISTINCT = ORDERBY-  pred LENGTH = DISTINCT-  pred UNION = LENGTH-  pred NTH = UNION-  pred STREAMTOARRAY = NTH-  pred ARRAYTOSTREAM = STREAMTOARRAY-  pred REDUCE = ARRAYTOSTREAM-  pred GROUPEDMAPREDUCE = REDUCE-  pred ANY = GROUPEDMAPREDUCE-  pred ALL = ANY-  pred RANGE = ALL-  pred IMPLICIT_WITHOUT = RANGE-  pred WITHOUT = IMPLICIT_WITHOUT-  pred _-   = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType"- -instance P'.Wire BuiltinType where-  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)-  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)-  wireGet 14 = P'.wireGetEnum toMaybe'Enum-  wireGet ft' = P'.wireGetErr ft'-  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum-  wireGetPacked ft' = P'.wireGetErr ft'- -instance P'.GPB BuiltinType- -instance P'.MessageAPI msg' (msg' -> BuiltinType) BuiltinType where-  getVal m' f' = f' m'- -instance P'.ReflectEnum BuiltinType where-  reflectEnum-   = [(1, "NOT", NOT), (2, "GETATTR", GETATTR), (3, "IMPLICIT_GETATTR", IMPLICIT_GETATTR), (4, "HASATTR", HASATTR),-      (5, "IMPLICIT_HASATTR", IMPLICIT_HASATTR), (6, "PICKATTRS", PICKATTRS), (7, "IMPLICIT_PICKATTRS", IMPLICIT_PICKATTRS),-      (8, "MAPMERGE", MAPMERGE), (9, "ARRAYAPPEND", ARRAYAPPEND), (11, "SLICE", SLICE), (14, "ADD", ADD),-      (15, "SUBTRACT", SUBTRACT), (16, "MULTIPLY", MULTIPLY), (17, "DIVIDE", DIVIDE), (18, "MODULO", MODULO),-      (19, "COMPARE", COMPARE), (20, "FILTER", FILTER), (21, "MAP", MAP), (22, "CONCATMAP", CONCATMAP), (23, "ORDERBY", ORDERBY),-      (24, "DISTINCT", DISTINCT), (26, "LENGTH", LENGTH), (27, "UNION", UNION), (28, "NTH", NTH),-      (29, "STREAMTOARRAY", STREAMTOARRAY), (30, "ARRAYTOSTREAM", ARRAYTOSTREAM), (31, "REDUCE", REDUCE),-      (32, "GROUPEDMAPREDUCE", GROUPEDMAPREDUCE), (35, "ANY", ANY), (36, "ALL", ALL), (37, "RANGE", RANGE),-      (38, "IMPLICIT_WITHOUT", IMPLICIT_WITHOUT), (39, "WITHOUT", WITHOUT)]-  reflectEnumInfo _-   = P'.EnumInfo-      (P'.makePNF (P'.pack ".Query_Language.Builtin.BuiltinType") ["Database", "RethinkDB", "Internal"]-        ["Query_Language", "Builtin"]-        "BuiltinType")-      ["Database", "RethinkDB", "Internal", "Query_Language", "Builtin", "BuiltinType.hs"]-      [(1, "NOT"), (2, "GETATTR"), (3, "IMPLICIT_GETATTR"), (4, "HASATTR"), (5, "IMPLICIT_HASATTR"), (6, "PICKATTRS"),-       (7, "IMPLICIT_PICKATTRS"), (8, "MAPMERGE"), (9, "ARRAYAPPEND"), (11, "SLICE"), (14, "ADD"), (15, "SUBTRACT"),-       (16, "MULTIPLY"), (17, "DIVIDE"), (18, "MODULO"), (19, "COMPARE"), (20, "FILTER"), (21, "MAP"), (22, "CONCATMAP"),-       (23, "ORDERBY"), (24, "DISTINCT"), (26, "LENGTH"), (27, "UNION"), (28, "NTH"), (29, "STREAMTOARRAY"), (30, "ARRAYTOSTREAM"),-       (31, "REDUCE"), (32, "GROUPEDMAPREDUCE"), (35, "ANY"), (36, "ALL"), (37, "RANGE"), (38, "IMPLICIT_WITHOUT"), (39, "WITHOUT")]
− Database/RethinkDB/Internal/Query_Language/Builtin/Comparison.hs
@@ -1,82 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.Comparison (Comparison(..)) where-import Prelude ((+), (/), (.))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data Comparison = EQ-                | NE-                | LT-                | LE-                | GT-                | GE-                deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Comparison- -instance Prelude'.Bounded Comparison where-  minBound = EQ-  maxBound = GE- -instance P'.Default Comparison where-  defaultValue = EQ- -toMaybe'Enum :: Prelude'.Int -> P'.Maybe Comparison-toMaybe'Enum 1 = Prelude'.Just EQ-toMaybe'Enum 2 = Prelude'.Just NE-toMaybe'Enum 3 = Prelude'.Just LT-toMaybe'Enum 4 = Prelude'.Just LE-toMaybe'Enum 5 = Prelude'.Just GT-toMaybe'Enum 6 = Prelude'.Just GE-toMaybe'Enum _ = Prelude'.Nothing- -instance Prelude'.Enum Comparison where-  fromEnum EQ = 1-  fromEnum NE = 2-  fromEnum LT = 3-  fromEnum LE = 4-  fromEnum GT = 5-  fromEnum GE = 6-  toEnum-   = P'.fromMaybe-      (Prelude'.error-        "hprotoc generated code: toEnum failure for type Database.RethinkDB.Internal.Query_Language.Builtin.Comparison")-      . toMaybe'Enum-  succ EQ = NE-  succ NE = LT-  succ LT = LE-  succ LE = GT-  succ GT = GE-  succ _-   = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Internal.Query_Language.Builtin.Comparison"-  pred NE = EQ-  pred LT = NE-  pred LE = LT-  pred GT = LE-  pred GE = GT-  pred _-   = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Internal.Query_Language.Builtin.Comparison"- -instance P'.Wire Comparison where-  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)-  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)-  wireGet 14 = P'.wireGetEnum toMaybe'Enum-  wireGet ft' = P'.wireGetErr ft'-  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum-  wireGetPacked ft' = P'.wireGetErr ft'- -instance P'.GPB Comparison- -instance P'.MessageAPI msg' (msg' -> Comparison) Comparison where-  getVal m' f' = f' m'- -instance P'.ReflectEnum Comparison where-  reflectEnum = [(1, "EQ", EQ), (2, "NE", NE), (3, "LT", LT), (4, "LE", LE), (5, "GT", GT), (6, "GE", GE)]-  reflectEnumInfo _-   = P'.EnumInfo-      (P'.makePNF (P'.pack ".Query_Language.Builtin.Comparison") ["Database", "RethinkDB", "Internal"] ["Query_Language", "Builtin"]-        "Comparison")-      ["Database", "RethinkDB", "Internal", "Query_Language", "Builtin", "Comparison.hs"]-      [(1, "EQ"), (2, "NE"), (3, "LT"), (4, "LE"), (5, "GT"), (6, "GE")]
− Database/RethinkDB/Internal/Query_Language/Builtin/ConcatMap.hs
@@ -1,58 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.ConcatMap (ConcatMap(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as Query_Language (Mapping)- -data ConcatMap = ConcatMap{mapping :: !Query_Language.Mapping}-               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable ConcatMap where-  mergeAppend (ConcatMap x'1) (ConcatMap y'1) = ConcatMap (P'.mergeAppend x'1 y'1)- -instance P'.Default ConcatMap where-  defaultValue = ConcatMap P'.defaultValue- -instance P'.Wire ConcatMap where-  wireSize ft' self'@(ConcatMap x'1)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1)-  wirePut ft' self'@(ConcatMap x'1)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{mapping = P'.mergeAppend (mapping old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> ConcatMap) ConcatMap where-  getVal m' f' = f' m'- -instance P'.GPB ConcatMap- -instance P'.ReflectDescriptor ConcatMap where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Builtin.ConcatMap\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"ConcatMap\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Builtin\",\"ConcatMap.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.ConcatMap.mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"ConcatMap\"], baseName' = FName \"mapping\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Builtin/Filter.hs
@@ -1,59 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.Filter (Filter(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Predicate as Query_Language (Predicate)- -data Filter = Filter{predicate :: !Query_Language.Predicate}-            deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Filter where-  mergeAppend (Filter x'1) (Filter y'1) = Filter (P'.mergeAppend x'1 y'1)- -instance P'.Default Filter where-  defaultValue = Filter P'.defaultValue- -instance P'.Wire Filter where-  wireSize ft' self'@(Filter x'1)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1)-  wirePut ft' self'@(Filter x'1)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{predicate = P'.mergeAppend (predicate old'Self) (new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Filter) Filter where-  getVal m' f' = f' m'- -instance P'.GPB Filter- -instance P'.ReflectDescriptor Filter where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Builtin.Filter\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"Filter\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Builtin\",\"Filter.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.Filter.predicate\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"Filter\"], baseName' = FName \"predicate\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Predicate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Predicate\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Builtin/GroupedMapReduce.hs
@@ -1,68 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.GroupedMapReduce (GroupedMapReduce(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as Query_Language (Mapping)-import qualified Database.RethinkDB.Internal.Query_Language.Reduction as Query_Language (Reduction)- -data GroupedMapReduce = GroupedMapReduce{group_mapping :: !Query_Language.Mapping, value_mapping :: !Query_Language.Mapping,-                                         reduction :: !Query_Language.Reduction}-                      deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable GroupedMapReduce where-  mergeAppend (GroupedMapReduce x'1 x'2 x'3) (GroupedMapReduce y'1 y'2 y'3)-   = GroupedMapReduce (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default GroupedMapReduce where-  defaultValue = GroupedMapReduce P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire GroupedMapReduce where-  wireSize ft' self'@(GroupedMapReduce x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 11 x'2 + P'.wireSizeReq 1 11 x'3)-  wirePut ft' self'@(GroupedMapReduce x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 11 x'2-             P'.wirePutReq 26 11 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{group_mapping = P'.mergeAppend (group_mapping old'Self) (new'Field)})-                    (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{value_mapping = P'.mergeAppend (value_mapping old'Self) (new'Field)})-                    (P'.wireGet 11)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{reduction = P'.mergeAppend (reduction old'Self) (new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> GroupedMapReduce) GroupedMapReduce where-  getVal m' f' = f' m'- -instance P'.GPB GroupedMapReduce- -instance P'.ReflectDescriptor GroupedMapReduce where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18, 26]) (P'.fromDistinctAscList [10, 18, 26])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Builtin.GroupedMapReduce\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"GroupedMapReduce\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Builtin\",\"GroupedMapReduce.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.GroupedMapReduce.group_mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"GroupedMapReduce\"], baseName' = FName \"group_mapping\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.GroupedMapReduce.value_mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"GroupedMapReduce\"], baseName' = FName \"value_mapping\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.GroupedMapReduce.reduction\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"GroupedMapReduce\"], baseName' = FName \"reduction\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Reduction\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Reduction\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Builtin/Map.hs
@@ -1,58 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.Map (Map(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as Query_Language (Mapping)- -data Map = Map{mapping :: !Query_Language.Mapping}-         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Map where-  mergeAppend (Map x'1) (Map y'1) = Map (P'.mergeAppend x'1 y'1)- -instance P'.Default Map where-  defaultValue = Map P'.defaultValue- -instance P'.Wire Map where-  wireSize ft' self'@(Map x'1)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1)-  wirePut ft' self'@(Map x'1)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{mapping = P'.mergeAppend (mapping old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Map) Map where-  getVal m' f' = f' m'- -instance P'.GPB Map- -instance P'.ReflectDescriptor Map where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Builtin.Map\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"Map\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Builtin\",\"Map.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.Map.mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"Map\"], baseName' = FName \"mapping\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Builtin/OrderBy.hs
@@ -1,59 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.OrderBy (OrderBy(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data OrderBy = OrderBy{attr :: !P'.Utf8, ascending :: !(P'.Maybe P'.Bool)}-             deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable OrderBy where-  mergeAppend (OrderBy x'1 x'2) (OrderBy y'1 y'2) = OrderBy (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)- -instance P'.Default OrderBy where-  defaultValue = OrderBy P'.defaultValue (Prelude'.Just Prelude'.True)- -instance P'.Wire OrderBy where-  wireSize ft' self'@(OrderBy x'1 x'2)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 9 x'1 + P'.wireSizeOpt 1 8 x'2)-  wirePut ft' self'@(OrderBy x'1 x'2)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 9 x'1-             P'.wirePutOpt 16 8 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{attr = new'Field}) (P'.wireGet 9)-             16 -> Prelude'.fmap (\ !new'Field -> old'Self{ascending = Prelude'.Just new'Field}) (P'.wireGet 8)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> OrderBy) OrderBy where-  getVal m' f' = f' m'- -instance P'.GPB OrderBy- -instance P'.ReflectDescriptor OrderBy where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10, 16])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Builtin.OrderBy\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"OrderBy\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Builtin\",\"OrderBy.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.OrderBy.attr\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"OrderBy\"], baseName' = FName \"attr\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.OrderBy.ascending\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"OrderBy\"], baseName' = FName \"ascending\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"true\", hsDefault = Just (HsDef'Bool True)}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Builtin/Range.hs
@@ -1,68 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Builtin.Range (Range(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Range = Range{attrname :: !P'.Utf8, lowerbound :: !(P'.Maybe Query_Language.Term),-                   upperbound :: !(P'.Maybe Query_Language.Term)}-           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Range where-  mergeAppend (Range x'1 x'2 x'3) (Range y'1 y'2 y'3)-   = Range (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default Range where-  defaultValue = Range P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire Range where-  wireSize ft' self'@(Range x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 9 x'1 + P'.wireSizeOpt 1 11 x'2 + P'.wireSizeOpt 1 11 x'3)-  wirePut ft' self'@(Range x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 9 x'1-             P'.wirePutOpt 18 11 x'2-             P'.wirePutOpt 26 11 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{attrname = new'Field}) (P'.wireGet 9)-             18 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{lowerbound = P'.mergeAppend (lowerbound old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             26 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{upperbound = P'.mergeAppend (upperbound old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Range) Range where-  getVal m' f' = f' m'- -instance P'.GPB Range- -instance P'.ReflectDescriptor Range where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10, 18, 26])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Builtin.Range\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Builtin\"], baseName = MName \"Range\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Builtin\",\"Range.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.Range.attrname\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"Range\"], baseName' = FName \"attrname\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.Range.lowerbound\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"Range\"], baseName' = FName \"lowerbound\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Builtin.Range.upperbound\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Builtin\",MName \"Range\"], baseName' = FName \"upperbound\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Mapping.hs
@@ -1,69 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Mapping (Mapping(..)) where-import Prelude ((+), (/), (==), (<=), (&&))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Mapping = Mapping{arg :: !P'.Utf8, body :: !Query_Language.Term, ext'field :: !P'.ExtField}-             deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.ExtendMessage Mapping where-  getExtField = ext'field-  putExtField e'f msg = msg{ext'field = e'f}-  validExtRanges msg = P'.extRanges (P'.reflectDescriptorInfo msg)- -instance P'.Mergeable Mapping where-  mergeAppend (Mapping x'1 x'2 x'3) (Mapping y'1 y'2 y'3)-   = Mapping (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default Mapping where-  defaultValue = Mapping P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire Mapping where-  wireSize ft' self'@(Mapping x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 9 x'1 + P'.wireSizeReq 1 11 x'2 + P'.wireSizeExtField x'3)-  wirePut ft' self'@(Mapping x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 9 x'1-             P'.wirePutReq 18 11 x'2-             P'.wirePutExtField x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{arg = new'Field}) (P'.wireGet 9)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{body = P'.mergeAppend (body old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in-                   if Prelude'.or [1000 <= field'Number && field'Number <= 1099] then-                    P'.loadExtension field'Number wire'Type old'Self else P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Mapping) Mapping where-  getVal m' f' = f' m'- -instance P'.GPB Mapping- -instance P'.ReflectDescriptor Mapping where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18]) (P'.fromDistinctAscList [10, 18])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Mapping.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Mapping.arg\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Mapping\"], baseName' = FName \"arg\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Mapping.body\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Mapping\"], baseName' = FName \"body\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 1000},FieldId {getFieldId = 1099})], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/MetaQuery.hs
@@ -1,73 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.MetaQuery (MetaQuery(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.MetaQuery.CreateTable as Query_Language.MetaQuery (CreateTable)-import qualified Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType as Query_Language.MetaQuery (MetaQueryType)-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)- -data MetaQuery = MetaQuery{type' :: !Query_Language.MetaQuery.MetaQueryType, db_name :: !(P'.Maybe P'.Utf8),-                           create_table :: !(P'.Maybe Query_Language.MetaQuery.CreateTable),-                           drop_table :: !(P'.Maybe Query_Language.TableRef)}-               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable MetaQuery where-  mergeAppend (MetaQuery x'1 x'2 x'3 x'4) (MetaQuery y'1 y'2 y'3 y'4)-   = MetaQuery (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)- -instance P'.Default MetaQuery where-  defaultValue = MetaQuery P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire MetaQuery where-  wireSize ft' self'@(MetaQuery x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 14 x'1 + P'.wireSizeOpt 1 9 x'2 + P'.wireSizeOpt 1 11 x'3 + P'.wireSizeOpt 1 11 x'4)-  wirePut ft' self'@(MetaQuery x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 8 14 x'1-             P'.wirePutOpt 18 9 x'2-             P'.wirePutOpt 26 11 x'3-             P'.wirePutOpt 34 11 x'4-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = new'Field}) (P'.wireGet 14)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{db_name = Prelude'.Just new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{create_table = P'.mergeAppend (create_table old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             34 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{drop_table = P'.mergeAppend (drop_table old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> MetaQuery) MetaQuery where-  getVal m' f' = f' m'- -instance P'.GPB MetaQuery- -instance P'.ReflectDescriptor MetaQuery where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [8]) (P'.fromDistinctAscList [8, 18, 26, 34])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.MetaQuery\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"MetaQuery\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"MetaQuery.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.MetaQuery.MetaQueryType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"MetaQuery\"], baseName = MName \"MetaQueryType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.db_name\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\"], baseName' = FName \"db_name\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.create_table\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\"], baseName' = FName \"create_table\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.MetaQuery.CreateTable\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"MetaQuery\"], baseName = MName \"CreateTable\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.drop_table\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\"], baseName' = FName \"drop_table\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/MetaQuery/CreateTable.hs
@@ -1,67 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.MetaQuery.CreateTable (CreateTable(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)- -data CreateTable = CreateTable{datacenter :: !(P'.Maybe P'.Utf8), table_ref :: !Query_Language.TableRef,-                               primary_key :: !(P'.Maybe P'.Utf8), cache_size :: !(P'.Maybe P'.Int64)}-                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable CreateTable where-  mergeAppend (CreateTable x'1 x'2 x'3 x'4) (CreateTable y'1 y'2 y'3 y'4)-   = CreateTable (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)- -instance P'.Default CreateTable where-  defaultValue = CreateTable P'.defaultValue P'.defaultValue (Prelude'.Just (P'.Utf8 (P'.pack "id"))) (Prelude'.Just 1073741824)- -instance P'.Wire CreateTable where-  wireSize ft' self'@(CreateTable x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeOpt 1 9 x'1 + P'.wireSizeReq 1 11 x'2 + P'.wireSizeOpt 1 9 x'3 + P'.wireSizeOpt 1 3 x'4)-  wirePut ft' self'@(CreateTable x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutOpt 10 9 x'1-             P'.wirePutReq 26 11 x'2-             P'.wirePutOpt 34 9 x'3-             P'.wirePutOpt 40 3 x'4-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{datacenter = Prelude'.Just new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{table_ref = P'.mergeAppend (table_ref old'Self) (new'Field)})-                    (P'.wireGet 11)-             34 -> Prelude'.fmap (\ !new'Field -> old'Self{primary_key = Prelude'.Just new'Field}) (P'.wireGet 9)-             40 -> Prelude'.fmap (\ !new'Field -> old'Self{cache_size = Prelude'.Just new'Field}) (P'.wireGet 3)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> CreateTable) CreateTable where-  getVal m' f' = f' m'- -instance P'.GPB CreateTable- -instance P'.ReflectDescriptor CreateTable where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [26]) (P'.fromDistinctAscList [10, 26, 34, 40])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.MetaQuery.CreateTable\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"MetaQuery\"], baseName = MName \"CreateTable\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"MetaQuery\",\"CreateTable.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.CreateTable.datacenter\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\",MName \"CreateTable\"], baseName' = FName \"datacenter\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.CreateTable.table_ref\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\",MName \"CreateTable\"], baseName' = FName \"table_ref\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.CreateTable.primary_key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\",MName \"CreateTable\"], baseName' = FName \"primary_key\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Just \"id\", hsDefault = Just (HsDef'ByteString \"id\")},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.MetaQuery.CreateTable.cache_size\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"MetaQuery\",MName \"CreateTable\"], baseName' = FName \"cache_size\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Just \"1073741824\", hsDefault = Just (HsDef'Integer 1073741824)}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/MetaQuery/MetaQueryType.hs
@@ -1,87 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType (MetaQueryType(..)) where-import Prelude ((+), (/), (.))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data MetaQueryType = CREATE_DB-                   | DROP_DB-                   | LIST_DBS-                   | CREATE_TABLE-                   | DROP_TABLE-                   | LIST_TABLES-                   deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable MetaQueryType- -instance Prelude'.Bounded MetaQueryType where-  minBound = CREATE_DB-  maxBound = LIST_TABLES- -instance P'.Default MetaQueryType where-  defaultValue = CREATE_DB- -toMaybe'Enum :: Prelude'.Int -> P'.Maybe MetaQueryType-toMaybe'Enum 1 = Prelude'.Just CREATE_DB-toMaybe'Enum 2 = Prelude'.Just DROP_DB-toMaybe'Enum 3 = Prelude'.Just LIST_DBS-toMaybe'Enum 4 = Prelude'.Just CREATE_TABLE-toMaybe'Enum 5 = Prelude'.Just DROP_TABLE-toMaybe'Enum 6 = Prelude'.Just LIST_TABLES-toMaybe'Enum _ = Prelude'.Nothing- -instance Prelude'.Enum MetaQueryType where-  fromEnum CREATE_DB = 1-  fromEnum DROP_DB = 2-  fromEnum LIST_DBS = 3-  fromEnum CREATE_TABLE = 4-  fromEnum DROP_TABLE = 5-  fromEnum LIST_TABLES = 6-  toEnum-   = P'.fromMaybe-      (Prelude'.error-        "hprotoc generated code: toEnum failure for type Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType")-      . toMaybe'Enum-  succ CREATE_DB = DROP_DB-  succ DROP_DB = LIST_DBS-  succ LIST_DBS = CREATE_TABLE-  succ CREATE_TABLE = DROP_TABLE-  succ DROP_TABLE = LIST_TABLES-  succ _-   = Prelude'.error-      "hprotoc generated code: succ failure for type Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType"-  pred DROP_DB = CREATE_DB-  pred LIST_DBS = DROP_DB-  pred CREATE_TABLE = LIST_DBS-  pred DROP_TABLE = CREATE_TABLE-  pred LIST_TABLES = DROP_TABLE-  pred _-   = Prelude'.error-      "hprotoc generated code: pred failure for type Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType"- -instance P'.Wire MetaQueryType where-  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)-  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)-  wireGet 14 = P'.wireGetEnum toMaybe'Enum-  wireGet ft' = P'.wireGetErr ft'-  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum-  wireGetPacked ft' = P'.wireGetErr ft'- -instance P'.GPB MetaQueryType- -instance P'.MessageAPI msg' (msg' -> MetaQueryType) MetaQueryType where-  getVal m' f' = f' m'- -instance P'.ReflectEnum MetaQueryType where-  reflectEnum-   = [(1, "CREATE_DB", CREATE_DB), (2, "DROP_DB", DROP_DB), (3, "LIST_DBS", LIST_DBS), (4, "CREATE_TABLE", CREATE_TABLE),-      (5, "DROP_TABLE", DROP_TABLE), (6, "LIST_TABLES", LIST_TABLES)]-  reflectEnumInfo _-   = P'.EnumInfo-      (P'.makePNF (P'.pack ".Query_Language.MetaQuery.MetaQueryType") ["Database", "RethinkDB", "Internal"]-        ["Query_Language", "MetaQuery"]-        "MetaQueryType")-      ["Database", "RethinkDB", "Internal", "Query_Language", "MetaQuery", "MetaQueryType.hs"]-      [(1, "CREATE_DB"), (2, "DROP_DB"), (3, "LIST_DBS"), (4, "CREATE_TABLE"), (5, "DROP_TABLE"), (6, "LIST_TABLES")]
− Database/RethinkDB/Internal/Query_Language/Predicate.hs
@@ -1,60 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Predicate (Predicate(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Predicate = Predicate{arg :: !P'.Utf8, body :: !Query_Language.Term}-               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Predicate where-  mergeAppend (Predicate x'1 x'2) (Predicate y'1 y'2) = Predicate (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)- -instance P'.Default Predicate where-  defaultValue = Predicate P'.defaultValue P'.defaultValue- -instance P'.Wire Predicate where-  wireSize ft' self'@(Predicate x'1 x'2)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 9 x'1 + P'.wireSizeReq 1 11 x'2)-  wirePut ft' self'@(Predicate x'1 x'2)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 9 x'1-             P'.wirePutReq 18 11 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{arg = new'Field}) (P'.wireGet 9)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{body = P'.mergeAppend (body old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Predicate) Predicate where-  getVal m' f' = f' m'- -instance P'.GPB Predicate- -instance P'.ReflectDescriptor Predicate where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18]) (P'.fromDistinctAscList [10, 18])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Predicate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Predicate\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Predicate.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Predicate.arg\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Predicate\"], baseName' = FName \"arg\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Predicate.body\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Predicate\"], baseName' = FName \"body\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Query.hs
@@ -1,80 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Query (Query(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.MetaQuery as Query_Language (MetaQuery)-import qualified Database.RethinkDB.Internal.Query_Language.Query.QueryType as Query_Language.Query (QueryType)-import qualified Database.RethinkDB.Internal.Query_Language.ReadQuery as Query_Language (ReadQuery)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery as Query_Language (WriteQuery)- -data Query = Query{type' :: !Query_Language.Query.QueryType, token :: !P'.Int64, read_query :: !(P'.Maybe Query_Language.ReadQuery),-                   write_query :: !(P'.Maybe Query_Language.WriteQuery), meta_query :: !(P'.Maybe Query_Language.MetaQuery)}-           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Query where-  mergeAppend (Query x'1 x'2 x'3 x'4 x'5) (Query y'1 y'2 y'3 y'4 y'5)-   = Query (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)-      (P'.mergeAppend x'5 y'5)- -instance P'.Default Query where-  defaultValue = Query P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire Query where-  wireSize ft' self'@(Query x'1 x'2 x'3 x'4 x'5)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size-         = (P'.wireSizeReq 1 14 x'1 + P'.wireSizeReq 1 3 x'2 + P'.wireSizeOpt 1 11 x'3 + P'.wireSizeOpt 1 11 x'4 +-             P'.wireSizeOpt 1 11 x'5)-  wirePut ft' self'@(Query x'1 x'2 x'3 x'4 x'5)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 8 14 x'1-             P'.wirePutReq 16 3 x'2-             P'.wirePutOpt 26 11 x'3-             P'.wirePutOpt 34 11 x'4-             P'.wirePutOpt 42 11 x'5-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = new'Field}) (P'.wireGet 14)-             16 -> Prelude'.fmap (\ !new'Field -> old'Self{token = new'Field}) (P'.wireGet 3)-             26 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{read_query = P'.mergeAppend (read_query old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             34 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{write_query = P'.mergeAppend (write_query old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             42 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{meta_query = P'.mergeAppend (meta_query old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Query) Query where-  getVal m' f' = f' m'- -instance P'.GPB Query- -instance P'.ReflectDescriptor Query where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [8, 16]) (P'.fromDistinctAscList [8, 16, 26, 34, 42])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Query\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Query\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Query.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Query.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Query\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Query.QueryType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Query\"], baseName = MName \"QueryType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Query.token\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Query\"], baseName' = FName \"token\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Query.read_query\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Query\"], baseName' = FName \"read_query\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.ReadQuery\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"ReadQuery\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Query.write_query\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Query\"], baseName' = FName \"write_query\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"WriteQuery\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Query.meta_query\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Query\"], baseName' = FName \"meta_query\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.MetaQuery\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"MetaQuery\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Query/QueryType.hs
@@ -1,74 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Query.QueryType (QueryType(..)) where-import Prelude ((+), (/), (.))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data QueryType = READ-               | WRITE-               | CONTINUE-               | STOP-               | META-               deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable QueryType- -instance Prelude'.Bounded QueryType where-  minBound = READ-  maxBound = META- -instance P'.Default QueryType where-  defaultValue = READ- -toMaybe'Enum :: Prelude'.Int -> P'.Maybe QueryType-toMaybe'Enum 1 = Prelude'.Just READ-toMaybe'Enum 2 = Prelude'.Just WRITE-toMaybe'Enum 3 = Prelude'.Just CONTINUE-toMaybe'Enum 4 = Prelude'.Just STOP-toMaybe'Enum 5 = Prelude'.Just META-toMaybe'Enum _ = Prelude'.Nothing- -instance Prelude'.Enum QueryType where-  fromEnum READ = 1-  fromEnum WRITE = 2-  fromEnum CONTINUE = 3-  fromEnum STOP = 4-  fromEnum META = 5-  toEnum-   = P'.fromMaybe-      (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Internal.Query_Language.Query.QueryType")-      . toMaybe'Enum-  succ READ = WRITE-  succ WRITE = CONTINUE-  succ CONTINUE = STOP-  succ STOP = META-  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Internal.Query_Language.Query.QueryType"-  pred WRITE = READ-  pred CONTINUE = WRITE-  pred STOP = CONTINUE-  pred META = STOP-  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Internal.Query_Language.Query.QueryType"- -instance P'.Wire QueryType where-  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)-  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)-  wireGet 14 = P'.wireGetEnum toMaybe'Enum-  wireGet ft' = P'.wireGetErr ft'-  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum-  wireGetPacked ft' = P'.wireGetErr ft'- -instance P'.GPB QueryType- -instance P'.MessageAPI msg' (msg' -> QueryType) QueryType where-  getVal m' f' = f' m'- -instance P'.ReflectEnum QueryType where-  reflectEnum = [(1, "READ", READ), (2, "WRITE", WRITE), (3, "CONTINUE", CONTINUE), (4, "STOP", STOP), (5, "META", META)]-  reflectEnumInfo _-   = P'.EnumInfo-      (P'.makePNF (P'.pack ".Query_Language.Query.QueryType") ["Database", "RethinkDB", "Internal"] ["Query_Language", "Query"]-        "QueryType")-      ["Database", "RethinkDB", "Internal", "Query_Language", "Query", "QueryType.hs"]-      [(1, "READ"), (2, "WRITE"), (3, "CONTINUE"), (4, "STOP"), (5, "META")]
− Database/RethinkDB/Internal/Query_Language/ReadQuery.hs
@@ -1,72 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.ReadQuery (ReadQuery(..)) where-import Prelude ((+), (/), (==), (<=), (&&))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data ReadQuery = ReadQuery{term :: !Query_Language.Term, max_chunk_size :: !(P'.Maybe P'.Int64), max_age :: !(P'.Maybe P'.Int64),-                           ext'field :: !P'.ExtField}-               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.ExtendMessage ReadQuery where-  getExtField = ext'field-  putExtField e'f msg = msg{ext'field = e'f}-  validExtRanges msg = P'.extRanges (P'.reflectDescriptorInfo msg)- -instance P'.Mergeable ReadQuery where-  mergeAppend (ReadQuery x'1 x'2 x'3 x'4) (ReadQuery y'1 y'2 y'3 y'4)-   = ReadQuery (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)- -instance P'.Default ReadQuery where-  defaultValue = ReadQuery P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire ReadQuery where-  wireSize ft' self'@(ReadQuery x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeOpt 1 3 x'2 + P'.wireSizeOpt 1 3 x'3 + P'.wireSizeExtField x'4)-  wirePut ft' self'@(ReadQuery x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutOpt 16 3 x'2-             P'.wirePutOpt 24 3 x'3-             P'.wirePutExtField x'4-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{term = P'.mergeAppend (term old'Self) (new'Field)}) (P'.wireGet 11)-             16 -> Prelude'.fmap (\ !new'Field -> old'Self{max_chunk_size = Prelude'.Just new'Field}) (P'.wireGet 3)-             24 -> Prelude'.fmap (\ !new'Field -> old'Self{max_age = Prelude'.Just new'Field}) (P'.wireGet 3)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in-                   if Prelude'.or [1000 <= field'Number && field'Number <= 1099] then-                    P'.loadExtension field'Number wire'Type old'Self else P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> ReadQuery) ReadQuery where-  getVal m' f' = f' m'- -instance P'.GPB ReadQuery- -instance P'.ReflectDescriptor ReadQuery where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10, 16, 24])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.ReadQuery\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"ReadQuery\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"ReadQuery.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.ReadQuery.term\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"ReadQuery\"], baseName' = FName \"term\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.ReadQuery.max_chunk_size\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"ReadQuery\"], baseName' = FName \"max_chunk_size\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.ReadQuery.max_age\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"ReadQuery\"], baseName' = FName \"max_age\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 1000},FieldId {getFieldId = 1099})], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Reduction.hs
@@ -1,65 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Reduction (Reduction(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Reduction = Reduction{base :: !Query_Language.Term, var1 :: !P'.Utf8, var2 :: !P'.Utf8, body :: !Query_Language.Term}-               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Reduction where-  mergeAppend (Reduction x'1 x'2 x'3 x'4) (Reduction y'1 y'2 y'3 y'4)-   = Reduction (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)- -instance P'.Default Reduction where-  defaultValue = Reduction P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire Reduction where-  wireSize ft' self'@(Reduction x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 9 x'2 + P'.wireSizeReq 1 9 x'3 + P'.wireSizeReq 1 11 x'4)-  wirePut ft' self'@(Reduction x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 9 x'2-             P'.wirePutReq 26 9 x'3-             P'.wirePutReq 34 11 x'4-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{base = P'.mergeAppend (base old'Self) (new'Field)}) (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{var1 = new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{var2 = new'Field}) (P'.wireGet 9)-             34 -> Prelude'.fmap (\ !new'Field -> old'Self{body = P'.mergeAppend (body old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Reduction) Reduction where-  getVal m' f' = f' m'- -instance P'.GPB Reduction- -instance P'.ReflectDescriptor Reduction where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18, 26, 34]) (P'.fromDistinctAscList [10, 18, 26, 34])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Reduction\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Reduction\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Reduction.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Reduction.base\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Reduction\"], baseName' = FName \"base\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Reduction.var1\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Reduction\"], baseName' = FName \"var1\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Reduction.var2\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Reduction\"], baseName' = FName \"var2\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Reduction.body\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Reduction\"], baseName' = FName \"body\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Response.hs
@@ -1,74 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Response (Response(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Response.Backtrace as Query_Language.Response (Backtrace)-import qualified Database.RethinkDB.Internal.Query_Language.Response.StatusCode as Query_Language.Response (StatusCode)- -data Response = Response{status_code :: !Query_Language.Response.StatusCode, token :: !P'.Int64, response :: !(P'.Seq P'.Utf8),-                         error_message :: !(P'.Maybe P'.Utf8), backtrace :: !(P'.Maybe Query_Language.Response.Backtrace)}-              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Response where-  mergeAppend (Response x'1 x'2 x'3 x'4 x'5) (Response y'1 y'2 y'3 y'4 y'5)-   = Response (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)-      (P'.mergeAppend x'5 y'5)- -instance P'.Default Response where-  defaultValue = Response P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire Response where-  wireSize ft' self'@(Response x'1 x'2 x'3 x'4 x'5)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size-         = (P'.wireSizeReq 1 14 x'1 + P'.wireSizeReq 1 3 x'2 + P'.wireSizeRep 1 9 x'3 + P'.wireSizeOpt 1 9 x'4 +-             P'.wireSizeOpt 1 11 x'5)-  wirePut ft' self'@(Response x'1 x'2 x'3 x'4 x'5)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 8 14 x'1-             P'.wirePutReq 16 3 x'2-             P'.wirePutRep 26 9 x'3-             P'.wirePutOpt 34 9 x'4-             P'.wirePutOpt 42 11 x'5-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             8 -> Prelude'.fmap (\ !new'Field -> old'Self{status_code = new'Field}) (P'.wireGet 14)-             16 -> Prelude'.fmap (\ !new'Field -> old'Self{token = new'Field}) (P'.wireGet 3)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{response = P'.append (response old'Self) new'Field}) (P'.wireGet 9)-             34 -> Prelude'.fmap (\ !new'Field -> old'Self{error_message = Prelude'.Just new'Field}) (P'.wireGet 9)-             42 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{backtrace = P'.mergeAppend (backtrace old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Response) Response where-  getVal m' f' = f' m'- -instance P'.GPB Response- -instance P'.ReflectDescriptor Response where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [8, 16]) (P'.fromDistinctAscList [8, 16, 26, 34, 42])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Response\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Response\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Response.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Response.status_code\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Response\"], baseName' = FName \"status_code\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Response.StatusCode\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Response\"], baseName = MName \"StatusCode\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Response.token\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Response\"], baseName' = FName \"token\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Response.response\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Response\"], baseName' = FName \"response\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Response.error_message\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Response\"], baseName' = FName \"error_message\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Response.backtrace\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Response\"], baseName' = FName \"backtrace\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Response.Backtrace\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Response\"], baseName = MName \"Backtrace\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Response/Backtrace.hs
@@ -1,57 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Response.Backtrace (Backtrace(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data Backtrace = Backtrace{frame :: !(P'.Seq P'.Utf8)}-               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Backtrace where-  mergeAppend (Backtrace x'1) (Backtrace y'1) = Backtrace (P'.mergeAppend x'1 y'1)- -instance P'.Default Backtrace where-  defaultValue = Backtrace P'.defaultValue- -instance P'.Wire Backtrace where-  wireSize ft' self'@(Backtrace x'1)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeRep 1 9 x'1)-  wirePut ft' self'@(Backtrace x'1)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutRep 10 9 x'1-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{frame = P'.append (frame old'Self) new'Field}) (P'.wireGet 9)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Backtrace) Backtrace where-  getVal m' f' = f' m'- -instance P'.GPB Backtrace- -instance P'.ReflectDescriptor Backtrace where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [10])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Response.Backtrace\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Response\"], baseName = MName \"Backtrace\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Response\",\"Backtrace.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Response.Backtrace.frame\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Response\",MName \"Backtrace\"], baseName' = FName \"frame\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Response/StatusCode.hs
@@ -1,92 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Response.StatusCode (StatusCode(..)) where-import Prelude ((+), (/), (.))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data StatusCode = SUCCESS_EMPTY-                | SUCCESS_JSON-                | SUCCESS_PARTIAL-                | SUCCESS_STREAM-                | BROKEN_CLIENT-                | BAD_QUERY-                | RUNTIME_ERROR-                deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable StatusCode- -instance Prelude'.Bounded StatusCode where-  minBound = SUCCESS_EMPTY-  maxBound = RUNTIME_ERROR- -instance P'.Default StatusCode where-  defaultValue = SUCCESS_EMPTY- -toMaybe'Enum :: Prelude'.Int -> P'.Maybe StatusCode-toMaybe'Enum 0 = Prelude'.Just SUCCESS_EMPTY-toMaybe'Enum 1 = Prelude'.Just SUCCESS_JSON-toMaybe'Enum 2 = Prelude'.Just SUCCESS_PARTIAL-toMaybe'Enum 3 = Prelude'.Just SUCCESS_STREAM-toMaybe'Enum 101 = Prelude'.Just BROKEN_CLIENT-toMaybe'Enum 102 = Prelude'.Just BAD_QUERY-toMaybe'Enum 103 = Prelude'.Just RUNTIME_ERROR-toMaybe'Enum _ = Prelude'.Nothing- -instance Prelude'.Enum StatusCode where-  fromEnum SUCCESS_EMPTY = 0-  fromEnum SUCCESS_JSON = 1-  fromEnum SUCCESS_PARTIAL = 2-  fromEnum SUCCESS_STREAM = 3-  fromEnum BROKEN_CLIENT = 101-  fromEnum BAD_QUERY = 102-  fromEnum RUNTIME_ERROR = 103-  toEnum-   = P'.fromMaybe-      (Prelude'.error-        "hprotoc generated code: toEnum failure for type Database.RethinkDB.Internal.Query_Language.Response.StatusCode")-      . toMaybe'Enum-  succ SUCCESS_EMPTY = SUCCESS_JSON-  succ SUCCESS_JSON = SUCCESS_PARTIAL-  succ SUCCESS_PARTIAL = SUCCESS_STREAM-  succ SUCCESS_STREAM = BROKEN_CLIENT-  succ BROKEN_CLIENT = BAD_QUERY-  succ BAD_QUERY = RUNTIME_ERROR-  succ _-   = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Internal.Query_Language.Response.StatusCode"-  pred SUCCESS_JSON = SUCCESS_EMPTY-  pred SUCCESS_PARTIAL = SUCCESS_JSON-  pred SUCCESS_STREAM = SUCCESS_PARTIAL-  pred BROKEN_CLIENT = SUCCESS_STREAM-  pred BAD_QUERY = BROKEN_CLIENT-  pred RUNTIME_ERROR = BAD_QUERY-  pred _-   = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Internal.Query_Language.Response.StatusCode"- -instance P'.Wire StatusCode where-  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)-  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)-  wireGet 14 = P'.wireGetEnum toMaybe'Enum-  wireGet ft' = P'.wireGetErr ft'-  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum-  wireGetPacked ft' = P'.wireGetErr ft'- -instance P'.GPB StatusCode- -instance P'.MessageAPI msg' (msg' -> StatusCode) StatusCode where-  getVal m' f' = f' m'- -instance P'.ReflectEnum StatusCode where-  reflectEnum-   = [(0, "SUCCESS_EMPTY", SUCCESS_EMPTY), (1, "SUCCESS_JSON", SUCCESS_JSON), (2, "SUCCESS_PARTIAL", SUCCESS_PARTIAL),-      (3, "SUCCESS_STREAM", SUCCESS_STREAM), (101, "BROKEN_CLIENT", BROKEN_CLIENT), (102, "BAD_QUERY", BAD_QUERY),-      (103, "RUNTIME_ERROR", RUNTIME_ERROR)]-  reflectEnumInfo _-   = P'.EnumInfo-      (P'.makePNF (P'.pack ".Query_Language.Response.StatusCode") ["Database", "RethinkDB", "Internal"]-        ["Query_Language", "Response"]-        "StatusCode")-      ["Database", "RethinkDB", "Internal", "Query_Language", "Response", "StatusCode.hs"]-      [(0, "SUCCESS_EMPTY"), (1, "SUCCESS_JSON"), (2, "SUCCESS_PARTIAL"), (3, "SUCCESS_STREAM"), (101, "BROKEN_CLIENT"),-       (102, "BAD_QUERY"), (103, "RUNTIME_ERROR")]
− Database/RethinkDB/Internal/Query_Language/TableRef.hs
@@ -1,62 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.TableRef (TableRef(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data TableRef = TableRef{db_name :: !P'.Utf8, table_name :: !P'.Utf8, use_outdated :: !(P'.Maybe P'.Bool)}-              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable TableRef where-  mergeAppend (TableRef x'1 x'2 x'3) (TableRef y'1 y'2 y'3)-   = TableRef (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default TableRef where-  defaultValue = TableRef P'.defaultValue P'.defaultValue (Prelude'.Just Prelude'.False)- -instance P'.Wire TableRef where-  wireSize ft' self'@(TableRef x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 9 x'1 + P'.wireSizeReq 1 9 x'2 + P'.wireSizeOpt 1 8 x'3)-  wirePut ft' self'@(TableRef x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 9 x'1-             P'.wirePutReq 18 9 x'2-             P'.wirePutOpt 24 8 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{db_name = new'Field}) (P'.wireGet 9)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{table_name = new'Field}) (P'.wireGet 9)-             24 -> Prelude'.fmap (\ !new'Field -> old'Self{use_outdated = Prelude'.Just new'Field}) (P'.wireGet 8)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> TableRef) TableRef where-  getVal m' f' = f' m'- -instance P'.GPB TableRef- -instance P'.ReflectDescriptor TableRef where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18]) (P'.fromDistinctAscList [10, 18, 24])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"TableRef.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.TableRef.db_name\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"TableRef\"], baseName' = FName \"db_name\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.TableRef.table_name\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"TableRef\"], baseName' = FName \"table_name\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.TableRef.use_outdated\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"TableRef\"], baseName' = FName \"use_outdated\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"false\", hsDefault = Just (HsDef'Bool False)}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Term.hs
@@ -1,150 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term (Term(..)) where-import Prelude ((+), (/), (==), (<=), (&&))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Term.Call as Query_Language.Term (Call)-import qualified Database.RethinkDB.Internal.Query_Language.Term.GetByKey as Query_Language.Term (GetByKey)-import qualified Database.RethinkDB.Internal.Query_Language.Term.If as Query_Language.Term (If)-import qualified Database.RethinkDB.Internal.Query_Language.Term.Let as Query_Language.Term (Let)-import qualified Database.RethinkDB.Internal.Query_Language.Term.Table as Query_Language.Term (Table)-import qualified Database.RethinkDB.Internal.Query_Language.Term.TermType as Query_Language.Term (TermType)-import qualified Database.RethinkDB.Internal.Query_Language.VarTermTuple as Query_Language (VarTermTuple)- -data Term = Term{type' :: !Query_Language.Term.TermType, var :: !(P'.Maybe P'.Utf8), let' :: !(P'.Maybe Query_Language.Term.Let),-                 call :: !(P'.Maybe Query_Language.Term.Call), if_ :: !(P'.Maybe Query_Language.Term.If),-                 error :: !(P'.Maybe P'.Utf8), number :: !(P'.Maybe P'.Double), valuestring :: !(P'.Maybe P'.Utf8),-                 jsonstring :: !(P'.Maybe P'.Utf8), valuebool :: !(P'.Maybe P'.Bool), array :: !(P'.Seq Term),-                 object :: !(P'.Seq Query_Language.VarTermTuple), get_by_key :: !(P'.Maybe Query_Language.Term.GetByKey),-                 table :: !(P'.Maybe Query_Language.Term.Table), javascript :: !(P'.Maybe P'.Utf8), ext'field :: !P'.ExtField}-          deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.ExtendMessage Term where-  getExtField = ext'field-  putExtField e'f msg = msg{ext'field = e'f}-  validExtRanges msg = P'.extRanges (P'.reflectDescriptorInfo msg)- -instance P'.Mergeable Term where-  mergeAppend (Term x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10 x'11 x'12 x'13 x'14 x'15 x'16)-   (Term y'1 y'2 y'3 y'4 y'5 y'6 y'7 y'8 y'9 y'10 y'11 y'12 y'13 y'14 y'15 y'16)-   = Term (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)-      (P'.mergeAppend x'5 y'5)-      (P'.mergeAppend x'6 y'6)-      (P'.mergeAppend x'7 y'7)-      (P'.mergeAppend x'8 y'8)-      (P'.mergeAppend x'9 y'9)-      (P'.mergeAppend x'10 y'10)-      (P'.mergeAppend x'11 y'11)-      (P'.mergeAppend x'12 y'12)-      (P'.mergeAppend x'13 y'13)-      (P'.mergeAppend x'14 y'14)-      (P'.mergeAppend x'15 y'15)-      (P'.mergeAppend x'16 y'16)- -instance P'.Default Term where-  defaultValue-   = Term P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue- -instance P'.Wire Term where-  wireSize ft' self'@(Term x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10 x'11 x'12 x'13 x'14 x'15 x'16)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size-         = (P'.wireSizeReq 1 14 x'1 + P'.wireSizeOpt 1 9 x'2 + P'.wireSizeOpt 1 11 x'3 + P'.wireSizeOpt 1 11 x'4 +-             P'.wireSizeOpt 1 11 x'5-             + P'.wireSizeOpt 1 9 x'6-             + P'.wireSizeOpt 1 1 x'7-             + P'.wireSizeOpt 1 9 x'8-             + P'.wireSizeOpt 1 9 x'9-             + P'.wireSizeOpt 1 8 x'10-             + P'.wireSizeRep 1 11 x'11-             + P'.wireSizeRep 1 11 x'12-             + P'.wireSizeOpt 1 11 x'13-             + P'.wireSizeOpt 1 11 x'14-             + P'.wireSizeOpt 2 9 x'15-             + P'.wireSizeExtField x'16)-  wirePut ft' self'@(Term x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10 x'11 x'12 x'13 x'14 x'15 x'16)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 8 14 x'1-             P'.wirePutOpt 18 9 x'2-             P'.wirePutOpt 26 11 x'3-             P'.wirePutOpt 34 11 x'4-             P'.wirePutOpt 42 11 x'5-             P'.wirePutOpt 50 9 x'6-             P'.wirePutOpt 57 1 x'7-             P'.wirePutOpt 66 9 x'8-             P'.wirePutOpt 74 9 x'9-             P'.wirePutOpt 80 8 x'10-             P'.wirePutRep 90 11 x'11-             P'.wirePutRep 98 11 x'12-             P'.wirePutOpt 114 11 x'13-             P'.wirePutOpt 122 11 x'14-             P'.wirePutOpt 130 9 x'15-             P'.wirePutExtField x'16-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = new'Field}) (P'.wireGet 14)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{var = Prelude'.Just new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{let' = P'.mergeAppend (let' old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             34 -> Prelude'.fmap (\ !new'Field -> old'Self{call = P'.mergeAppend (call old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             42 -> Prelude'.fmap (\ !new'Field -> old'Self{if_ = P'.mergeAppend (if_ old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             50 -> Prelude'.fmap (\ !new'Field -> old'Self{error = Prelude'.Just new'Field}) (P'.wireGet 9)-             57 -> Prelude'.fmap (\ !new'Field -> old'Self{number = Prelude'.Just new'Field}) (P'.wireGet 1)-             66 -> Prelude'.fmap (\ !new'Field -> old'Self{valuestring = Prelude'.Just new'Field}) (P'.wireGet 9)-             74 -> Prelude'.fmap (\ !new'Field -> old'Self{jsonstring = Prelude'.Just new'Field}) (P'.wireGet 9)-             80 -> Prelude'.fmap (\ !new'Field -> old'Self{valuebool = Prelude'.Just new'Field}) (P'.wireGet 8)-             90 -> Prelude'.fmap (\ !new'Field -> old'Self{array = P'.append (array old'Self) new'Field}) (P'.wireGet 11)-             98 -> Prelude'.fmap (\ !new'Field -> old'Self{object = P'.append (object old'Self) new'Field}) (P'.wireGet 11)-             114 -> Prelude'.fmap-                     (\ !new'Field -> old'Self{get_by_key = P'.mergeAppend (get_by_key old'Self) (Prelude'.Just new'Field)})-                     (P'.wireGet 11)-             122 -> Prelude'.fmap (\ !new'Field -> old'Self{table = P'.mergeAppend (table old'Self) (Prelude'.Just new'Field)})-                     (P'.wireGet 11)-             130 -> Prelude'.fmap (\ !new'Field -> old'Self{javascript = Prelude'.Just new'Field}) (P'.wireGet 9)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in-                   if Prelude'.or [1000 <= field'Number && field'Number <= 1099] then-                    P'.loadExtension field'Number wire'Type old'Self else P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Term) Term where-  getVal m' f' = f' m'- -instance P'.GPB Term- -instance P'.ReflectDescriptor Term where-  getMessageInfo _-   = P'.GetMessageInfo (P'.fromDistinctAscList [8])-      (P'.fromDistinctAscList [8, 18, 26, 34, 42, 50, 57, 66, 74, 80, 90, 98, 114, 122, 130])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Term.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term.TermType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"TermType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.var\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"var\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.let\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"let'\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term.Let\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"Let\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.call\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"call\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term.Call\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"Call\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.if_\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"if_\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term.If\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"If\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.error\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"error\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.number\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"number\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 57}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 1}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.valuestring\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"valuestring\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 66}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.jsonstring\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"jsonstring\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 74}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.valuebool\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"valuebool\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 80}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.array\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"array\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 90}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.object\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"object\"}, fieldNumber = FieldId {getFieldId = 12}, wireTag = WireTag {getWireTag = 98}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.VarTermTuple\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"VarTermTuple\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.get_by_key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"get_by_key\"}, fieldNumber = FieldId {getFieldId = 14}, wireTag = WireTag {getWireTag = 114}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term.GetByKey\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"GetByKey\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.table\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"table\"}, fieldNumber = FieldId {getFieldId = 15}, wireTag = WireTag {getWireTag = 122}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term.Table\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"Table\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.javascript\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\"], baseName' = FName \"javascript\"}, fieldNumber = FieldId {getFieldId = 16}, wireTag = WireTag {getWireTag = 130}, packedTag = Nothing, wireTagLength = 2, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 1000},FieldId {getFieldId = 1099})], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Term.hs-boot
@@ -1,32 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term (Term) where-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data Term- -instance P'.MessageAPI msg' (msg' -> Term) Term- -instance Prelude'.Show Term- -instance Prelude'.Eq Term- -instance Prelude'.Ord Term- -instance Prelude'.Typeable Term- -instance Prelude'.Data Term- -instance P'.Mergeable Term- -instance P'.Default Term- -instance P'.Wire Term- -instance P'.GPB Term- -instance P'.ReflectDescriptor Term- -instance P'.ExtendMessage Term
− Database/RethinkDB/Internal/Query_Language/Term/Call.hs
@@ -1,61 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term.Call (Call(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Builtin as Query_Language (Builtin)-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Call = Call{builtin :: !Query_Language.Builtin, args :: !(P'.Seq Query_Language.Term)}-          deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Call where-  mergeAppend (Call x'1 x'2) (Call y'1 y'2) = Call (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)- -instance P'.Default Call where-  defaultValue = Call P'.defaultValue P'.defaultValue- -instance P'.Wire Call where-  wireSize ft' self'@(Call x'1 x'2)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeRep 1 11 x'2)-  wirePut ft' self'@(Call x'1 x'2)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutRep 18 11 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{builtin = P'.mergeAppend (builtin old'Self) (new'Field)}) (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{args = P'.append (args old'Self) new'Field}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Call) Call where-  getVal m' f' = f' m'- -instance P'.GPB Call- -instance P'.ReflectDescriptor Call where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10, 18])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Term.Call\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"Call\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Term\",\"Call.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.Call.builtin\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"Call\"], baseName' = FName \"builtin\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Builtin\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Builtin\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.Call.args\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"Call\"], baseName' = FName \"args\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Term/GetByKey.hs
@@ -1,65 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term.GetByKey (GetByKey(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data GetByKey = GetByKey{table_ref :: !Query_Language.TableRef, attrname :: !P'.Utf8, key :: !Query_Language.Term}-              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable GetByKey where-  mergeAppend (GetByKey x'1 x'2 x'3) (GetByKey y'1 y'2 y'3)-   = GetByKey (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default GetByKey where-  defaultValue = GetByKey P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire GetByKey where-  wireSize ft' self'@(GetByKey x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 9 x'2 + P'.wireSizeReq 1 11 x'3)-  wirePut ft' self'@(GetByKey x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 9 x'2-             P'.wirePutReq 26 11 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{table_ref = P'.mergeAppend (table_ref old'Self) (new'Field)})-                    (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{attrname = new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{key = P'.mergeAppend (key old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> GetByKey) GetByKey where-  getVal m' f' = f' m'- -instance P'.GPB GetByKey- -instance P'.ReflectDescriptor GetByKey where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18, 26]) (P'.fromDistinctAscList [10, 18, 26])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Term.GetByKey\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"GetByKey\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Term\",\"GetByKey.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.GetByKey.table_ref\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"GetByKey\"], baseName' = FName \"table_ref\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.GetByKey.attrname\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"GetByKey\"], baseName' = FName \"attrname\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.GetByKey.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"GetByKey\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Term/If.hs
@@ -1,64 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term.If (If(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data If = If{test :: !Query_Language.Term, true_branch :: !Query_Language.Term, false_branch :: !Query_Language.Term}-        deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable If where-  mergeAppend (If x'1 x'2 x'3) (If y'1 y'2 y'3) = If (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default If where-  defaultValue = If P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire If where-  wireSize ft' self'@(If x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 11 x'2 + P'.wireSizeReq 1 11 x'3)-  wirePut ft' self'@(If x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 11 x'2-             P'.wirePutReq 26 11 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{test = P'.mergeAppend (test old'Self) (new'Field)}) (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{true_branch = P'.mergeAppend (true_branch old'Self) (new'Field)})-                    (P'.wireGet 11)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{false_branch = P'.mergeAppend (false_branch old'Self) (new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> If) If where-  getVal m' f' = f' m'- -instance P'.GPB If- -instance P'.ReflectDescriptor If where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18, 26]) (P'.fromDistinctAscList [10, 18, 26])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Term.If\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"If\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Term\",\"If.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.If.test\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"If\"], baseName' = FName \"test\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.If.true_branch\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"If\"], baseName' = FName \"true_branch\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.If.false_branch\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"If\"], baseName' = FName \"false_branch\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Term/Let.hs
@@ -1,61 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term.Let (Let(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)-import qualified Database.RethinkDB.Internal.Query_Language.VarTermTuple as Query_Language (VarTermTuple)- -data Let = Let{binds :: !(P'.Seq Query_Language.VarTermTuple), expr :: !Query_Language.Term}-         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Let where-  mergeAppend (Let x'1 x'2) (Let y'1 y'2) = Let (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)- -instance P'.Default Let where-  defaultValue = Let P'.defaultValue P'.defaultValue- -instance P'.Wire Let where-  wireSize ft' self'@(Let x'1 x'2)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeRep 1 11 x'1 + P'.wireSizeReq 1 11 x'2)-  wirePut ft' self'@(Let x'1 x'2)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutRep 10 11 x'1-             P'.wirePutReq 18 11 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{binds = P'.append (binds old'Self) new'Field}) (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{expr = P'.mergeAppend (expr old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Let) Let where-  getVal m' f' = f' m'- -instance P'.GPB Let- -instance P'.ReflectDescriptor Let where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [18]) (P'.fromDistinctAscList [10, 18])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Term.Let\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"Let\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Term\",\"Let.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.Let.binds\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"Let\"], baseName' = FName \"binds\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.VarTermTuple\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"VarTermTuple\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.Let.expr\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"Let\"], baseName' = FName \"expr\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Term/Table.hs
@@ -1,59 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term.Table (Table(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)- -data Table = Table{table_ref :: !Query_Language.TableRef}-           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Table where-  mergeAppend (Table x'1) (Table y'1) = Table (P'.mergeAppend x'1 y'1)- -instance P'.Default Table where-  defaultValue = Table P'.defaultValue- -instance P'.Wire Table where-  wireSize ft' self'@(Table x'1)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1)-  wirePut ft' self'@(Table x'1)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{table_ref = P'.mergeAppend (table_ref old'Self) (new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Table) Table where-  getVal m' f' = f' m'- -instance P'.GPB Table- -instance P'.ReflectDescriptor Table where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.Term.Table\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"Term\"], baseName = MName \"Table\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"Term\",\"Table.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.Term.Table.table_ref\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"Term\",MName \"Table\"], baseName' = FName \"table_ref\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/Term/TermType.hs
@@ -1,134 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.Term.TermType (TermType(..)) where-import Prelude ((+), (/), (.))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data TermType = JSON_NULL-              | VAR-              | LET-              | CALL-              | IF-              | ERROR-              | NUMBER-              | STRING-              | JSON-              | BOOL-              | ARRAY-              | OBJECT-              | GETBYKEY-              | TABLE-              | JAVASCRIPT-              | IMPLICIT_VAR-              deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable TermType- -instance Prelude'.Bounded TermType where-  minBound = JSON_NULL-  maxBound = IMPLICIT_VAR- -instance P'.Default TermType where-  defaultValue = JSON_NULL- -toMaybe'Enum :: Prelude'.Int -> P'.Maybe TermType-toMaybe'Enum 0 = Prelude'.Just JSON_NULL-toMaybe'Enum 1 = Prelude'.Just VAR-toMaybe'Enum 2 = Prelude'.Just LET-toMaybe'Enum 3 = Prelude'.Just CALL-toMaybe'Enum 4 = Prelude'.Just IF-toMaybe'Enum 5 = Prelude'.Just ERROR-toMaybe'Enum 6 = Prelude'.Just NUMBER-toMaybe'Enum 7 = Prelude'.Just STRING-toMaybe'Enum 8 = Prelude'.Just JSON-toMaybe'Enum 9 = Prelude'.Just BOOL-toMaybe'Enum 10 = Prelude'.Just ARRAY-toMaybe'Enum 11 = Prelude'.Just OBJECT-toMaybe'Enum 12 = Prelude'.Just GETBYKEY-toMaybe'Enum 13 = Prelude'.Just TABLE-toMaybe'Enum 14 = Prelude'.Just JAVASCRIPT-toMaybe'Enum 15 = Prelude'.Just IMPLICIT_VAR-toMaybe'Enum _ = Prelude'.Nothing- -instance Prelude'.Enum TermType where-  fromEnum JSON_NULL = 0-  fromEnum VAR = 1-  fromEnum LET = 2-  fromEnum CALL = 3-  fromEnum IF = 4-  fromEnum ERROR = 5-  fromEnum NUMBER = 6-  fromEnum STRING = 7-  fromEnum JSON = 8-  fromEnum BOOL = 9-  fromEnum ARRAY = 10-  fromEnum OBJECT = 11-  fromEnum GETBYKEY = 12-  fromEnum TABLE = 13-  fromEnum JAVASCRIPT = 14-  fromEnum IMPLICIT_VAR = 15-  toEnum-   = P'.fromMaybe-      (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Internal.Query_Language.Term.TermType")-      . toMaybe'Enum-  succ JSON_NULL = VAR-  succ VAR = LET-  succ LET = CALL-  succ CALL = IF-  succ IF = ERROR-  succ ERROR = NUMBER-  succ NUMBER = STRING-  succ STRING = JSON-  succ JSON = BOOL-  succ BOOL = ARRAY-  succ ARRAY = OBJECT-  succ OBJECT = GETBYKEY-  succ GETBYKEY = TABLE-  succ TABLE = JAVASCRIPT-  succ JAVASCRIPT = IMPLICIT_VAR-  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Internal.Query_Language.Term.TermType"-  pred VAR = JSON_NULL-  pred LET = VAR-  pred CALL = LET-  pred IF = CALL-  pred ERROR = IF-  pred NUMBER = ERROR-  pred STRING = NUMBER-  pred JSON = STRING-  pred BOOL = JSON-  pred ARRAY = BOOL-  pred OBJECT = ARRAY-  pred GETBYKEY = OBJECT-  pred TABLE = GETBYKEY-  pred JAVASCRIPT = TABLE-  pred IMPLICIT_VAR = JAVASCRIPT-  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Internal.Query_Language.Term.TermType"- -instance P'.Wire TermType where-  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)-  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)-  wireGet 14 = P'.wireGetEnum toMaybe'Enum-  wireGet ft' = P'.wireGetErr ft'-  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum-  wireGetPacked ft' = P'.wireGetErr ft'- -instance P'.GPB TermType- -instance P'.MessageAPI msg' (msg' -> TermType) TermType where-  getVal m' f' = f' m'- -instance P'.ReflectEnum TermType where-  reflectEnum-   = [(0, "JSON_NULL", JSON_NULL), (1, "VAR", VAR), (2, "LET", LET), (3, "CALL", CALL), (4, "IF", IF), (5, "ERROR", ERROR),-      (6, "NUMBER", NUMBER), (7, "STRING", STRING), (8, "JSON", JSON), (9, "BOOL", BOOL), (10, "ARRAY", ARRAY),-      (11, "OBJECT", OBJECT), (12, "GETBYKEY", GETBYKEY), (13, "TABLE", TABLE), (14, "JAVASCRIPT", JAVASCRIPT),-      (15, "IMPLICIT_VAR", IMPLICIT_VAR)]-  reflectEnumInfo _-   = P'.EnumInfo-      (P'.makePNF (P'.pack ".Query_Language.Term.TermType") ["Database", "RethinkDB", "Internal"] ["Query_Language", "Term"]-        "TermType")-      ["Database", "RethinkDB", "Internal", "Query_Language", "Term", "TermType.hs"]-      [(0, "JSON_NULL"), (1, "VAR"), (2, "LET"), (3, "CALL"), (4, "IF"), (5, "ERROR"), (6, "NUMBER"), (7, "STRING"), (8, "JSON"),-       (9, "BOOL"), (10, "ARRAY"), (11, "OBJECT"), (12, "GETBYKEY"), (13, "TABLE"), (14, "JAVASCRIPT"), (15, "IMPLICIT_VAR")]
− Database/RethinkDB/Internal/Query_Language/VarTermTuple.hs
@@ -1,60 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.VarTermTuple (VarTermTuple(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data VarTermTuple = VarTermTuple{var :: !P'.Utf8, term :: !Query_Language.Term}-                  deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable VarTermTuple where-  mergeAppend (VarTermTuple x'1 x'2) (VarTermTuple y'1 y'2) = VarTermTuple (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)- -instance P'.Default VarTermTuple where-  defaultValue = VarTermTuple P'.defaultValue P'.defaultValue- -instance P'.Wire VarTermTuple where-  wireSize ft' self'@(VarTermTuple x'1 x'2)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 9 x'1 + P'.wireSizeReq 1 11 x'2)-  wirePut ft' self'@(VarTermTuple x'1 x'2)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 9 x'1-             P'.wirePutReq 18 11 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{var = new'Field}) (P'.wireGet 9)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{term = P'.mergeAppend (term old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> VarTermTuple) VarTermTuple where-  getVal m' f' = f' m'- -instance P'.GPB VarTermTuple- -instance P'.ReflectDescriptor VarTermTuple where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18]) (P'.fromDistinctAscList [10, 18])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.VarTermTuple\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"VarTermTuple\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"VarTermTuple.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.VarTermTuple.var\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"VarTermTuple\"], baseName' = FName \"var\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.VarTermTuple.term\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"VarTermTuple\"], baseName' = FName \"term\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery.hs
@@ -1,122 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery (WriteQuery(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.Delete as Query_Language.WriteQuery (Delete)-import {-# SOURCE #-} qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.ForEach as Query_Language.WriteQuery (ForEach)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.Insert as Query_Language.WriteQuery (Insert)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.Mutate as Query_Language.WriteQuery (Mutate)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.PointDelete as Query_Language.WriteQuery (PointDelete)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.PointMutate as Query_Language.WriteQuery (PointMutate)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.PointUpdate as Query_Language.WriteQuery (PointUpdate)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.Update as Query_Language.WriteQuery (Update)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType as Query_Language.WriteQuery (WriteQueryType)- -data WriteQuery = WriteQuery{type' :: !Query_Language.WriteQuery.WriteQueryType, atomic :: !(P'.Maybe P'.Bool),-                             update :: !(P'.Maybe Query_Language.WriteQuery.Update),-                             delete :: !(P'.Maybe Query_Language.WriteQuery.Delete),-                             mutate :: !(P'.Maybe Query_Language.WriteQuery.Mutate),-                             insert :: !(P'.Maybe Query_Language.WriteQuery.Insert),-                             for_each :: !(P'.Maybe Query_Language.WriteQuery.ForEach),-                             point_update :: !(P'.Maybe Query_Language.WriteQuery.PointUpdate),-                             point_delete :: !(P'.Maybe Query_Language.WriteQuery.PointDelete),-                             point_mutate :: !(P'.Maybe Query_Language.WriteQuery.PointMutate)}-                deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable WriteQuery where-  mergeAppend (WriteQuery x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10) (WriteQuery y'1 y'2 y'3 y'4 y'5 y'6 y'7 y'8 y'9 y'10)-   = WriteQuery (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)-      (P'.mergeAppend x'5 y'5)-      (P'.mergeAppend x'6 y'6)-      (P'.mergeAppend x'7 y'7)-      (P'.mergeAppend x'8 y'8)-      (P'.mergeAppend x'9 y'9)-      (P'.mergeAppend x'10 y'10)- -instance P'.Default WriteQuery where-  defaultValue-   = WriteQuery P'.defaultValue (Prelude'.Just Prelude'.True) P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue-      P'.defaultValue- -instance P'.Wire WriteQuery where-  wireSize ft' self'@(WriteQuery x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size-         = (P'.wireSizeReq 1 14 x'1 + P'.wireSizeOpt 1 8 x'2 + P'.wireSizeOpt 1 11 x'3 + P'.wireSizeOpt 1 11 x'4 +-             P'.wireSizeOpt 1 11 x'5-             + P'.wireSizeOpt 1 11 x'6-             + P'.wireSizeOpt 1 11 x'7-             + P'.wireSizeOpt 1 11 x'8-             + P'.wireSizeOpt 1 11 x'9-             + P'.wireSizeOpt 1 11 x'10)-  wirePut ft' self'@(WriteQuery x'1 x'2 x'3 x'4 x'5 x'6 x'7 x'8 x'9 x'10)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 8 14 x'1-             P'.wirePutOpt 18 11 x'3-             P'.wirePutOpt 26 11 x'4-             P'.wirePutOpt 34 11 x'5-             P'.wirePutOpt 42 11 x'6-             P'.wirePutOpt 58 11 x'7-             P'.wirePutOpt 66 11 x'8-             P'.wirePutOpt 74 11 x'9-             P'.wirePutOpt 82 11 x'10-             P'.wirePutOpt 88 8 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = new'Field}) (P'.wireGet 14)-             88 -> Prelude'.fmap (\ !new'Field -> old'Self{atomic = Prelude'.Just new'Field}) (P'.wireGet 8)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{update = P'.mergeAppend (update old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{delete = P'.mergeAppend (delete old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             34 -> Prelude'.fmap (\ !new'Field -> old'Self{mutate = P'.mergeAppend (mutate old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             42 -> Prelude'.fmap (\ !new'Field -> old'Self{insert = P'.mergeAppend (insert old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             58 -> Prelude'.fmap (\ !new'Field -> old'Self{for_each = P'.mergeAppend (for_each old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             66 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{point_update = P'.mergeAppend (point_update old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             74 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{point_delete = P'.mergeAppend (point_delete old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             82 -> Prelude'.fmap-                    (\ !new'Field -> old'Self{point_mutate = P'.mergeAppend (point_mutate old'Self) (Prelude'.Just new'Field)})-                    (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> WriteQuery) WriteQuery where-  getVal m' f' = f' m'- -instance P'.GPB WriteQuery- -instance P'.ReflectDescriptor WriteQuery where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [8]) (P'.fromDistinctAscList [8, 18, 26, 34, 42, 58, 66, 74, 82, 88])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"WriteQuery\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.WriteQueryType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"WriteQueryType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.atomic\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"atomic\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 88}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"true\", hsDefault = Just (HsDef'Bool True)},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.update\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"update\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Update\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Update\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.delete\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"delete\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Delete\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Delete\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.mutate\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"mutate\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Mutate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Mutate\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.insert\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"insert\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Insert\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Insert\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.for_each\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"for_each\"}, fieldNumber = FieldId {getFieldId = 7}, wireTag = WireTag {getWireTag = 58}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.ForEach\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"ForEach\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.point_update\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"point_update\"}, fieldNumber = FieldId {getFieldId = 8}, wireTag = WireTag {getWireTag = 66}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.PointUpdate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"PointUpdate\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.point_delete\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"point_delete\"}, fieldNumber = FieldId {getFieldId = 9}, wireTag = WireTag {getWireTag = 74}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.PointDelete\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"PointDelete\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.point_mutate\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\"], baseName' = FName \"point_mutate\"}, fieldNumber = FieldId {getFieldId = 10}, wireTag = WireTag {getWireTag = 82}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery.PointMutate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"PointMutate\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/Delete.hs
@@ -1,58 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.Delete (Delete(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Delete = Delete{view :: !Query_Language.Term}-            deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Delete where-  mergeAppend (Delete x'1) (Delete y'1) = Delete (P'.mergeAppend x'1 y'1)- -instance P'.Default Delete where-  defaultValue = Delete P'.defaultValue- -instance P'.Wire Delete where-  wireSize ft' self'@(Delete x'1)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1)-  wirePut ft' self'@(Delete x'1)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{view = P'.mergeAppend (view old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Delete) Delete where-  getVal m' f' = f' m'- -instance P'.GPB Delete- -instance P'.ReflectDescriptor Delete where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Delete\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Delete\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"Delete.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Delete.view\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Delete\"], baseName' = FName \"view\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/ForEach.hs
@@ -1,64 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.ForEach (ForEach(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)-import qualified Database.RethinkDB.Internal.Query_Language.WriteQuery as Query_Language (WriteQuery)- -data ForEach = ForEach{stream :: !Query_Language.Term, var :: !P'.Utf8, queries :: !(P'.Seq Query_Language.WriteQuery)}-             deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable ForEach where-  mergeAppend (ForEach x'1 x'2 x'3) (ForEach y'1 y'2 y'3)-   = ForEach (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default ForEach where-  defaultValue = ForEach P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire ForEach where-  wireSize ft' self'@(ForEach x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 9 x'2 + P'.wireSizeRep 1 11 x'3)-  wirePut ft' self'@(ForEach x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 9 x'2-             P'.wirePutRep 26 11 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{stream = P'.mergeAppend (stream old'Self) (new'Field)}) (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{var = new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{queries = P'.append (queries old'Self) new'Field}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> ForEach) ForEach where-  getVal m' f' = f' m'- -instance P'.GPB ForEach- -instance P'.ReflectDescriptor ForEach where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18]) (P'.fromDistinctAscList [10, 18, 26])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.ForEach\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"ForEach\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"ForEach.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.ForEach.stream\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"ForEach\"], baseName' = FName \"stream\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.ForEach.var\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"ForEach\"], baseName' = FName \"var\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.ForEach.queries\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"ForEach\"], baseName' = FName \"queries\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.WriteQuery\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"WriteQuery\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/ForEach.hs-boot
@@ -1,30 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.ForEach (ForEach) where-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data ForEach- -instance P'.MessageAPI msg' (msg' -> ForEach) ForEach- -instance Prelude'.Show ForEach- -instance Prelude'.Eq ForEach- -instance Prelude'.Ord ForEach- -instance Prelude'.Typeable ForEach- -instance Prelude'.Data ForEach- -instance P'.Mergeable ForEach- -instance P'.Default ForEach- -instance P'.Wire ForEach- -instance P'.GPB ForEach- -instance P'.ReflectDescriptor ForEach
− Database/RethinkDB/Internal/Query_Language/WriteQuery/Insert.hs
@@ -1,66 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.Insert (Insert(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Insert = Insert{table_ref :: !Query_Language.TableRef, terms :: !(P'.Seq Query_Language.Term),-                     overwrite :: !(P'.Maybe P'.Bool)}-            deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Insert where-  mergeAppend (Insert x'1 x'2 x'3) (Insert y'1 y'2 y'3)-   = Insert (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default Insert where-  defaultValue = Insert P'.defaultValue P'.defaultValue (Prelude'.Just Prelude'.False)- -instance P'.Wire Insert where-  wireSize ft' self'@(Insert x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeRep 1 11 x'2 + P'.wireSizeOpt 1 8 x'3)-  wirePut ft' self'@(Insert x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutRep 18 11 x'2-             P'.wirePutOpt 24 8 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{table_ref = P'.mergeAppend (table_ref old'Self) (new'Field)})-                    (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{terms = P'.append (terms old'Self) new'Field}) (P'.wireGet 11)-             24 -> Prelude'.fmap (\ !new'Field -> old'Self{overwrite = Prelude'.Just new'Field}) (P'.wireGet 8)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Insert) Insert where-  getVal m' f' = f' m'- -instance P'.GPB Insert- -instance P'.ReflectDescriptor Insert where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10]) (P'.fromDistinctAscList [10, 18, 24])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Insert\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Insert\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"Insert.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Insert.table_ref\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Insert\"], baseName' = FName \"table_ref\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Insert.terms\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Insert\"], baseName' = FName \"terms\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Insert.overwrite\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Insert\"], baseName' = FName \"overwrite\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"false\", hsDefault = Just (HsDef'Bool False)}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/Mutate.hs
@@ -1,61 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.Mutate (Mutate(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as Query_Language (Mapping)-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Mutate = Mutate{view :: !Query_Language.Term, mapping :: !Query_Language.Mapping}-            deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Mutate where-  mergeAppend (Mutate x'1 x'2) (Mutate y'1 y'2) = Mutate (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)- -instance P'.Default Mutate where-  defaultValue = Mutate P'.defaultValue P'.defaultValue- -instance P'.Wire Mutate where-  wireSize ft' self'@(Mutate x'1 x'2)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 11 x'2)-  wirePut ft' self'@(Mutate x'1 x'2)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 11 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{view = P'.mergeAppend (view old'Self) (new'Field)}) (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{mapping = P'.mergeAppend (mapping old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Mutate) Mutate where-  getVal m' f' = f' m'- -instance P'.GPB Mutate- -instance P'.ReflectDescriptor Mutate where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18]) (P'.fromDistinctAscList [10, 18])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Mutate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Mutate\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"Mutate.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Mutate.view\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Mutate\"], baseName' = FName \"view\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Mutate.mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Mutate\"], baseName' = FName \"mapping\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/PointDelete.hs
@@ -1,65 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.PointDelete (PointDelete(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data PointDelete = PointDelete{table_ref :: !Query_Language.TableRef, attrname :: !P'.Utf8, key :: !Query_Language.Term}-                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable PointDelete where-  mergeAppend (PointDelete x'1 x'2 x'3) (PointDelete y'1 y'2 y'3)-   = PointDelete (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)- -instance P'.Default PointDelete where-  defaultValue = PointDelete P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire PointDelete where-  wireSize ft' self'@(PointDelete x'1 x'2 x'3)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 9 x'2 + P'.wireSizeReq 1 11 x'3)-  wirePut ft' self'@(PointDelete x'1 x'2 x'3)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 9 x'2-             P'.wirePutReq 26 11 x'3-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{table_ref = P'.mergeAppend (table_ref old'Self) (new'Field)})-                    (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{attrname = new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{key = P'.mergeAppend (key old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> PointDelete) PointDelete where-  getVal m' f' = f' m'- -instance P'.GPB PointDelete- -instance P'.ReflectDescriptor PointDelete where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18, 26]) (P'.fromDistinctAscList [10, 18, 26])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.PointDelete\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"PointDelete\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"PointDelete.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointDelete.table_ref\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointDelete\"], baseName' = FName \"table_ref\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointDelete.attrname\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointDelete\"], baseName' = FName \"attrname\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointDelete.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointDelete\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/PointMutate.hs
@@ -1,69 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.PointMutate (PointMutate(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as Query_Language (Mapping)-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data PointMutate = PointMutate{table_ref :: !Query_Language.TableRef, attrname :: !P'.Utf8, key :: !Query_Language.Term,-                               mapping :: !Query_Language.Mapping}-                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable PointMutate where-  mergeAppend (PointMutate x'1 x'2 x'3 x'4) (PointMutate y'1 y'2 y'3 y'4)-   = PointMutate (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)- -instance P'.Default PointMutate where-  defaultValue = PointMutate P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire PointMutate where-  wireSize ft' self'@(PointMutate x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 9 x'2 + P'.wireSizeReq 1 11 x'3 + P'.wireSizeReq 1 11 x'4)-  wirePut ft' self'@(PointMutate x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 9 x'2-             P'.wirePutReq 26 11 x'3-             P'.wirePutReq 34 11 x'4-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{table_ref = P'.mergeAppend (table_ref old'Self) (new'Field)})-                    (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{attrname = new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{key = P'.mergeAppend (key old'Self) (new'Field)}) (P'.wireGet 11)-             34 -> Prelude'.fmap (\ !new'Field -> old'Self{mapping = P'.mergeAppend (mapping old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> PointMutate) PointMutate where-  getVal m' f' = f' m'- -instance P'.GPB PointMutate- -instance P'.ReflectDescriptor PointMutate where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18, 26, 34]) (P'.fromDistinctAscList [10, 18, 26, 34])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.PointMutate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"PointMutate\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"PointMutate.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointMutate.table_ref\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointMutate\"], baseName' = FName \"table_ref\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointMutate.attrname\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointMutate\"], baseName' = FName \"attrname\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointMutate.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointMutate\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointMutate.mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointMutate\"], baseName' = FName \"mapping\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/PointUpdate.hs
@@ -1,69 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.PointUpdate (PointUpdate(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as Query_Language (Mapping)-import qualified Database.RethinkDB.Internal.Query_Language.TableRef as Query_Language (TableRef)-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data PointUpdate = PointUpdate{table_ref :: !Query_Language.TableRef, attrname :: !P'.Utf8, key :: !Query_Language.Term,-                               mapping :: !Query_Language.Mapping}-                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable PointUpdate where-  mergeAppend (PointUpdate x'1 x'2 x'3 x'4) (PointUpdate y'1 y'2 y'3 y'4)-   = PointUpdate (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)- -instance P'.Default PointUpdate where-  defaultValue = PointUpdate P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue- -instance P'.Wire PointUpdate where-  wireSize ft' self'@(PointUpdate x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 9 x'2 + P'.wireSizeReq 1 11 x'3 + P'.wireSizeReq 1 11 x'4)-  wirePut ft' self'@(PointUpdate x'1 x'2 x'3 x'4)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 9 x'2-             P'.wirePutReq 26 11 x'3-             P'.wirePutReq 34 11 x'4-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{table_ref = P'.mergeAppend (table_ref old'Self) (new'Field)})-                    (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{attrname = new'Field}) (P'.wireGet 9)-             26 -> Prelude'.fmap (\ !new'Field -> old'Self{key = P'.mergeAppend (key old'Self) (new'Field)}) (P'.wireGet 11)-             34 -> Prelude'.fmap (\ !new'Field -> old'Self{mapping = P'.mergeAppend (mapping old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> PointUpdate) PointUpdate where-  getVal m' f' = f' m'- -instance P'.GPB PointUpdate- -instance P'.ReflectDescriptor PointUpdate where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18, 26, 34]) (P'.fromDistinctAscList [10, 18, 26, 34])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.PointUpdate\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"PointUpdate\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"PointUpdate.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointUpdate.table_ref\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointUpdate\"], baseName' = FName \"table_ref\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.TableRef\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"TableRef\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointUpdate.attrname\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointUpdate\"], baseName' = FName \"attrname\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointUpdate.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointUpdate\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.PointUpdate.mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"PointUpdate\"], baseName' = FName \"mapping\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/Update.hs
@@ -1,61 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.Update (Update(..)) where-import Prelude ((+), (/))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'-import qualified Database.RethinkDB.Internal.Query_Language.Mapping as Query_Language (Mapping)-import qualified Database.RethinkDB.Internal.Query_Language.Term as Query_Language (Term)- -data Update = Update{view :: !Query_Language.Term, mapping :: !Query_Language.Mapping}-            deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable Update where-  mergeAppend (Update x'1 x'2) (Update y'1 y'2) = Update (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)- -instance P'.Default Update where-  defaultValue = Update P'.defaultValue P'.defaultValue- -instance P'.Wire Update where-  wireSize ft' self'@(Update x'1 x'2)-   = case ft' of-       10 -> calc'Size-       11 -> P'.prependMessageSize calc'Size-       _ -> P'.wireSizeErr ft' self'-    where-        calc'Size = (P'.wireSizeReq 1 11 x'1 + P'.wireSizeReq 1 11 x'2)-  wirePut ft' self'@(Update x'1 x'2)-   = case ft' of-       10 -> put'Fields-       11 -> do-               P'.putSize (P'.wireSize 10 self')-               put'Fields-       _ -> P'.wirePutErr ft' self'-    where-        put'Fields-         = do-             P'.wirePutReq 10 11 x'1-             P'.wirePutReq 18 11 x'2-  wireGet ft'-   = case ft' of-       10 -> P'.getBareMessageWith update'Self-       11 -> P'.getMessageWith update'Self-       _ -> P'.wireGetErr ft'-    where-        update'Self wire'Tag old'Self-         = case wire'Tag of-             10 -> Prelude'.fmap (\ !new'Field -> old'Self{view = P'.mergeAppend (view old'Self) (new'Field)}) (P'.wireGet 11)-             18 -> Prelude'.fmap (\ !new'Field -> old'Self{mapping = P'.mergeAppend (mapping old'Self) (new'Field)}) (P'.wireGet 11)-             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self- -instance P'.MessageAPI msg' (msg' -> Update) Update where-  getVal m' f' = f' m'- -instance P'.GPB Update- -instance P'.ReflectDescriptor Update where-  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList [10, 18]) (P'.fromDistinctAscList [10, 18])-  reflectDescriptorInfo _-   = Prelude'.read-      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Query_Language.WriteQuery.Update\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\",MName \"WriteQuery\"], baseName = MName \"Update\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Internal\",\"Query_Language\",\"WriteQuery\",\"Update.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Update.view\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Update\"], baseName' = FName \"view\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Query_Language.WriteQuery.Update.mapping\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule' = [MName \"Query_Language\",MName \"WriteQuery\",MName \"Update\"], baseName' = FName \"mapping\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Query_Language.Mapping\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Internal\"], parentModule = [MName \"Query_Language\"], baseName = MName \"Mapping\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
− Database/RethinkDB/Internal/Query_Language/WriteQuery/WriteQueryType.hs
@@ -1,98 +0,0 @@-{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}-module Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType (WriteQueryType(..)) where-import Prelude ((+), (/), (.))-import qualified Prelude as Prelude'-import qualified Data.Typeable as Prelude'-import qualified Data.Data as Prelude'-import qualified Text.ProtocolBuffers.Header as P'- -data WriteQueryType = UPDATE-                    | DELETE-                    | MUTATE-                    | INSERT-                    | FOREACH-                    | POINTUPDATE-                    | POINTDELETE-                    | POINTMUTATE-                    deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)- -instance P'.Mergeable WriteQueryType- -instance Prelude'.Bounded WriteQueryType where-  minBound = UPDATE-  maxBound = POINTMUTATE- -instance P'.Default WriteQueryType where-  defaultValue = UPDATE- -toMaybe'Enum :: Prelude'.Int -> P'.Maybe WriteQueryType-toMaybe'Enum 1 = Prelude'.Just UPDATE-toMaybe'Enum 2 = Prelude'.Just DELETE-toMaybe'Enum 3 = Prelude'.Just MUTATE-toMaybe'Enum 4 = Prelude'.Just INSERT-toMaybe'Enum 6 = Prelude'.Just FOREACH-toMaybe'Enum 7 = Prelude'.Just POINTUPDATE-toMaybe'Enum 8 = Prelude'.Just POINTDELETE-toMaybe'Enum 9 = Prelude'.Just POINTMUTATE-toMaybe'Enum _ = Prelude'.Nothing- -instance Prelude'.Enum WriteQueryType where-  fromEnum UPDATE = 1-  fromEnum DELETE = 2-  fromEnum MUTATE = 3-  fromEnum INSERT = 4-  fromEnum FOREACH = 6-  fromEnum POINTUPDATE = 7-  fromEnum POINTDELETE = 8-  fromEnum POINTMUTATE = 9-  toEnum-   = P'.fromMaybe-      (Prelude'.error-        "hprotoc generated code: toEnum failure for type Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType")-      . toMaybe'Enum-  succ UPDATE = DELETE-  succ DELETE = MUTATE-  succ MUTATE = INSERT-  succ INSERT = FOREACH-  succ FOREACH = POINTUPDATE-  succ POINTUPDATE = POINTDELETE-  succ POINTDELETE = POINTMUTATE-  succ _-   = Prelude'.error-      "hprotoc generated code: succ failure for type Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType"-  pred DELETE = UPDATE-  pred MUTATE = DELETE-  pred INSERT = MUTATE-  pred FOREACH = INSERT-  pred POINTUPDATE = FOREACH-  pred POINTDELETE = POINTUPDATE-  pred POINTMUTATE = POINTDELETE-  pred _-   = Prelude'.error-      "hprotoc generated code: pred failure for type Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType"- -instance P'.Wire WriteQueryType where-  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)-  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)-  wireGet 14 = P'.wireGetEnum toMaybe'Enum-  wireGet ft' = P'.wireGetErr ft'-  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum-  wireGetPacked ft' = P'.wireGetErr ft'- -instance P'.GPB WriteQueryType- -instance P'.MessageAPI msg' (msg' -> WriteQueryType) WriteQueryType where-  getVal m' f' = f' m'- -instance P'.ReflectEnum WriteQueryType where-  reflectEnum-   = [(1, "UPDATE", UPDATE), (2, "DELETE", DELETE), (3, "MUTATE", MUTATE), (4, "INSERT", INSERT), (6, "FOREACH", FOREACH),-      (7, "POINTUPDATE", POINTUPDATE), (8, "POINTDELETE", POINTDELETE), (9, "POINTMUTATE", POINTMUTATE)]-  reflectEnumInfo _-   = P'.EnumInfo-      (P'.makePNF (P'.pack ".Query_Language.WriteQuery.WriteQueryType") ["Database", "RethinkDB", "Internal"]-        ["Query_Language", "WriteQuery"]-        "WriteQueryType")-      ["Database", "RethinkDB", "Internal", "Query_Language", "WriteQuery", "WriteQueryType.hs"]-      [(1, "UPDATE"), (2, "DELETE"), (3, "MUTATE"), (4, "INSERT"), (6, "FOREACH"), (7, "POINTUPDATE"), (8, "POINTDELETE"),-       (9, "POINTMUTATE")]
− Database/RethinkDB/Internal/Types.hs
@@ -1,83 +0,0 @@-module Database.RethinkDB.Internal.Types (-  module Database.RethinkDB.Internal.Query_Language.ReadQuery,-  module Database.RethinkDB.Internal.Query_Language.Builtin.ConcatMap,-  module Database.RethinkDB.Internal.Query_Language.Builtin.Comparison,-  module Database.RethinkDB.Internal.Query_Language.Builtin.Map,-  module Database.RethinkDB.Internal.Query_Language.Builtin.Filter,-  module Database.RethinkDB.Internal.Query_Language.Builtin.GroupedMapReduce,-  module Database.RethinkDB.Internal.Query_Language.Builtin.OrderBy,-  module Database.RethinkDB.Internal.Query_Language.Builtin.Range,-  module Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType,-  module Database.RethinkDB.Internal.Query_Language.Query,-  module Database.RethinkDB.Internal.Query_Language.Term,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.PointDelete,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.Insert,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.Update,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.PointUpdate,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.Delete,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.ForEach,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.Mutate,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery.PointMutate,-  module Database.RethinkDB.Internal.Query_Language.Response,-  module Database.RethinkDB.Internal.Query_Language.VarTermTuple,-  module Database.RethinkDB.Internal.Query_Language.Reduction,-  module Database.RethinkDB.Internal.Query_Language.Term.Call,-  module Database.RethinkDB.Internal.Query_Language.Term.Table,-  module Database.RethinkDB.Internal.Query_Language.Term.GetByKey,-  module Database.RethinkDB.Internal.Query_Language.Term.Let,-  module Database.RethinkDB.Internal.Query_Language.Term.If,-  module Database.RethinkDB.Internal.Query_Language.Term.TermType,-  module Database.RethinkDB.Internal.Query_Language.Query.QueryType,-  module Database.RethinkDB.Internal.Query_Language.MetaQuery,-  module Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType,-  module Database.RethinkDB.Internal.Query_Language.MetaQuery.CreateTable,-  module Database.RethinkDB.Internal.Query_Language.Predicate,-  module Database.RethinkDB.Internal.Query_Language.Builtin,-  module Database.RethinkDB.Internal.Query_Language.Response.StatusCode,-  module Database.RethinkDB.Internal.Query_Language.Response.Backtrace,-  module Database.RethinkDB.Internal.Query_Language.TableRef,-  module Database.RethinkDB.Internal.Query_Language.WriteQuery,-  module Database.RethinkDB.Internal.Query_Language.Mapping,-  ) where--import Database.RethinkDB.Internal.Query_Language.ReadQuery hiding (ext'field, term)-import Database.RethinkDB.Internal.Query_Language.Builtin.ConcatMap hiding (mapping)-import Database.RethinkDB.Internal.Query_Language.Builtin.Comparison-import Database.RethinkDB.Internal.Query_Language.Builtin.Map hiding (mapping)-import Database.RethinkDB.Internal.Query_Language.Builtin.Filter-import Database.RethinkDB.Internal.Query_Language.Builtin.GroupedMapReduce-import Database.RethinkDB.Internal.Query_Language.Builtin.OrderBy hiding (attr)-import Database.RethinkDB.Internal.Query_Language.Builtin.Range hiding (attrname)-import Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType-import Database.RethinkDB.Internal.Query_Language.Query hiding (token, type')-import Database.RethinkDB.Internal.Query_Language.Term hiding (ext'field, type', var)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType-import Database.RethinkDB.Internal.Query_Language.WriteQuery.PointDelete hiding (attrname, table_ref, key)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.Insert hiding (table_ref)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.Update hiding (mapping, view)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.PointUpdate hiding (key, table_ref, attrname)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.Delete hiding (view)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.ForEach hiding (var)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.Mutate hiding (mapping, view)-import Database.RethinkDB.Internal.Query_Language.WriteQuery.PointMutate hiding (key, table_ref, attrname, mapping)-import Database.RethinkDB.Internal.Query_Language.Response hiding (token)-import Database.RethinkDB.Internal.Query_Language.VarTermTuple hiding (var, term)-import Database.RethinkDB.Internal.Query_Language.Reduction hiding (body)-import Database.RethinkDB.Internal.Query_Language.Term.Call-import Database.RethinkDB.Internal.Query_Language.Term.Table hiding (table_ref)-import Database.RethinkDB.Internal.Query_Language.Term.GetByKey hiding (key, table_ref, attrname)-import Database.RethinkDB.Internal.Query_Language.Term.Let-import Database.RethinkDB.Internal.Query_Language.Term.If-import Database.RethinkDB.Internal.Query_Language.Term.TermType-import Database.RethinkDB.Internal.Query_Language.Query.QueryType-import Database.RethinkDB.Internal.Query_Language.MetaQuery hiding (type', db_name)-import Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType-import Database.RethinkDB.Internal.Query_Language.MetaQuery.CreateTable hiding (table_ref)-import Database.RethinkDB.Internal.Query_Language.Predicate hiding (body, arg)-import Database.RethinkDB.Internal.Query_Language.Builtin hiding (attr, type')-import Database.RethinkDB.Internal.Query_Language.Response.StatusCode-import Database.RethinkDB.Internal.Query_Language.Response.Backtrace-import Database.RethinkDB.Internal.Query_Language.TableRef hiding (db_name)-import Database.RethinkDB.Internal.Query_Language.WriteQuery hiding (type')-import Database.RethinkDB.Internal.Query_Language.Mapping hiding (arg, body, ext'field)
+ Database/RethinkDB/MapReduce.hs view
@@ -0,0 +1,114 @@+module Database.RethinkDB.MapReduce where++import Control.Monad.State+import Control.Monad.Writer+import qualified Data.Text as T++import Database.RethinkDB.Protobuf.Ql2.Term.TermType+import qualified Database.RethinkDB.Protobuf.Ql2.Datum as Datum++import Database.RethinkDB.ReQL+import Database.RethinkDB.Objects++termToMapReduce ::+  (ReQL -> ReQL) -> State QuerySettings (ReQL -> ReQL, ReQL -> ReQL -> ReQL, ReQL -> ReQL)+termToMapReduce f = do+  v <- newVarId+  body <- baseReQL $ f (op VAR [v] ())+  let MapReduce map reduce finally = toMapReduce v body+  return (map, reduce, finally)++toReduce :: MapReduce -> (ReQL -> ReQL, ReQL -> ReQL -> ReQL, ReQL -> ReQL)+toReduce (None t) = (\_ -> expr (), \_ _ -> expr (), const t)+toReduce (Map m) = ((\x -> expr [x]) . m, unionReduce, id)+toReduce (MapReduce m r f) = (m, r, f)++unionReduce :: ReQL -> ReQL -> ReQL+unionReduce a b = op UNION (a, b) ()++sameVar :: Int -> BaseArray -> Bool+sameVar x [BaseReQL DATUM (Just (Datum.Datum{ Datum.r_num = Just y })) _ _] =+  fromIntegral x == y+sameVar _ _ = False++notNone :: MapReduce -> Bool+notNone None{} = False+notNone _ = True++wrap :: BaseReQL -> ReQL+wrap = ReQL . return++toFun1 :: ReQL -> (ReQL -> ReQL)+toFun1 f a = op FUNCALL (f, a) ()++toFun2 :: ReQL -> (ReQL -> ReQL -> ReQL)+toFun2 f a b = op FUNCALL (f, a, b) ()++toMapReduce :: Int -> BaseReQL -> MapReduce+toMapReduce _ t@(BaseReQL DATUM _ _ _) = None $ wrap t+toMapReduce v (BaseReQL VAR _ w _) | sameVar v w = Map id+toMapReduce v t@(BaseReQL type' _ args optargs) = let+    args' = map (toMapReduce v) args+    optargs' = map (\(BaseAttribute k vv) -> (k, toMapReduce v vv)) optargs+    count = length $ filter notNone $ args' ++ map snd optargs'+    rebuild = (if count == 1 then rebuild0 else rebuildx) type' args' optargs'+  in if count == 0 then None $ wrap t+     else if not $ count == 1+          then rebuild else+              case (type', args') of+                (MAP, [Map m, None f]) -> Map (toFun1 f . m)+                (REDUCE, [Map m, None f]) -> MapReduce m (toFun2 f) id+                (COUNT, [Map _]) -> MapReduce (const 1)+                                    (\a b -> op ADD (a, b) ()) id+                _ -> rebuild++data MapReduce =+    None ReQL |+    Map (ReQL -> ReQL) |+    MapReduce (ReQL -> ReQL) (ReQL -> ReQL -> ReQL) (ReQL -> ReQL)++rebuild0 :: TermType -> [MapReduce] -> [(T.Text, MapReduce)] -> MapReduce+rebuild0 ttype args optargs = MapReduce maps reduce finals where+  (finally2, [mr]) = extract Nothing ttype args optargs+  (maps, reduce, finally1) = toReduce mr+  finals = finally2 . finally1++rebuildx :: TermType -> [MapReduce] -> [(Key, MapReduce)] -> MapReduce+rebuildx ttype args optargs = MapReduce maps reduces finallys where+  (finally, mrs) = extract (Just 0) ttype args optargs+  index = zip ([0..] :: [Int])+  triplets = map toReduce mrs+  maps x = expr $ map (($ x) . fst3) triplets+  reduces a b = expr $ map (uncurry $ mkReduce a b) . index $ map snd3 triplets+  finallys x = finally $ expr $ map (uncurry $ mkFinally x) . index $ map thrd3 triplets+  mkReduce a b i f = f (op NTH (a, i) ()) (op NTH (b, i) ())+  mkFinally x i f = f (op NTH (x, i) ())++fst3 :: (a,b,c) -> a+fst3 (a,_,_) = a++snd3 :: (a,b,c) -> b+snd3 (_,b,_) = b++thrd3 :: (a,b,c) -> c+thrd3 (_,_,c) = c++extract ::+  Maybe Int -> TermType -> [MapReduce] -> [(Key, MapReduce)]+  -> (ReQL -> ReQL, [MapReduce])+extract state tt args optargs = fst $ flip runState state $ runWriterT $ do+  args' <- sequence $ map extractOne args+  optargvs' <- sequence $ map extractOne (map snd optargs)+  let optargks = map fst optargs+  return $ \v -> op tt (map ($ v) args') (zipWith (:=) optargks $ map ($ v) optargvs')++extractOne :: MapReduce -> WriterT [MapReduce] (State (Maybe Int)) (ReQL -> ReQL)+extractOne (None term) = return $ const term+extractOne mr = do+  tell [mr]+  st <- get+  case st of+    Nothing -> return id+    Just n -> do+      put $ Just $ n + 1+      return $ \v -> op NTH (v, n) ()
+ Database/RethinkDB/Network.hs view
@@ -0,0 +1,344 @@+{-# LANGUAGE RecordWildCards, OverloadedStrings, DeriveDataTypeable, NamedFieldPuns #-}++module Database.RethinkDB.Network (+  RethinkDBHandle(..),+  connect,+  close,+  use,+  runQLQuery,+  Cursor,+  makeCursor,+  next,+  collect,+  stopResponse,+  nextResponse,+  Response(..),+  SuccessCode(..),+  ErrorCode(..),+  RethinkDBError(..),+  RethinkDBConnectionError(..),+  ) where++import Control.Monad (when, forever)+import Data.Typeable (Typeable)+import Network (HostName, connectTo, PortID(PortNumber))+import System.IO (Handle, hClose, hIsEOF)+import Data.ByteString.Lazy (pack, unpack, hPut, hGet, ByteString)+import qualified Data.ByteString.Lazy as B+import qualified Data.ByteString.UTF8 as BS (fromString)+import qualified Data.Text as T+import Control.Concurrent (+  writeChan, MVar, Chan, modifyMVar, readMVar, forkIO, readChan,+  myThreadId, newMVar, ThreadId, withMVar, newChan,+  newEmptyMVar, putMVar, mkWeakMVar)+import Data.Bits (shiftL, (.|.), shiftR)+import Data.Monoid ((<>))+import Data.Foldable hiding (forM_)+import Control.Exception (catches, Exception, throwIO)+import Data.Aeson (toJSON, object, (.=), Value(Null, Bool))+import Data.IORef (IORef, newIORef, atomicModifyIORef', readIORef)+import Data.Map (Map)+import qualified Data.Map as M+import Data.Maybe (fromMaybe, listToMaybe)+import Control.Monad.Fix (fix)+import Data.Int (Int64)+import System.IO.Unsafe (unsafeInterleaveIO)++import Text.ProtocolBuffers.Basic (uToString)+import Text.ProtocolBuffers (messagePut, defaultValue, messageGet)++import Database.RethinkDB.Protobuf.Ql2.Query as Query+import Database.RethinkDB.Protobuf.Ql2.Query.QueryType+import qualified Database.RethinkDB.Protobuf.Ql2.Response as Ql2+import Database.RethinkDB.Protobuf.Ql2.Response.ResponseType+import Database.RethinkDB.Protobuf.Ql2.Datum as Datum+import Database.RethinkDB.Protobuf.Ql2.Datum.DatumType+import Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair+import Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version++import Database.RethinkDB.Objects as O+import Database.RethinkDB.ReQL (+  BaseReQL, Backtrace, convertBacktrace)++type Token = Int64++-- | A connection to the database server+data RethinkDBHandle = RethinkDBHandle {+  rdbHandle :: Handle,+  rdbWriteLock :: MVar (),+  rdbToken :: IORef Token, -- ^ The next token to use+  rdbDatabase :: Database,  -- ^ The default database+  rdbWait :: IORef (Map Token (Chan Response, BaseReQL)),+  rdbThread :: ThreadId+  }++data Cursor a = Cursor {+  cursorMBox :: MVar Response,+  cursorBuffer :: MVar (Either RethinkDBError ([O.Datum], Bool)),+  cursorMap :: O.Datum -> a }++instance Functor Cursor where+  fmap f Cursor{ .. } = Cursor { cursorMap = f . cursorMap, .. }++instance Show RethinkDBHandle where+  show RethinkDBHandle{ rdbHandle } = "RethinkDB Connection " ++ show rdbHandle++newToken :: RethinkDBHandle -> IO Int64+newToken RethinkDBHandle{rdbToken} =+  atomicModifyIORef' rdbToken $ \x -> (x+1, x)++data RethinkDBConnectionError =+  RethinkDBConnectionError ByteString+  deriving (Show, Typeable)+instance Exception RethinkDBConnectionError++-- | Create a new connection to the database server+--+-- /Example:/ connect using the default port with no passphrase+--+-- >>> h <- connect "localhost" 28015 Nothing++connect :: HostName -> Integer -> Maybe String -> IO RethinkDBHandle+connect host port mauth = do+  h <- connectTo host (PortNumber (fromInteger port))+  hPut h magicNumber+  let auth = B.fromChunks . return . BS.fromString $ fromMaybe "" mauth+  hPut h $ packUInt (fromIntegral $ B.length auth)+  hPut h auth+  res <- hGetNullTerminatedString h+  when (res /= "SUCCESS") $ throwIO (RethinkDBConnectionError res)+  r <- newIORef 1+  let db' = Database "test"+  wlock <- newMVar ()+  waits <- newIORef M.empty+  let rdb = RethinkDBHandle h wlock r db' waits+  tid <- forkIO $ readResponses rdb+  return $ rdb tid++hGetNullTerminatedString :: Handle -> IO ByteString+hGetNullTerminatedString h = go "" where+  go acc = do+    end <- hIsEOF h+    if end then return acc else do+      c <- B.hGet h 1+      if c == B.pack [0] then return acc else+        go (acc <> c)++magicNumber :: ByteString+magicNumber = packUInt $ fromEnum V0_2++-- | Convert a 4-byte byestring to an int+unpackUInt :: ByteString -> Int+unpackUInt s = case unpack s of+  [a,b,c,d] -> fromIntegral a .|.+               fromIntegral b `shiftL` 8 .|.+               fromIntegral c `shiftL` 16 .|.+               fromIntegral d `shiftL` 24+  _ -> error "unpackUInt: lengh is not 4"++-- | Convert an int to a 4-byte bytestring+packUInt :: Int -> B.ByteString+packUInt n = pack $ map fromIntegral $+               [n `mod` 256, (n `shiftR` 8) `mod` 256,+                (n `shiftR` 16) `mod` 256, (n `shiftR` 24) `mod` 256]++withHandle :: RethinkDBHandle -> (Handle -> IO a) -> IO a+withHandle RethinkDBHandle{ rdbHandle, rdbWriteLock } f =+  withMVar rdbWriteLock $ \_ -> f rdbHandle++data RethinkDBError = RethinkDBError {+  errorCode :: ErrorCode,+  errorTerm :: BaseReQL,+  errorMessage :: String,+  errorBacktrace :: Backtrace+  } deriving (Typeable, Show)++instance Exception RethinkDBError++-- | The raw response to a query+data Response = ErrorResponse {+  errorResponse :: RethinkDBError+  } | SuccessResponse {+  successCode :: SuccessCode,+  successDatums :: [O.Datum]+  }++data ErrorCode =+  ErrorBrokenClient |+  ErrorBadQuery |+  ErrorRuntime |+  ErrorUnexpectedResponse++instance Show ErrorCode where+  show ErrorBrokenClient = "broken client error"+  show ErrorBadQuery = "malformed query error"+  show ErrorRuntime = "runtime error"+  show ErrorUnexpectedResponse = "unexpected response"++data SuccessCode =+  SuccessPartial RethinkDBHandle Int64 |+  Success+  deriving Show++instance Show Response where+  show (ErrorResponse RethinkDBError {..}) =+    show errorCode ++ ": " +++    show errorMessage ++ " (" +++    show errorBacktrace ++ ")"+  show SuccessResponse {..} = show successCode ++ ": " ++ show successDatums++convertResponse :: RethinkDBHandle -> BaseReQL -> Int64 -> Ql2.Response -> Response+convertResponse h q t Ql2.Response{ .. } = case type' of+  Just SUCCESS_ATOM -> SuccessResponse Success (map convertDatum r)+  Just SUCCESS_PARTIAL -> SuccessResponse (SuccessPartial h t) (map convertDatum r)+  Just SUCCESS_SEQUENCE -> SuccessResponse Success (map convertDatum r)+  Just CLIENT_ERROR -> ErrorResponse $ RethinkDBError ErrorBrokenClient q e bt+  Just COMPILE_ERROR -> ErrorResponse $ RethinkDBError ErrorBadQuery q e bt+  Just RUNTIME_ERROR -> ErrorResponse $ RethinkDBError ErrorRuntime q e bt+  Nothing -> ErrorResponse $ RethinkDBError ErrorUnexpectedResponse q e bt+  where+    bt = maybe [] convertBacktrace backtrace+    r = toList response+    e = maybe "" uToString $ r_str =<< listToMaybe (toList response) +        -- TODO: nicer backtrace++runQLQuery :: RethinkDBHandle -> Query -> BaseReQL -> IO (MVar Response)+runQLQuery h query term = do+  tok <- newToken h+  mbox <- addMBox h tok term+  sendQLQuery h query{ Query.token = Just tok }+  return mbox++addMBox :: RethinkDBHandle -> Token -> BaseReQL -> IO (MVar Response)+addMBox h tok term = do+  chan <- newChan+  atomicModifyIORef' (rdbWait h) $ \mboxes -> +    (M.insert tok (chan, term) mboxes, ())+  mbox <- newEmptyMVar+  _ <- mkWeakMVar mbox $ do+    atomicModifyIORef' (rdbWait h) $ \mboxes -> +      (M.delete tok mboxes, ())+  _ <- forkIO $ fix $ \loop -> do+    response <- readChan chan+    putMVar mbox response+    when (not $ isLastResponse response) $ do+      nextResponse response+      loop+  return mbox++sendQLQuery :: RethinkDBHandle -> Query -> IO ()+sendQLQuery h query = do+  let queryS = messagePut query+  withHandle h $ \s ->+    hPut s $ packUInt (fromIntegral $ B.length queryS) <> queryS++data RethinkDBReadError =+  RethinkDBReadError String+  deriving (Show, Typeable)+instance Exception RethinkDBReadError++readResponses :: (ThreadId -> RethinkDBHandle) -> IO ()+readResponses h' = do+  tid <- myThreadId+  let h = h' tid+  forever $ flip catches handlers $+    readSingleResponse h+  where+    handlers = []++readSingleResponse :: RethinkDBHandle -> IO ()+readSingleResponse h = do+  header <- hGet (rdbHandle h) 4+  rawResponse <- hGet (rdbHandle h) (unpackUInt header)+  let parsedResponse = messageGet rawResponse+  case parsedResponse of+    Left errMsg -> throwIO $ RethinkDBReadError errMsg+    Right (response, rest)+      | B.null rest -> dispatch (Ql2.token response) response+      | otherwise -> throwIO $ RethinkDBReadError "RethinkDB: readResponses: invalid reply length"++  where+  dispatch Nothing _ = return ()+  dispatch (Just tok) response = do+    mboxes <- readIORef $ rdbWait h+    case M.lookup tok mboxes of+      Nothing -> return ()+      Just (mbox, term) -> do+        let convertedResponse = convertResponse h term tok response+        writeChan mbox convertedResponse+        when (isLastResponse convertedResponse) $+          atomicModifyIORef' (rdbWait h) $ \m -> (M.delete tok m, ())++isLastResponse :: Response -> Bool+isLastResponse ErrorResponse{} = True+isLastResponse SuccessResponse{ successCode = Success } = True+isLastResponse SuccessResponse{ successCode = SuccessPartial{} } = False++-- | Set the default database+--+-- The new handle is an alias for the old one. Calling close on either one+-- will close both.+use :: RethinkDBHandle -> Database -> RethinkDBHandle+use h db' = h { rdbDatabase = db' }++-- | Close an open connection+close :: RethinkDBHandle -> IO ()+close RethinkDBHandle{ rdbHandle } = hClose rdbHandle++convertDatum :: Datum.Datum -> O.Datum+convertDatum Datum { type' = Just R_NULL } = Null+convertDatum Datum { type' = Just R_BOOL, r_bool = Just b } = Bool b+convertDatum Datum { type' = Just R_ARRAY, r_array = a } = toJSON (map convertDatum $ toList a)+convertDatum Datum { type' = Just R_OBJECT, r_object = o } =+  object $ Prelude.concatMap pair $ toList o+    where+      pair (AssocPair (Just k) (Just v))  = [(T.pack $ uToString $ k) .= convertDatum v]+      pair _ = []+convertDatum Datum { type' = Just R_STR, r_str = Just s } = toJSON (uToString s)+convertDatum Datum { type' = Just R_NUM, r_num = Just n } = toJSON n+convertDatum d = error ("Invalid Datum: " ++ show d)++stopResponse :: Response -> IO ()+stopResponse SuccessResponse { successCode = SuccessPartial h tok } = do+  let query = defaultValue { Query.type' = Just STOP, Query.token = Just tok}+  sendQLQuery h query+stopResponse _ = return ()++nextResponse :: Response -> IO ()+nextResponse SuccessResponse { successCode = SuccessPartial h tok } = do+  let query = defaultValue { Query.type' = Just CONTINUE, Query.token = Just tok}+  sendQLQuery h query+nextResponse _ = return ()++makeCursor :: MVar Response -> IO (Cursor O.Datum)+makeCursor cursorMBox = do+  cursorBuffer <- newMVar (Right ([], False))+  return Cursor{..}+  where cursorMap = id++-- | Get the next value from a cursor+next :: Cursor a -> IO (Maybe a)+next c@Cursor{ .. } = modifyMVar cursorBuffer $ fix $ \loop mbuffer ->+  case mbuffer of+    Left err -> throwIO err+    Right ([], True) -> return (Right ([], True), Nothing)+    Right (x:xs, end) -> return $ (Right (xs, end), Just (cursorMap x))+    Right ([], False) -> cursorFetchBatch c >>= loop++cursorFetchBatch :: Cursor a -> IO (Either RethinkDBError ([O.Datum], Bool))+cursorFetchBatch c = do+  response <- readMVar (cursorMBox c)+  case response of+    ErrorResponse e -> return $ Left e+    SuccessResponse Success datums -> return $ Right (datums, True)+    SuccessResponse SuccessPartial{} datums -> return $ Right (datums, False)++-- | A lazy stream of all the elements in the cursor+collect :: Cursor a -> IO [a]+collect c = fix $ \loop -> do+    n <- next c+    case n of+      Nothing -> return []+      Just x -> do+        xs <- unsafeInterleaveIO $ loop+        return $ x : xs
+ Database/RethinkDB/Objects.hs view
@@ -0,0 +1,45 @@+module Database.RethinkDB.Objects (+  Database(..),+  TableCreateOptions(..),+  Table(..),+  Datum,+  Key+  ) where++import Data.Default (def, Default)+import Data.Int (Int64)+import Data.Text as Text+import Data.Aeson (Value)++type Key = Text++-- | A database, referenced by name+data Database = Database {+  databaseName :: Text+  } deriving (Eq, Ord)++instance Show Database where+  show (Database d) = show d++-- | Options used to create a table+data TableCreateOptions = TableCreateOptions {+  tableDataCenter :: Maybe Text,+  tableCacheSize :: Maybe Int64+  }++instance Default TableCreateOptions where+  def = TableCreateOptions Nothing Nothing++-- | A table description+data Table = Table {+  tableDatabase :: Maybe Database, -- ^ when Nothing, use the connection's database+  tableName :: Text,+  tablePrimaryKey :: Maybe Key+  } deriving (Eq, Ord)++instance Show Table where+  show (Table db' nam mkey) =+    maybe "" (\(Database d) -> Text.unpack d++".") db' ++ Text.unpack nam +++    maybe "" (\k -> "[" ++ show k ++ "]") mkey++type Datum = Value
+ Database/RethinkDB/Protobuf/Ql2.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2 (protoInfo, fileDescriptorProto) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import Text.DescriptorProtos.FileDescriptorProto (FileDescriptorProto)+import Text.ProtocolBuffers.Reflections (ProtoInfo)+import qualified Text.ProtocolBuffers.WireMessage as P' (wireGet,getFromBS)+ +protoInfo :: ProtoInfo+protoInfo+ = Prelude'.read+    "ProtoInfo {protoMod = ProtoName {protobufName = FIName \".Ql2\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [], baseName = MName \"Ql2\"}, protoFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2.hs\"], protoSource = \"ql2.proto\", extensionKeys = fromList [], messages = [DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.VersionDummy\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"VersionDummy\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"VersionDummy.hs\"], isGroup = False, fields = fromList [], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Query\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Query\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Query.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Query.QueryType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Query\"], baseName = MName \"QueryType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.query\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"query\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.token\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"token\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.OBSOLETE_noreply\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"oBSOLETE_noreply\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"false\", hsDefault = Just (HsDef'Bool False)},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.global_optargs\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"global_optargs\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Query.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Query\"], baseName = MName \"AssocPair\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Query.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Query\"], baseName = MName \"AssocPair\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Query\",\"AssocPair.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.AssocPair.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\",MName \"AssocPair\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.AssocPair.val\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\",MName \"AssocPair\"], baseName' = FName \"val\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Frame\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Frame\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Frame.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Frame.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Frame\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Frame.FrameType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Frame\"], baseName = MName \"FrameType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Frame.pos\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Frame\"], baseName' = FName \"pos\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Frame.opt\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Frame\"], baseName' = FName \"opt\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Backtrace\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Backtrace\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Backtrace.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Backtrace.frames\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Backtrace\"], baseName' = FName \"frames\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Frame\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Frame\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Response\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Response\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Response.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Response.ResponseType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Response\"], baseName = MName \"ResponseType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.token\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"token\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.response\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"response\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.backtrace\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"backtrace\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Backtrace\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Backtrace\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Datum.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum.DatumType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Datum\"], baseName = MName \"DatumType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_bool\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_bool\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_num\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_num\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 25}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 1}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_str\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_str\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_array\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_array\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_object\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_object\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Datum\"], baseName = MName \"AssocPair\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 10000},FieldId {getFieldId = 18999}),(FieldId {getFieldId = 20000},FieldId {getFieldId = 20000})], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Datum.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Datum\"], baseName = MName \"AssocPair\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Datum\",\"AssocPair.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.AssocPair.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\",MName \"AssocPair\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.AssocPair.val\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\",MName \"AssocPair\"], baseName' = FName \"val\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Term.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term.TermType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Term\"], baseName = MName \"TermType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.datum\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"datum\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.args\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"args\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.optargs\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"optargs\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Term\"], baseName = MName \"AssocPair\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 10000},FieldId {getFieldId = 18999}),(FieldId {getFieldId = 20000},FieldId {getFieldId = 20000})], knownKeys = fromList [], storeUnknown = False, lazyFields = False},DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Term.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Term\"], baseName = MName \"AssocPair\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Term\",\"AssocPair.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.AssocPair.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\",MName \"AssocPair\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.AssocPair.val\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\",MName \"AssocPair\"], baseName' = FName \"val\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}], enums = [EnumInfo {enumName = ProtoName {protobufName = FIName \".Ql2.VersionDummy.Version\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"VersionDummy\"], baseName = MName \"Version\"}, enumFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"VersionDummy\",\"Version.hs\"], enumValues = [(EnumCode {getEnumCode = 1063369270},\"V0_1\"),(EnumCode {getEnumCode = 1915781601},\"V0_2\")]},EnumInfo {enumName = ProtoName {protobufName = FIName \".Ql2.Query.QueryType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Query\"], baseName = MName \"QueryType\"}, enumFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Query\",\"QueryType.hs\"], enumValues = [(EnumCode {getEnumCode = 1},\"START\"),(EnumCode {getEnumCode = 2},\"CONTINUE\"),(EnumCode {getEnumCode = 3},\"STOP\")]},EnumInfo {enumName = ProtoName {protobufName = FIName \".Ql2.Frame.FrameType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Frame\"], baseName = MName \"FrameType\"}, enumFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Frame\",\"FrameType.hs\"], enumValues = [(EnumCode {getEnumCode = 1},\"POS\"),(EnumCode {getEnumCode = 2},\"OPT\")]},EnumInfo {enumName = ProtoName {protobufName = FIName \".Ql2.Response.ResponseType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Response\"], baseName = MName \"ResponseType\"}, enumFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Response\",\"ResponseType.hs\"], enumValues = [(EnumCode {getEnumCode = 1},\"SUCCESS_ATOM\"),(EnumCode {getEnumCode = 2},\"SUCCESS_SEQUENCE\"),(EnumCode {getEnumCode = 3},\"SUCCESS_PARTIAL\"),(EnumCode {getEnumCode = 16},\"CLIENT_ERROR\"),(EnumCode {getEnumCode = 17},\"COMPILE_ERROR\"),(EnumCode {getEnumCode = 18},\"RUNTIME_ERROR\")]},EnumInfo {enumName = ProtoName {protobufName = FIName \".Ql2.Datum.DatumType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Datum\"], baseName = MName \"DatumType\"}, enumFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Datum\",\"DatumType.hs\"], enumValues = [(EnumCode {getEnumCode = 1},\"R_NULL\"),(EnumCode {getEnumCode = 2},\"R_BOOL\"),(EnumCode {getEnumCode = 3},\"R_NUM\"),(EnumCode {getEnumCode = 4},\"R_STR\"),(EnumCode {getEnumCode = 5},\"R_ARRAY\"),(EnumCode {getEnumCode = 6},\"R_OBJECT\")]},EnumInfo {enumName = ProtoName {protobufName = FIName \".Ql2.Term.TermType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Term\"], baseName = MName \"TermType\"}, enumFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Term\",\"TermType.hs\"], enumValues = [(EnumCode {getEnumCode = 1},\"DATUM\"),(EnumCode {getEnumCode = 2},\"MAKE_ARRAY\"),(EnumCode {getEnumCode = 3},\"MAKE_OBJ\"),(EnumCode {getEnumCode = 10},\"VAR\"),(EnumCode {getEnumCode = 11},\"JAVASCRIPT\"),(EnumCode {getEnumCode = 12},\"ERROR\"),(EnumCode {getEnumCode = 13},\"IMPLICIT_VAR\"),(EnumCode {getEnumCode = 14},\"DB\"),(EnumCode {getEnumCode = 15},\"TABLE\"),(EnumCode {getEnumCode = 16},\"GET\"),(EnumCode {getEnumCode = 78},\"GET_ALL\"),(EnumCode {getEnumCode = 17},\"EQ\"),(EnumCode {getEnumCode = 18},\"NE\"),(EnumCode {getEnumCode = 19},\"LT\"),(EnumCode {getEnumCode = 20},\"LE\"),(EnumCode {getEnumCode = 21},\"GT\"),(EnumCode {getEnumCode = 22},\"GE\"),(EnumCode {getEnumCode = 23},\"NOT\"),(EnumCode {getEnumCode = 24},\"ADD\"),(EnumCode {getEnumCode = 25},\"SUB\"),(EnumCode {getEnumCode = 26},\"MUL\"),(EnumCode {getEnumCode = 27},\"DIV\"),(EnumCode {getEnumCode = 28},\"MOD\"),(EnumCode {getEnumCode = 29},\"APPEND\"),(EnumCode {getEnumCode = 80},\"PREPEND\"),(EnumCode {getEnumCode = 95},\"DIFFERENCE\"),(EnumCode {getEnumCode = 88},\"SET_INSERT\"),(EnumCode {getEnumCode = 89},\"SET_INTERSECTION\"),(EnumCode {getEnumCode = 90},\"SET_UNION\"),(EnumCode {getEnumCode = 91},\"SET_DIFFERENCE\"),(EnumCode {getEnumCode = 30},\"SLICE\"),(EnumCode {getEnumCode = 70},\"SKIP\"),(EnumCode {getEnumCode = 71},\"LIMIT\"),(EnumCode {getEnumCode = 87},\"INDEXES_OF\"),(EnumCode {getEnumCode = 93},\"CONTAINS\"),(EnumCode {getEnumCode = 31},\"GET_FIELD\"),(EnumCode {getEnumCode = 94},\"KEYS\"),(EnumCode {getEnumCode = 32},\"HAS_FIELDS\"),(EnumCode {getEnumCode = 96},\"WITH_FIELDS\"),(EnumCode {getEnumCode = 33},\"PLUCK\"),(EnumCode {getEnumCode = 34},\"WITHOUT\"),(EnumCode {getEnumCode = 35},\"MERGE\"),(EnumCode {getEnumCode = 36},\"BETWEEN\"),(EnumCode {getEnumCode = 37},\"REDUCE\"),(EnumCode {getEnumCode = 38},\"MAP\"),(EnumCode {getEnumCode = 39},\"FILTER\"),(EnumCode {getEnumCode = 40},\"CONCATMAP\"),(EnumCode {getEnumCode = 41},\"ORDERBY\"),(EnumCode {getEnumCode = 42},\"DISTINCT\"),(EnumCode {getEnumCode = 43},\"COUNT\"),(EnumCode {getEnumCode = 86},\"IS_EMPTY\"),(EnumCode {getEnumCode = 44},\"UNION\"),(EnumCode {getEnumCode = 45},\"NTH\"),(EnumCode {getEnumCode = 46},\"GROUPED_MAP_REDUCE\"),(EnumCode {getEnumCode = 47},\"GROUPBY\"),(EnumCode {getEnumCode = 48},\"INNER_JOIN\"),(EnumCode {getEnumCode = 49},\"OUTER_JOIN\"),(EnumCode {getEnumCode = 50},\"EQ_JOIN\"),(EnumCode {getEnumCode = 72},\"ZIP\"),(EnumCode {getEnumCode = 82},\"INSERT_AT\"),(EnumCode {getEnumCode = 83},\"DELETE_AT\"),(EnumCode {getEnumCode = 84},\"CHANGE_AT\"),(EnumCode {getEnumCode = 85},\"SPLICE_AT\"),(EnumCode {getEnumCode = 51},\"COERCE_TO\"),(EnumCode {getEnumCode = 52},\"TYPEOF\"),(EnumCode {getEnumCode = 53},\"UPDATE\"),(EnumCode {getEnumCode = 54},\"DELETE\"),(EnumCode {getEnumCode = 55},\"REPLACE\"),(EnumCode {getEnumCode = 56},\"INSERT\"),(EnumCode {getEnumCode = 57},\"DB_CREATE\"),(EnumCode {getEnumCode = 58},\"DB_DROP\"),(EnumCode {getEnumCode = 59},\"DB_LIST\"),(EnumCode {getEnumCode = 60},\"TABLE_CREATE\"),(EnumCode {getEnumCode = 61},\"TABLE_DROP\"),(EnumCode {getEnumCode = 62},\"TABLE_LIST\"),(EnumCode {getEnumCode = 75},\"INDEX_CREATE\"),(EnumCode {getEnumCode = 76},\"INDEX_DROP\"),(EnumCode {getEnumCode = 77},\"INDEX_LIST\"),(EnumCode {getEnumCode = 64},\"FUNCALL\"),(EnumCode {getEnumCode = 65},\"BRANCH\"),(EnumCode {getEnumCode = 66},\"ANY\"),(EnumCode {getEnumCode = 67},\"ALL\"),(EnumCode {getEnumCode = 68},\"FOREACH\"),(EnumCode {getEnumCode = 69},\"FUNC\"),(EnumCode {getEnumCode = 73},\"ASC\"),(EnumCode {getEnumCode = 74},\"DESC\"),(EnumCode {getEnumCode = 79},\"INFO\"),(EnumCode {getEnumCode = 97},\"MATCH\"),(EnumCode {getEnumCode = 81},\"SAMPLE\"),(EnumCode {getEnumCode = 92},\"DEFAULT\"),(EnumCode {getEnumCode = 98},\"JSON\"),(EnumCode {getEnumCode = 99},\"ISO8601\"),(EnumCode {getEnumCode = 100},\"TO_ISO8601\"),(EnumCode {getEnumCode = 101},\"EPOCH_TIME\"),(EnumCode {getEnumCode = 102},\"TO_EPOCH_TIME\"),(EnumCode {getEnumCode = 103},\"NOW\"),(EnumCode {getEnumCode = 104},\"IN_TIMEZONE\"),(EnumCode {getEnumCode = 105},\"DURING\"),(EnumCode {getEnumCode = 106},\"DATE\"),(EnumCode {getEnumCode = 126},\"TIME_OF_DAY\"),(EnumCode {getEnumCode = 127},\"TIMEZONE\"),(EnumCode {getEnumCode = 128},\"YEAR\"),(EnumCode {getEnumCode = 129},\"MONTH\"),(EnumCode {getEnumCode = 130},\"DAY\"),(EnumCode {getEnumCode = 131},\"DAY_OF_WEEK\"),(EnumCode {getEnumCode = 132},\"DAY_OF_YEAR\"),(EnumCode {getEnumCode = 133},\"HOURS\"),(EnumCode {getEnumCode = 134},\"MINUTES\"),(EnumCode {getEnumCode = 135},\"SECONDS\"),(EnumCode {getEnumCode = 136},\"TIME\"),(EnumCode {getEnumCode = 107},\"MONDAY\"),(EnumCode {getEnumCode = 108},\"TUESDAY\"),(EnumCode {getEnumCode = 109},\"WEDNESDAY\"),(EnumCode {getEnumCode = 110},\"THURSDAY\"),(EnumCode {getEnumCode = 111},\"FRIDAY\"),(EnumCode {getEnumCode = 112},\"SATURDAY\"),(EnumCode {getEnumCode = 113},\"SUNDAY\"),(EnumCode {getEnumCode = 114},\"JANUARY\"),(EnumCode {getEnumCode = 115},\"FEBRUARY\"),(EnumCode {getEnumCode = 116},\"MARCH\"),(EnumCode {getEnumCode = 117},\"APRIL\"),(EnumCode {getEnumCode = 118},\"MAY\"),(EnumCode {getEnumCode = 119},\"JUNE\"),(EnumCode {getEnumCode = 120},\"JULY\"),(EnumCode {getEnumCode = 121},\"AUGUST\"),(EnumCode {getEnumCode = 122},\"SEPTEMBER\"),(EnumCode {getEnumCode = 123},\"OCTOBER\"),(EnumCode {getEnumCode = 124},\"NOVEMBER\"),(EnumCode {getEnumCode = 125},\"DECEMBER\"),(EnumCode {getEnumCode = 137},\"LITERAL\")]}], knownKeyMap = fromList []}"+ +fileDescriptorProto :: FileDescriptorProto+fileDescriptorProto+ = P'.getFromBS (P'.wireGet 11)+    (P'.pack+      "\230\SYN\n\tql2.proto\"5\n\fVersionDummy\"%\n\aVersion\DC2\f\n\EOTV0_1\DLE\182\244\134\251\ETX\DC2\f\n\EOTV0_2\DLE\225\131\194\145\a\"\133\STX\n\ENQQuery\DC2\"\n\EOTtype\CAN\SOH \SOH(\SO2\DC4.Ql2.Query.QueryType\DC2\CAN\n\ENQquery\CAN\STX \SOH(\v2\t.Ql2.Term\DC2\r\n\ENQtoken\CAN\ETX \SOH(\ETX\DC2\US\n\DLEOBSOLETE_noreply\CAN\EOT \SOH(\b:\ENQfalse\DC2,\n\SOglobal_optargs\CAN\ACK \ETX(\v2\DC4.Ql2.Query.AssocPair\SUB0\n\tAssocPair\DC2\v\n\ETXkey\CAN\SOH \SOH(\t\DC2\SYN\n\ETXval\CAN\STX \SOH(\v2\t.Ql2.Term\".\n\tQueryType\DC2\t\n\ENQSTART\DLE\SOH\DC2\f\n\bCONTINUE\DLE\STX\DC2\b\n\EOTSTOP\DLE\ETX\"d\n\ENQFrame\DC2\"\n\EOTtype\CAN\SOH \SOH(\SO2\DC4.Ql2.Frame.FrameType\DC2\v\n\ETXpos\CAN\STX \SOH(\ETX\DC2\v\n\ETXopt\CAN\ETX \SOH(\t\"\GS\n\tFrameType\DC2\a\n\ETXPOS\DLE\SOH\DC2\a\n\ETXOPT\DLE\STX\"'\n\tBacktrace\DC2\SUB\n\ACKframes\CAN\SOH \ETX(\v2\n.Ql2.Frame\"\138\STX\n\bResponse\DC2(\n\EOTtype\CAN\SOH \SOH(\SO2\SUB.Ql2.Response.ResponseType\DC2\r\n\ENQtoken\CAN\STX \SOH(\ETX\DC2\FS\n\bresponse\CAN\ETX \ETX(\v2\n.Ql2.Datum\DC2!\n\tbacktrace\CAN\EOT \SOH(\v2\SO.Ql2.Backtrace\"\131\SOH\n\fResponseType\DC2\DLE\n\fSUCCESS_ATOM\DLE\SOH\DC2\DC4\n\DLESUCCESS_SEQUENCE\DLE\STX\DC2\DC3\n\SISUCCESS_PARTIAL\DLE\ETX\DC2\DLE\n\fCLIENT_ERROR\DLE\DLE\DC2\DC1\n\rCOMPILE_ERROR\DLE\DC1\DC2\DC1\n\rRUNTIME_ERROR\DLE\DC2\"\176\STX\n\ENQDatum\DC2\"\n\EOTtype\CAN\SOH \SOH(\SO2\DC4.Ql2.Datum.DatumType\DC2\SO\n\ACKr_bool\CAN\STX \SOH(\b\DC2\r\n\ENQr_num\CAN\ETX \SOH(\SOH\DC2\r\n\ENQr_str\CAN\EOT \SOH(\t\DC2\ESC\n\ar_array\CAN\ENQ \ETX(\v2\n.Ql2.Datum\DC2&\n\br_object\CAN\ACK \ETX(\v2\DC4.Ql2.Datum.AssocPair\SUB1\n\tAssocPair\DC2\v\n\ETXkey\CAN\SOH \SOH(\t\DC2\ETB\n\ETXval\CAN\STX \SOH(\v2\n.Ql2.Datum\"T\n\tDatumType\DC2\n\n\ACKR_NULL\DLE\SOH\DC2\n\n\ACKR_BOOL\DLE\STX\DC2\t\n\ENQR_NUM\DLE\ETX\DC2\t\n\ENQR_STR\DLE\EOT\DC2\v\n\aR_ARRAY\DLE\ENQ\DC2\f\n\bR_OBJECT\DLE\ACK*\a\b\144N\DLE\161\156\SOH\"\202\SO\n\EOTTerm\DC2 \n\EOTtype\CAN\SOH \SOH(\SO2\DC2.Ql2.Term.TermType\DC2\EM\n\ENQdatum\CAN\STX \SOH(\v2\n.Ql2.Datum\DC2\ETB\n\EOTargs\CAN\ETX \ETX(\v2\t.Ql2.Term\DC2$\n\aoptargs\CAN\EOT \ETX(\v2\DC3.Ql2.Term.AssocPair\SUB0\n\tAssocPair\DC2\v\n\ETXkey\CAN\SOH \SOH(\t\DC2\SYN\n\ETXval\CAN\STX \SOH(\v2\t.Ql2.Term\"\138\r\n\bTermType\DC2\t\n\ENQDATUM\DLE\SOH\DC2\SO\n\nMAKE_ARRAY\DLE\STX\DC2\f\n\bMAKE_OBJ\DLE\ETX\DC2\a\n\ETXVAR\DLE\n\DC2\SO\n\nJAVASCRIPT\DLE\v\DC2\t\n\ENQERROR\DLE\f\DC2\DLE\n\fIMPLICIT_VAR\DLE\r\DC2\ACK\n\STXDB\DLE\SO\DC2\t\n\ENQTABLE\DLE\SI\DC2\a\n\ETXGET\DLE\DLE\DC2\v\n\aGET_ALL\DLEN\DC2\ACK\n\STXEQ\DLE\DC1\DC2\ACK\n\STXNE\DLE\DC2\DC2\ACK\n\STXLT\DLE\DC3\DC2\ACK\n\STXLE\DLE\DC4\DC2\ACK\n\STXGT\DLE\NAK\DC2\ACK\n\STXGE\DLE\SYN\DC2\a\n\ETXNOT\DLE\ETB\DC2\a\n\ETXADD\DLE\CAN\DC2\a\n\ETXSUB\DLE\EM\DC2\a\n\ETXMUL\DLE\SUB\DC2\a\n\ETXDIV\DLE\ESC\DC2\a\n\ETXMOD\DLE\FS\DC2\n\n\ACKAPPEND\DLE\GS\DC2\v\n\aPREPEND\DLEP\DC2\SO\n\nDIFFERENCE\DLE_\DC2\SO\n\nSET_INSERT\DLEX\DC2\DC4\n\DLESET_INTERSECTION\DLEY\DC2\r\n\tSET_UNION\DLEZ\DC2\DC2\n\SOSET_DIFFERENCE\DLE[\DC2\t\n\ENQSLICE\DLE\RS\DC2\b\n\EOTSKIP\DLEF\DC2\t\n\ENQLIMIT\DLEG\DC2\SO\n\nINDEXES_OF\DLEW\DC2\f\n\bCONTAINS\DLE]\DC2\r\n\tGET_FIELD\DLE\US\DC2\b\n\EOTKEYS\DLE^\DC2\SO\n\nHAS_FIELDS\DLE \DC2\SI\n\vWITH_FIELDS\DLE`\DC2\t\n\ENQPLUCK\DLE!\DC2\v\n\aWITHOUT\DLE\"\DC2\t\n\ENQMERGE\DLE#\DC2\v\n\aBETWEEN\DLE$\DC2\n\n\ACKREDUCE\DLE%\DC2\a\n\ETXMAP\DLE&\DC2\n\n\ACKFILTER\DLE'\DC2\r\n\tCONCATMAP\DLE(\DC2\v\n\aORDERBY\DLE)\DC2\f\n\bDISTINCT\DLE*\DC2\t\n\ENQCOUNT\DLE+\DC2\f\n\bIS_EMPTY\DLEV\DC2\t\n\ENQUNION\DLE,\DC2\a\n\ETXNTH\DLE-\DC2\SYN\n\DC2GROUPED_MAP_REDUCE\DLE.\DC2\v\n\aGROUPBY\DLE/\DC2\SO\n\nINNER_JOIN\DLE0\DC2\SO\n\nOUTER_JOIN\DLE1\DC2\v\n\aEQ_JOIN\DLE2\DC2\a\n\ETXZIP\DLEH\DC2\r\n\tINSERT_AT\DLER\DC2\r\n\tDELETE_AT\DLES\DC2\r\n\tCHANGE_AT\DLET\DC2\r\n\tSPLICE_AT\DLEU\DC2\r\n\tCOERCE_TO\DLE3\DC2\n\n\ACKTYPEOF\DLE4\DC2\n\n\ACKUPDATE\DLE5\DC2\n\n\ACKDELETE\DLE6\DC2\v\n\aREPLACE\DLE7\DC2\n\n\ACKINSERT\DLE8\DC2\r\n\tDB_CREATE\DLE9\DC2\v\n\aDB_DROP\DLE:\DC2\v\n\aDB_LIST\DLE;\DC2\DLE\n\fTABLE_CREATE\DLE<\DC2\SO\n\nTABLE_DROP\DLE=\DC2\SO\n\nTABLE_LIST\DLE>\DC2\DLE\n\fINDEX_CREATE\DLEK\DC2\SO\n\nINDEX_DROP\DLEL\DC2\SO\n\nINDEX_LIST\DLEM\DC2\v\n\aFUNCALL\DLE@\DC2\n\n\ACKBRANCH\DLEA\DC2\a\n\ETXANY\DLEB\DC2\a\n\ETXALL\DLEC\DC2\v\n\aFOREACH\DLED\DC2\b\n\EOTFUNC\DLEE\DC2\a\n\ETXASC\DLEI\DC2\b\n\EOTDESC\DLEJ\DC2\b\n\EOTINFO\DLEO\DC2\t\n\ENQMATCH\DLEa\DC2\n\n\ACKSAMPLE\DLEQ\DC2\v\n\aDEFAULT\DLE\\\DC2\b\n\EOTJSON\DLEb\DC2\v\n\aISO8601\DLEc\DC2\SO\n\nTO_ISO8601\DLEd\DC2\SO\n\nEPOCH_TIME\DLEe\DC2\DC1\n\rTO_EPOCH_TIME\DLEf\DC2\a\n\ETXNOW\DLEg\DC2\SI\n\vIN_TIMEZONE\DLEh\DC2\n\n\ACKDURING\DLEi\DC2\b\n\EOTDATE\DLEj\DC2\SI\n\vTIME_OF_DAY\DLE~\DC2\f\n\bTIMEZONE\DLE\DEL\DC2\t\n\EOTYEAR\DLE\128\SOH\DC2\n\n\ENQMONTH\DLE\129\SOH\DC2\b\n\ETXDAY\DLE\130\SOH\DC2\DLE\n\vDAY_OF_WEEK\DLE\131\SOH\DC2\DLE\n\vDAY_OF_YEAR\DLE\132\SOH\DC2\n\n\ENQHOURS\DLE\133\SOH\DC2\f\n\aMINUTES\DLE\134\SOH\DC2\f\n\aSECONDS\DLE\135\SOH\DC2\t\n\EOTTIME\DLE\136\SOH\DC2\n\n\ACKMONDAY\DLEk\DC2\v\n\aTUESDAY\DLEl\DC2\r\n\tWEDNESDAY\DLEm\DC2\f\n\bTHURSDAY\DLEn\DC2\n\n\ACKFRIDAY\DLEo\DC2\f\n\bSATURDAY\DLEp\DC2\n\n\ACKSUNDAY\DLEq\DC2\v\n\aJANUARY\DLEr\DC2\f\n\bFEBRUARY\DLEs\DC2\t\n\ENQMARCH\DLEt\DC2\t\n\ENQAPRIL\DLEu\DC2\a\n\ETXMAY\DLEv\DC2\b\n\EOTJUNE\DLEw\DC2\b\n\EOTJULY\DLEx\DC2\n\n\ACKAUGUST\DLEy\DC2\r\n\tSEPTEMBER\DLEz\DC2\v\n\aOCTOBER\DLE{\DC2\f\n\bNOVEMBER\DLE|\DC2\f\n\bDECEMBER\DLE}\DC2\f\n\aLITERAL\DLE\137\SOH*\a\b\144N\DLE\161\156\SOH")
+ Database/RethinkDB/Protobuf/Ql2/Backtrace.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Backtrace (Backtrace(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Frame as Ql2 (Frame)+ +data Backtrace = Backtrace{frames :: !(P'.Seq Ql2.Frame)}+               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable Backtrace where+  mergeAppend (Backtrace x'1) (Backtrace y'1) = Backtrace (P'.mergeAppend x'1 y'1)+ +instance P'.Default Backtrace where+  defaultValue = Backtrace P'.defaultValue+ +instance P'.Wire Backtrace where+  wireSize ft' self'@(Backtrace x'1)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size = (P'.wireSizeRep 1 11 x'1)+  wirePut ft' self'@(Backtrace x'1)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutRep 10 11 x'1+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             10 -> Prelude'.fmap (\ !new'Field -> old'Self{frames = P'.append (frames old'Self) new'Field}) (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> Backtrace) Backtrace where+  getVal m' f' = f' m'+ +instance P'.GPB Backtrace+ +instance P'.ReflectDescriptor Backtrace where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [10])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Backtrace\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Backtrace\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Backtrace.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Backtrace.frames\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Backtrace\"], baseName' = FName \"frames\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Frame\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Frame\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Datum.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Datum (Datum(..)) where+import Prelude ((+), (/), (==), (<=), (&&))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import {-# SOURCE #-} qualified Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair as Ql2.Datum (AssocPair)+import qualified Database.RethinkDB.Protobuf.Ql2.Datum.DatumType as Ql2.Datum (DatumType)+ +data Datum = Datum{type' :: !(P'.Maybe Ql2.Datum.DatumType), r_bool :: !(P'.Maybe P'.Bool), r_num :: !(P'.Maybe P'.Double),+                   r_str :: !(P'.Maybe P'.Utf8), r_array :: !(P'.Seq Datum), r_object :: !(P'.Seq Ql2.Datum.AssocPair),+                   ext'field :: !P'.ExtField}+           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.ExtendMessage Datum where+  getExtField = ext'field+  putExtField e'f msg = msg{ext'field = e'f}+  validExtRanges msg = P'.extRanges (P'.reflectDescriptorInfo msg)+ +instance P'.Mergeable Datum where+  mergeAppend (Datum x'1 x'2 x'3 x'4 x'5 x'6 x'7) (Datum y'1 y'2 y'3 y'4 y'5 y'6 y'7)+   = Datum (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)+      (P'.mergeAppend x'5 y'5)+      (P'.mergeAppend x'6 y'6)+      (P'.mergeAppend x'7 y'7)+ +instance P'.Default Datum where+  defaultValue+   = Datum P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue+ +instance P'.Wire Datum where+  wireSize ft' self'@(Datum x'1 x'2 x'3 x'4 x'5 x'6 x'7)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size+         = (P'.wireSizeOpt 1 14 x'1 + P'.wireSizeOpt 1 8 x'2 + P'.wireSizeOpt 1 1 x'3 + P'.wireSizeOpt 1 9 x'4 ++             P'.wireSizeRep 1 11 x'5+             + P'.wireSizeRep 1 11 x'6+             + P'.wireSizeExtField x'7)+  wirePut ft' self'@(Datum x'1 x'2 x'3 x'4 x'5 x'6 x'7)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 8 14 x'1+             P'.wirePutOpt 16 8 x'2+             P'.wirePutOpt 25 1 x'3+             P'.wirePutOpt 34 9 x'4+             P'.wirePutRep 42 11 x'5+             P'.wirePutRep 50 11 x'6+             P'.wirePutExtField x'7+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = Prelude'.Just new'Field}) (P'.wireGet 14)+             16 -> Prelude'.fmap (\ !new'Field -> old'Self{r_bool = Prelude'.Just new'Field}) (P'.wireGet 8)+             25 -> Prelude'.fmap (\ !new'Field -> old'Self{r_num = Prelude'.Just new'Field}) (P'.wireGet 1)+             34 -> Prelude'.fmap (\ !new'Field -> old'Self{r_str = Prelude'.Just new'Field}) (P'.wireGet 9)+             42 -> Prelude'.fmap (\ !new'Field -> old'Self{r_array = P'.append (r_array old'Self) new'Field}) (P'.wireGet 11)+             50 -> Prelude'.fmap (\ !new'Field -> old'Self{r_object = P'.append (r_object old'Self) new'Field}) (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in+                   if Prelude'.or [10000 <= field'Number && field'Number <= 18999, field'Number == 20000] then+                    P'.loadExtension field'Number wire'Type old'Self else P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> Datum) Datum where+  getVal m' f' = f' m'+ +instance P'.GPB Datum+ +instance P'.ReflectDescriptor Datum where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [8, 16, 25, 34, 42, 50])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Datum.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum.DatumType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Datum\"], baseName = MName \"DatumType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_bool\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_bool\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_num\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_num\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 25}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 1}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_str\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_str\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_array\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_array\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 42}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.r_object\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\"], baseName' = FName \"r_object\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Datum\"], baseName = MName \"AssocPair\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 10000},FieldId {getFieldId = 18999}),(FieldId {getFieldId = 20000},FieldId {getFieldId = 20000})], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Datum/AssocPair.hs view
@@ -0,0 +1,61 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair (AssocPair(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Datum as Ql2 (Datum)+ +data AssocPair = AssocPair{key :: !(P'.Maybe P'.Utf8), val :: !(P'.Maybe Ql2.Datum)}+               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable AssocPair where+  mergeAppend (AssocPair x'1 x'2) (AssocPair y'1 y'2) = AssocPair (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)+ +instance P'.Default AssocPair where+  defaultValue = AssocPair P'.defaultValue P'.defaultValue+ +instance P'.Wire AssocPair where+  wireSize ft' self'@(AssocPair x'1 x'2)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size = (P'.wireSizeOpt 1 9 x'1 + P'.wireSizeOpt 1 11 x'2)+  wirePut ft' self'@(AssocPair x'1 x'2)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 10 9 x'1+             P'.wirePutOpt 18 11 x'2+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             10 -> Prelude'.fmap (\ !new'Field -> old'Self{key = Prelude'.Just new'Field}) (P'.wireGet 9)+             18 -> Prelude'.fmap (\ !new'Field -> old'Self{val = P'.mergeAppend (val old'Self) (Prelude'.Just new'Field)})+                    (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> AssocPair) AssocPair where+  getVal m' f' = f' m'+ +instance P'.GPB AssocPair+ +instance P'.ReflectDescriptor AssocPair where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [10, 18])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Datum.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Datum\"], baseName = MName \"AssocPair\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Datum\",\"AssocPair.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.AssocPair.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\",MName \"AssocPair\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Datum.AssocPair.val\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Datum\",MName \"AssocPair\"], baseName' = FName \"val\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Datum/AssocPair.hs-boot view
@@ -0,0 +1,30 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair (AssocPair) where+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data AssocPair+ +instance P'.MessageAPI msg' (msg' -> AssocPair) AssocPair+ +instance Prelude'.Show AssocPair+ +instance Prelude'.Eq AssocPair+ +instance Prelude'.Ord AssocPair+ +instance Prelude'.Typeable AssocPair+ +instance Prelude'.Data AssocPair+ +instance P'.Mergeable AssocPair+ +instance P'.Default AssocPair+ +instance P'.Wire AssocPair+ +instance P'.GPB AssocPair+ +instance P'.ReflectDescriptor AssocPair
+ Database/RethinkDB/Protobuf/Ql2/Datum/DatumType.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Datum.DatumType (DatumType(..)) where+import Prelude ((+), (/), (.))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data DatumType = R_NULL+               | R_BOOL+               | R_NUM+               | R_STR+               | R_ARRAY+               | R_OBJECT+               deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable DatumType+ +instance Prelude'.Bounded DatumType where+  minBound = R_NULL+  maxBound = R_OBJECT+ +instance P'.Default DatumType where+  defaultValue = R_NULL+ +toMaybe'Enum :: Prelude'.Int -> P'.Maybe DatumType+toMaybe'Enum 1 = Prelude'.Just R_NULL+toMaybe'Enum 2 = Prelude'.Just R_BOOL+toMaybe'Enum 3 = Prelude'.Just R_NUM+toMaybe'Enum 4 = Prelude'.Just R_STR+toMaybe'Enum 5 = Prelude'.Just R_ARRAY+toMaybe'Enum 6 = Prelude'.Just R_OBJECT+toMaybe'Enum _ = Prelude'.Nothing+ +instance Prelude'.Enum DatumType where+  fromEnum R_NULL = 1+  fromEnum R_BOOL = 2+  fromEnum R_NUM = 3+  fromEnum R_STR = 4+  fromEnum R_ARRAY = 5+  fromEnum R_OBJECT = 6+  toEnum+   = P'.fromMaybe (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Protobuf.Ql2.Datum.DatumType")+      . toMaybe'Enum+  succ R_NULL = R_BOOL+  succ R_BOOL = R_NUM+  succ R_NUM = R_STR+  succ R_STR = R_ARRAY+  succ R_ARRAY = R_OBJECT+  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Protobuf.Ql2.Datum.DatumType"+  pred R_BOOL = R_NULL+  pred R_NUM = R_BOOL+  pred R_STR = R_NUM+  pred R_ARRAY = R_STR+  pred R_OBJECT = R_ARRAY+  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Protobuf.Ql2.Datum.DatumType"+ +instance P'.Wire DatumType where+  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)+  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)+  wireGet 14 = P'.wireGetEnum toMaybe'Enum+  wireGet ft' = P'.wireGetErr ft'+  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum+  wireGetPacked ft' = P'.wireGetErr ft'+ +instance P'.GPB DatumType+ +instance P'.MessageAPI msg' (msg' -> DatumType) DatumType where+  getVal m' f' = f' m'+ +instance P'.ReflectEnum DatumType where+  reflectEnum+   = [(1, "R_NULL", R_NULL), (2, "R_BOOL", R_BOOL), (3, "R_NUM", R_NUM), (4, "R_STR", R_STR), (5, "R_ARRAY", R_ARRAY),+      (6, "R_OBJECT", R_OBJECT)]+  reflectEnumInfo _+   = P'.EnumInfo (P'.makePNF (P'.pack ".Ql2.Datum.DatumType") ["Database", "RethinkDB", "Protobuf"] ["Ql2", "Datum"] "DatumType")+      ["Database", "RethinkDB", "Protobuf", "Ql2", "Datum", "DatumType.hs"]+      [(1, "R_NULL"), (2, "R_BOOL"), (3, "R_NUM"), (4, "R_STR"), (5, "R_ARRAY"), (6, "R_OBJECT")]
+ Database/RethinkDB/Protobuf/Ql2/Frame.hs view
@@ -0,0 +1,63 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Frame (Frame(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Frame.FrameType as Ql2.Frame (FrameType)+ +data Frame = Frame{type' :: !(P'.Maybe Ql2.Frame.FrameType), pos :: !(P'.Maybe P'.Int64), opt :: !(P'.Maybe P'.Utf8)}+           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable Frame where+  mergeAppend (Frame x'1 x'2 x'3) (Frame y'1 y'2 y'3)+   = Frame (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3)+ +instance P'.Default Frame where+  defaultValue = Frame P'.defaultValue P'.defaultValue P'.defaultValue+ +instance P'.Wire Frame where+  wireSize ft' self'@(Frame x'1 x'2 x'3)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size = (P'.wireSizeOpt 1 14 x'1 + P'.wireSizeOpt 1 3 x'2 + P'.wireSizeOpt 1 9 x'3)+  wirePut ft' self'@(Frame x'1 x'2 x'3)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 8 14 x'1+             P'.wirePutOpt 16 3 x'2+             P'.wirePutOpt 26 9 x'3+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = Prelude'.Just new'Field}) (P'.wireGet 14)+             16 -> Prelude'.fmap (\ !new'Field -> old'Self{pos = Prelude'.Just new'Field}) (P'.wireGet 3)+             26 -> Prelude'.fmap (\ !new'Field -> old'Self{opt = Prelude'.Just new'Field}) (P'.wireGet 9)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> Frame) Frame where+  getVal m' f' = f' m'+ +instance P'.GPB Frame+ +instance P'.ReflectDescriptor Frame where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [8, 16, 26])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Frame\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Frame\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Frame.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Frame.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Frame\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Frame.FrameType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Frame\"], baseName = MName \"FrameType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Frame.pos\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Frame\"], baseName' = FName \"pos\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Frame.opt\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Frame\"], baseName' = FName \"opt\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Frame/FrameType.hs view
@@ -0,0 +1,56 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Frame.FrameType (FrameType(..)) where+import Prelude ((+), (/), (.))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data FrameType = POS+               | OPT+               deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable FrameType+ +instance Prelude'.Bounded FrameType where+  minBound = POS+  maxBound = OPT+ +instance P'.Default FrameType where+  defaultValue = POS+ +toMaybe'Enum :: Prelude'.Int -> P'.Maybe FrameType+toMaybe'Enum 1 = Prelude'.Just POS+toMaybe'Enum 2 = Prelude'.Just OPT+toMaybe'Enum _ = Prelude'.Nothing+ +instance Prelude'.Enum FrameType where+  fromEnum POS = 1+  fromEnum OPT = 2+  toEnum+   = P'.fromMaybe (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Protobuf.Ql2.Frame.FrameType")+      . toMaybe'Enum+  succ POS = OPT+  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Protobuf.Ql2.Frame.FrameType"+  pred OPT = POS+  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Protobuf.Ql2.Frame.FrameType"+ +instance P'.Wire FrameType where+  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)+  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)+  wireGet 14 = P'.wireGetEnum toMaybe'Enum+  wireGet ft' = P'.wireGetErr ft'+  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum+  wireGetPacked ft' = P'.wireGetErr ft'+ +instance P'.GPB FrameType+ +instance P'.MessageAPI msg' (msg' -> FrameType) FrameType where+  getVal m' f' = f' m'+ +instance P'.ReflectEnum FrameType where+  reflectEnum = [(1, "POS", POS), (2, "OPT", OPT)]+  reflectEnumInfo _+   = P'.EnumInfo (P'.makePNF (P'.pack ".Ql2.Frame.FrameType") ["Database", "RethinkDB", "Protobuf"] ["Ql2", "Frame"] "FrameType")+      ["Database", "RethinkDB", "Protobuf", "Ql2", "Frame", "FrameType.hs"]+      [(1, "POS"), (2, "OPT")]
+ Database/RethinkDB/Protobuf/Ql2/Query.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Query (Query(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Query.AssocPair as Ql2.Query (AssocPair)+import qualified Database.RethinkDB.Protobuf.Ql2.Query.QueryType as Ql2.Query (QueryType)+import qualified Database.RethinkDB.Protobuf.Ql2.Term as Ql2 (Term)+ +data Query = Query{type' :: !(P'.Maybe Ql2.Query.QueryType), query :: !(P'.Maybe Ql2.Term), token :: !(P'.Maybe P'.Int64),+                   oBSOLETE_noreply :: !(P'.Maybe P'.Bool), global_optargs :: !(P'.Seq Ql2.Query.AssocPair)}+           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable Query where+  mergeAppend (Query x'1 x'2 x'3 x'4 x'5) (Query y'1 y'2 y'3 y'4 y'5)+   = Query (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)+      (P'.mergeAppend x'5 y'5)+ +instance P'.Default Query where+  defaultValue = Query P'.defaultValue P'.defaultValue P'.defaultValue (Prelude'.Just Prelude'.False) P'.defaultValue+ +instance P'.Wire Query where+  wireSize ft' self'@(Query x'1 x'2 x'3 x'4 x'5)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size+         = (P'.wireSizeOpt 1 14 x'1 + P'.wireSizeOpt 1 11 x'2 + P'.wireSizeOpt 1 3 x'3 + P'.wireSizeOpt 1 8 x'4 ++             P'.wireSizeRep 1 11 x'5)+  wirePut ft' self'@(Query x'1 x'2 x'3 x'4 x'5)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 8 14 x'1+             P'.wirePutOpt 18 11 x'2+             P'.wirePutOpt 24 3 x'3+             P'.wirePutOpt 32 8 x'4+             P'.wirePutRep 50 11 x'5+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = Prelude'.Just new'Field}) (P'.wireGet 14)+             18 -> Prelude'.fmap (\ !new'Field -> old'Self{query = P'.mergeAppend (query old'Self) (Prelude'.Just new'Field)})+                    (P'.wireGet 11)+             24 -> Prelude'.fmap (\ !new'Field -> old'Self{token = Prelude'.Just new'Field}) (P'.wireGet 3)+             32 -> Prelude'.fmap (\ !new'Field -> old'Self{oBSOLETE_noreply = Prelude'.Just new'Field}) (P'.wireGet 8)+             50 -> Prelude'.fmap (\ !new'Field -> old'Self{global_optargs = P'.append (global_optargs old'Self) new'Field})+                    (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> Query) Query where+  getVal m' f' = f' m'+ +instance P'.GPB Query+ +instance P'.ReflectDescriptor Query where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [8, 18, 24, 32, 50])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Query\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Query\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Query.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Query.QueryType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Query\"], baseName = MName \"QueryType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.query\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"query\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.token\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"token\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 24}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.OBSOLETE_noreply\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"oBSOLETE_noreply\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 32}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Just \"false\", hsDefault = Just (HsDef'Bool False)},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.global_optargs\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\"], baseName' = FName \"global_optargs\"}, fieldNumber = FieldId {getFieldId = 6}, wireTag = WireTag {getWireTag = 50}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Query.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Query\"], baseName = MName \"AssocPair\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Query/AssocPair.hs view
@@ -0,0 +1,61 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Query.AssocPair (AssocPair(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Term as Ql2 (Term)+ +data AssocPair = AssocPair{key :: !(P'.Maybe P'.Utf8), val :: !(P'.Maybe Ql2.Term)}+               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable AssocPair where+  mergeAppend (AssocPair x'1 x'2) (AssocPair y'1 y'2) = AssocPair (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)+ +instance P'.Default AssocPair where+  defaultValue = AssocPair P'.defaultValue P'.defaultValue+ +instance P'.Wire AssocPair where+  wireSize ft' self'@(AssocPair x'1 x'2)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size = (P'.wireSizeOpt 1 9 x'1 + P'.wireSizeOpt 1 11 x'2)+  wirePut ft' self'@(AssocPair x'1 x'2)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 10 9 x'1+             P'.wirePutOpt 18 11 x'2+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             10 -> Prelude'.fmap (\ !new'Field -> old'Self{key = Prelude'.Just new'Field}) (P'.wireGet 9)+             18 -> Prelude'.fmap (\ !new'Field -> old'Self{val = P'.mergeAppend (val old'Self) (Prelude'.Just new'Field)})+                    (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> AssocPair) AssocPair where+  getVal m' f' = f' m'+ +instance P'.GPB AssocPair+ +instance P'.ReflectDescriptor AssocPair where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [10, 18])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Query.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Query\"], baseName = MName \"AssocPair\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Query\",\"AssocPair.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.AssocPair.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\",MName \"AssocPair\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Query.AssocPair.val\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Query\",MName \"AssocPair\"], baseName' = FName \"val\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Query/QueryType.hs view
@@ -0,0 +1,61 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Query.QueryType (QueryType(..)) where+import Prelude ((+), (/), (.))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data QueryType = START+               | CONTINUE+               | STOP+               deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable QueryType+ +instance Prelude'.Bounded QueryType where+  minBound = START+  maxBound = STOP+ +instance P'.Default QueryType where+  defaultValue = START+ +toMaybe'Enum :: Prelude'.Int -> P'.Maybe QueryType+toMaybe'Enum 1 = Prelude'.Just START+toMaybe'Enum 2 = Prelude'.Just CONTINUE+toMaybe'Enum 3 = Prelude'.Just STOP+toMaybe'Enum _ = Prelude'.Nothing+ +instance Prelude'.Enum QueryType where+  fromEnum START = 1+  fromEnum CONTINUE = 2+  fromEnum STOP = 3+  toEnum+   = P'.fromMaybe (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Protobuf.Ql2.Query.QueryType")+      . toMaybe'Enum+  succ START = CONTINUE+  succ CONTINUE = STOP+  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Protobuf.Ql2.Query.QueryType"+  pred CONTINUE = START+  pred STOP = CONTINUE+  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Protobuf.Ql2.Query.QueryType"+ +instance P'.Wire QueryType where+  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)+  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)+  wireGet 14 = P'.wireGetEnum toMaybe'Enum+  wireGet ft' = P'.wireGetErr ft'+  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum+  wireGetPacked ft' = P'.wireGetErr ft'+ +instance P'.GPB QueryType+ +instance P'.MessageAPI msg' (msg' -> QueryType) QueryType where+  getVal m' f' = f' m'+ +instance P'.ReflectEnum QueryType where+  reflectEnum = [(1, "START", START), (2, "CONTINUE", CONTINUE), (3, "STOP", STOP)]+  reflectEnumInfo _+   = P'.EnumInfo (P'.makePNF (P'.pack ".Ql2.Query.QueryType") ["Database", "RethinkDB", "Protobuf"] ["Ql2", "Query"] "QueryType")+      ["Database", "RethinkDB", "Protobuf", "Ql2", "Query", "QueryType.hs"]+      [(1, "START"), (2, "CONTINUE"), (3, "STOP")]
+ Database/RethinkDB/Protobuf/Ql2/Response.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Response (Response(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Backtrace as Ql2 (Backtrace)+import qualified Database.RethinkDB.Protobuf.Ql2.Datum as Ql2 (Datum)+import qualified Database.RethinkDB.Protobuf.Ql2.Response.ResponseType as Ql2.Response (ResponseType)+ +data Response = Response{type' :: !(P'.Maybe Ql2.Response.ResponseType), token :: !(P'.Maybe P'.Int64),+                         response :: !(P'.Seq Ql2.Datum), backtrace :: !(P'.Maybe Ql2.Backtrace)}+              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable Response where+  mergeAppend (Response x'1 x'2 x'3 x'4) (Response y'1 y'2 y'3 y'4)+   = Response (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)+ +instance P'.Default Response where+  defaultValue = Response P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue+ +instance P'.Wire Response where+  wireSize ft' self'@(Response x'1 x'2 x'3 x'4)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size = (P'.wireSizeOpt 1 14 x'1 + P'.wireSizeOpt 1 3 x'2 + P'.wireSizeRep 1 11 x'3 + P'.wireSizeOpt 1 11 x'4)+  wirePut ft' self'@(Response x'1 x'2 x'3 x'4)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 8 14 x'1+             P'.wirePutOpt 16 3 x'2+             P'.wirePutRep 26 11 x'3+             P'.wirePutOpt 34 11 x'4+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = Prelude'.Just new'Field}) (P'.wireGet 14)+             16 -> Prelude'.fmap (\ !new'Field -> old'Self{token = Prelude'.Just new'Field}) (P'.wireGet 3)+             26 -> Prelude'.fmap (\ !new'Field -> old'Self{response = P'.append (response old'Self) new'Field}) (P'.wireGet 11)+             34 -> Prelude'.fmap+                    (\ !new'Field -> old'Self{backtrace = P'.mergeAppend (backtrace old'Self) (Prelude'.Just new'Field)})+                    (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> Response) Response where+  getVal m' f' = f' m'+ +instance P'.GPB Response+ +instance P'.ReflectDescriptor Response where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [8, 16, 26, 34])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Response\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Response\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Response.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Response.ResponseType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Response\"], baseName = MName \"ResponseType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.token\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"token\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.response\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"response\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Response.backtrace\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Response\"], baseName' = FName \"backtrace\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Backtrace\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Backtrace\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Response/ResponseType.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Response.ResponseType (ResponseType(..)) where+import Prelude ((+), (/), (.))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data ResponseType = SUCCESS_ATOM+                  | SUCCESS_SEQUENCE+                  | SUCCESS_PARTIAL+                  | CLIENT_ERROR+                  | COMPILE_ERROR+                  | RUNTIME_ERROR+                  deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable ResponseType+ +instance Prelude'.Bounded ResponseType where+  minBound = SUCCESS_ATOM+  maxBound = RUNTIME_ERROR+ +instance P'.Default ResponseType where+  defaultValue = SUCCESS_ATOM+ +toMaybe'Enum :: Prelude'.Int -> P'.Maybe ResponseType+toMaybe'Enum 1 = Prelude'.Just SUCCESS_ATOM+toMaybe'Enum 2 = Prelude'.Just SUCCESS_SEQUENCE+toMaybe'Enum 3 = Prelude'.Just SUCCESS_PARTIAL+toMaybe'Enum 16 = Prelude'.Just CLIENT_ERROR+toMaybe'Enum 17 = Prelude'.Just COMPILE_ERROR+toMaybe'Enum 18 = Prelude'.Just RUNTIME_ERROR+toMaybe'Enum _ = Prelude'.Nothing+ +instance Prelude'.Enum ResponseType where+  fromEnum SUCCESS_ATOM = 1+  fromEnum SUCCESS_SEQUENCE = 2+  fromEnum SUCCESS_PARTIAL = 3+  fromEnum CLIENT_ERROR = 16+  fromEnum COMPILE_ERROR = 17+  fromEnum RUNTIME_ERROR = 18+  toEnum+   = P'.fromMaybe+      (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Protobuf.Ql2.Response.ResponseType")+      . toMaybe'Enum+  succ SUCCESS_ATOM = SUCCESS_SEQUENCE+  succ SUCCESS_SEQUENCE = SUCCESS_PARTIAL+  succ SUCCESS_PARTIAL = CLIENT_ERROR+  succ CLIENT_ERROR = COMPILE_ERROR+  succ COMPILE_ERROR = RUNTIME_ERROR+  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Protobuf.Ql2.Response.ResponseType"+  pred SUCCESS_SEQUENCE = SUCCESS_ATOM+  pred SUCCESS_PARTIAL = SUCCESS_SEQUENCE+  pred CLIENT_ERROR = SUCCESS_PARTIAL+  pred COMPILE_ERROR = CLIENT_ERROR+  pred RUNTIME_ERROR = COMPILE_ERROR+  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Protobuf.Ql2.Response.ResponseType"+ +instance P'.Wire ResponseType where+  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)+  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)+  wireGet 14 = P'.wireGetEnum toMaybe'Enum+  wireGet ft' = P'.wireGetErr ft'+  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum+  wireGetPacked ft' = P'.wireGetErr ft'+ +instance P'.GPB ResponseType+ +instance P'.MessageAPI msg' (msg' -> ResponseType) ResponseType where+  getVal m' f' = f' m'+ +instance P'.ReflectEnum ResponseType where+  reflectEnum+   = [(1, "SUCCESS_ATOM", SUCCESS_ATOM), (2, "SUCCESS_SEQUENCE", SUCCESS_SEQUENCE), (3, "SUCCESS_PARTIAL", SUCCESS_PARTIAL),+      (16, "CLIENT_ERROR", CLIENT_ERROR), (17, "COMPILE_ERROR", COMPILE_ERROR), (18, "RUNTIME_ERROR", RUNTIME_ERROR)]+  reflectEnumInfo _+   = P'.EnumInfo+      (P'.makePNF (P'.pack ".Ql2.Response.ResponseType") ["Database", "RethinkDB", "Protobuf"] ["Ql2", "Response"] "ResponseType")+      ["Database", "RethinkDB", "Protobuf", "Ql2", "Response", "ResponseType.hs"]+      [(1, "SUCCESS_ATOM"), (2, "SUCCESS_SEQUENCE"), (3, "SUCCESS_PARTIAL"), (16, "CLIENT_ERROR"), (17, "COMPILE_ERROR"),+       (18, "RUNTIME_ERROR")]
+ Database/RethinkDB/Protobuf/Ql2/Term.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Term (Term(..)) where+import Prelude ((+), (/), (==), (<=), (&&))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Datum as Ql2 (Datum)+import {-# SOURCE #-} qualified Database.RethinkDB.Protobuf.Ql2.Term.AssocPair as Ql2.Term (AssocPair)+import qualified Database.RethinkDB.Protobuf.Ql2.Term.TermType as Ql2.Term (TermType)+ +data Term = Term{type' :: !(P'.Maybe Ql2.Term.TermType), datum :: !(P'.Maybe Ql2.Datum), args :: !(P'.Seq Term),+                 optargs :: !(P'.Seq Ql2.Term.AssocPair), ext'field :: !P'.ExtField}+          deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.ExtendMessage Term where+  getExtField = ext'field+  putExtField e'f msg = msg{ext'field = e'f}+  validExtRanges msg = P'.extRanges (P'.reflectDescriptorInfo msg)+ +instance P'.Mergeable Term where+  mergeAppend (Term x'1 x'2 x'3 x'4 x'5) (Term y'1 y'2 y'3 y'4 y'5)+   = Term (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)+      (P'.mergeAppend x'5 y'5)+ +instance P'.Default Term where+  defaultValue = Term P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue+ +instance P'.Wire Term where+  wireSize ft' self'@(Term x'1 x'2 x'3 x'4 x'5)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size+         = (P'.wireSizeOpt 1 14 x'1 + P'.wireSizeOpt 1 11 x'2 + P'.wireSizeRep 1 11 x'3 + P'.wireSizeRep 1 11 x'4 ++             P'.wireSizeExtField x'5)+  wirePut ft' self'@(Term x'1 x'2 x'3 x'4 x'5)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 8 14 x'1+             P'.wirePutOpt 18 11 x'2+             P'.wirePutRep 26 11 x'3+             P'.wirePutRep 34 11 x'4+             P'.wirePutExtField x'5+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             8 -> Prelude'.fmap (\ !new'Field -> old'Self{type' = Prelude'.Just new'Field}) (P'.wireGet 14)+             18 -> Prelude'.fmap (\ !new'Field -> old'Self{datum = P'.mergeAppend (datum old'Self) (Prelude'.Just new'Field)})+                    (P'.wireGet 11)+             26 -> Prelude'.fmap (\ !new'Field -> old'Self{args = P'.append (args old'Self) new'Field}) (P'.wireGet 11)+             34 -> Prelude'.fmap (\ !new'Field -> old'Self{optargs = P'.append (optargs old'Self) new'Field}) (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in+                   if Prelude'.or [10000 <= field'Number && field'Number <= 18999, field'Number == 20000] then+                    P'.loadExtension field'Number wire'Type old'Self else P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> Term) Term where+  getVal m' f' = f' m'+ +instance P'.GPB Term+ +instance P'.ReflectDescriptor Term where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [8, 18, 26, 34])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Term.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.type\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"type'\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term.TermType\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Term\"], baseName = MName \"TermType\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.datum\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"datum\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Datum\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Datum\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.args\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"args\"}, fieldNumber = FieldId {getFieldId = 3}, wireTag = WireTag {getWireTag = 26}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.optargs\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\"], baseName' = FName \"optargs\"}, fieldNumber = FieldId {getFieldId = 4}, wireTag = WireTag {getWireTag = 34}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = True, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Term\"], baseName = MName \"AssocPair\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 10000},FieldId {getFieldId = 18999}),(FieldId {getFieldId = 20000},FieldId {getFieldId = 20000})], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Term/AssocPair.hs view
@@ -0,0 +1,61 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Term.AssocPair (AssocPair(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+import qualified Database.RethinkDB.Protobuf.Ql2.Term as Ql2 (Term)+ +data AssocPair = AssocPair{key :: !(P'.Maybe P'.Utf8), val :: !(P'.Maybe Ql2.Term)}+               deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable AssocPair where+  mergeAppend (AssocPair x'1 x'2) (AssocPair y'1 y'2) = AssocPair (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)+ +instance P'.Default AssocPair where+  defaultValue = AssocPair P'.defaultValue P'.defaultValue+ +instance P'.Wire AssocPair where+  wireSize ft' self'@(AssocPair x'1 x'2)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size = (P'.wireSizeOpt 1 9 x'1 + P'.wireSizeOpt 1 11 x'2)+  wirePut ft' self'@(AssocPair x'1 x'2)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             P'.wirePutOpt 10 9 x'1+             P'.wirePutOpt 18 11 x'2+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             10 -> Prelude'.fmap (\ !new'Field -> old'Self{key = Prelude'.Just new'Field}) (P'.wireGet 9)+             18 -> Prelude'.fmap (\ !new'Field -> old'Self{val = P'.mergeAppend (val old'Self) (Prelude'.Just new'Field)})+                    (P'.wireGet 11)+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> AssocPair) AssocPair where+  getVal m' f' = f' m'+ +instance P'.GPB AssocPair+ +instance P'.ReflectDescriptor AssocPair where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [10, 18])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.Term.AssocPair\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\",MName \"Term\"], baseName = MName \"AssocPair\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"Term\",\"AssocPair.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.AssocPair.key\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\",MName \"AssocPair\"], baseName' = FName \"key\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".Ql2.Term.AssocPair.val\", haskellPrefix' = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule' = [MName \"Ql2\",MName \"Term\",MName \"AssocPair\"], baseName' = FName \"val\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".Ql2.Term\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"Term\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/Term/AssocPair.hs-boot view
@@ -0,0 +1,30 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Term.AssocPair (AssocPair) where+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data AssocPair+ +instance P'.MessageAPI msg' (msg' -> AssocPair) AssocPair+ +instance Prelude'.Show AssocPair+ +instance Prelude'.Eq AssocPair+ +instance Prelude'.Ord AssocPair+ +instance Prelude'.Typeable AssocPair+ +instance Prelude'.Data AssocPair+ +instance P'.Mergeable AssocPair+ +instance P'.Default AssocPair+ +instance P'.Wire AssocPair+ +instance P'.GPB AssocPair+ +instance P'.ReflectDescriptor AssocPair
+ Database/RethinkDB/Protobuf/Ql2/Term/TermType.hs view
@@ -0,0 +1,744 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.Term.TermType (TermType(..)) where+import Prelude ((+), (/), (.))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data TermType = DATUM+              | MAKE_ARRAY+              | MAKE_OBJ+              | VAR+              | JAVASCRIPT+              | ERROR+              | IMPLICIT_VAR+              | DB+              | TABLE+              | GET+              | GET_ALL+              | EQ+              | NE+              | LT+              | LE+              | GT+              | GE+              | NOT+              | ADD+              | SUB+              | MUL+              | DIV+              | MOD+              | APPEND+              | PREPEND+              | DIFFERENCE+              | SET_INSERT+              | SET_INTERSECTION+              | SET_UNION+              | SET_DIFFERENCE+              | SLICE+              | SKIP+              | LIMIT+              | INDEXES_OF+              | CONTAINS+              | GET_FIELD+              | KEYS+              | HAS_FIELDS+              | WITH_FIELDS+              | PLUCK+              | WITHOUT+              | MERGE+              | BETWEEN+              | REDUCE+              | MAP+              | FILTER+              | CONCATMAP+              | ORDERBY+              | DISTINCT+              | COUNT+              | IS_EMPTY+              | UNION+              | NTH+              | GROUPED_MAP_REDUCE+              | GROUPBY+              | INNER_JOIN+              | OUTER_JOIN+              | EQ_JOIN+              | ZIP+              | INSERT_AT+              | DELETE_AT+              | CHANGE_AT+              | SPLICE_AT+              | COERCE_TO+              | TYPEOF+              | UPDATE+              | DELETE+              | REPLACE+              | INSERT+              | DB_CREATE+              | DB_DROP+              | DB_LIST+              | TABLE_CREATE+              | TABLE_DROP+              | TABLE_LIST+              | INDEX_CREATE+              | INDEX_DROP+              | INDEX_LIST+              | FUNCALL+              | BRANCH+              | ANY+              | ALL+              | FOREACH+              | FUNC+              | ASC+              | DESC+              | INFO+              | MATCH+              | SAMPLE+              | DEFAULT+              | JSON+              | ISO8601+              | TO_ISO8601+              | EPOCH_TIME+              | TO_EPOCH_TIME+              | NOW+              | IN_TIMEZONE+              | DURING+              | DATE+              | TIME_OF_DAY+              | TIMEZONE+              | YEAR+              | MONTH+              | DAY+              | DAY_OF_WEEK+              | DAY_OF_YEAR+              | HOURS+              | MINUTES+              | SECONDS+              | TIME+              | MONDAY+              | TUESDAY+              | WEDNESDAY+              | THURSDAY+              | FRIDAY+              | SATURDAY+              | SUNDAY+              | JANUARY+              | FEBRUARY+              | MARCH+              | APRIL+              | MAY+              | JUNE+              | JULY+              | AUGUST+              | SEPTEMBER+              | OCTOBER+              | NOVEMBER+              | DECEMBER+              | LITERAL+              deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable TermType+ +instance Prelude'.Bounded TermType where+  minBound = DATUM+  maxBound = LITERAL+ +instance P'.Default TermType where+  defaultValue = DATUM+ +toMaybe'Enum :: Prelude'.Int -> P'.Maybe TermType+toMaybe'Enum 1 = Prelude'.Just DATUM+toMaybe'Enum 2 = Prelude'.Just MAKE_ARRAY+toMaybe'Enum 3 = Prelude'.Just MAKE_OBJ+toMaybe'Enum 10 = Prelude'.Just VAR+toMaybe'Enum 11 = Prelude'.Just JAVASCRIPT+toMaybe'Enum 12 = Prelude'.Just ERROR+toMaybe'Enum 13 = Prelude'.Just IMPLICIT_VAR+toMaybe'Enum 14 = Prelude'.Just DB+toMaybe'Enum 15 = Prelude'.Just TABLE+toMaybe'Enum 16 = Prelude'.Just GET+toMaybe'Enum 78 = Prelude'.Just GET_ALL+toMaybe'Enum 17 = Prelude'.Just EQ+toMaybe'Enum 18 = Prelude'.Just NE+toMaybe'Enum 19 = Prelude'.Just LT+toMaybe'Enum 20 = Prelude'.Just LE+toMaybe'Enum 21 = Prelude'.Just GT+toMaybe'Enum 22 = Prelude'.Just GE+toMaybe'Enum 23 = Prelude'.Just NOT+toMaybe'Enum 24 = Prelude'.Just ADD+toMaybe'Enum 25 = Prelude'.Just SUB+toMaybe'Enum 26 = Prelude'.Just MUL+toMaybe'Enum 27 = Prelude'.Just DIV+toMaybe'Enum 28 = Prelude'.Just MOD+toMaybe'Enum 29 = Prelude'.Just APPEND+toMaybe'Enum 80 = Prelude'.Just PREPEND+toMaybe'Enum 95 = Prelude'.Just DIFFERENCE+toMaybe'Enum 88 = Prelude'.Just SET_INSERT+toMaybe'Enum 89 = Prelude'.Just SET_INTERSECTION+toMaybe'Enum 90 = Prelude'.Just SET_UNION+toMaybe'Enum 91 = Prelude'.Just SET_DIFFERENCE+toMaybe'Enum 30 = Prelude'.Just SLICE+toMaybe'Enum 70 = Prelude'.Just SKIP+toMaybe'Enum 71 = Prelude'.Just LIMIT+toMaybe'Enum 87 = Prelude'.Just INDEXES_OF+toMaybe'Enum 93 = Prelude'.Just CONTAINS+toMaybe'Enum 31 = Prelude'.Just GET_FIELD+toMaybe'Enum 94 = Prelude'.Just KEYS+toMaybe'Enum 32 = Prelude'.Just HAS_FIELDS+toMaybe'Enum 96 = Prelude'.Just WITH_FIELDS+toMaybe'Enum 33 = Prelude'.Just PLUCK+toMaybe'Enum 34 = Prelude'.Just WITHOUT+toMaybe'Enum 35 = Prelude'.Just MERGE+toMaybe'Enum 36 = Prelude'.Just BETWEEN+toMaybe'Enum 37 = Prelude'.Just REDUCE+toMaybe'Enum 38 = Prelude'.Just MAP+toMaybe'Enum 39 = Prelude'.Just FILTER+toMaybe'Enum 40 = Prelude'.Just CONCATMAP+toMaybe'Enum 41 = Prelude'.Just ORDERBY+toMaybe'Enum 42 = Prelude'.Just DISTINCT+toMaybe'Enum 43 = Prelude'.Just COUNT+toMaybe'Enum 86 = Prelude'.Just IS_EMPTY+toMaybe'Enum 44 = Prelude'.Just UNION+toMaybe'Enum 45 = Prelude'.Just NTH+toMaybe'Enum 46 = Prelude'.Just GROUPED_MAP_REDUCE+toMaybe'Enum 47 = Prelude'.Just GROUPBY+toMaybe'Enum 48 = Prelude'.Just INNER_JOIN+toMaybe'Enum 49 = Prelude'.Just OUTER_JOIN+toMaybe'Enum 50 = Prelude'.Just EQ_JOIN+toMaybe'Enum 72 = Prelude'.Just ZIP+toMaybe'Enum 82 = Prelude'.Just INSERT_AT+toMaybe'Enum 83 = Prelude'.Just DELETE_AT+toMaybe'Enum 84 = Prelude'.Just CHANGE_AT+toMaybe'Enum 85 = Prelude'.Just SPLICE_AT+toMaybe'Enum 51 = Prelude'.Just COERCE_TO+toMaybe'Enum 52 = Prelude'.Just TYPEOF+toMaybe'Enum 53 = Prelude'.Just UPDATE+toMaybe'Enum 54 = Prelude'.Just DELETE+toMaybe'Enum 55 = Prelude'.Just REPLACE+toMaybe'Enum 56 = Prelude'.Just INSERT+toMaybe'Enum 57 = Prelude'.Just DB_CREATE+toMaybe'Enum 58 = Prelude'.Just DB_DROP+toMaybe'Enum 59 = Prelude'.Just DB_LIST+toMaybe'Enum 60 = Prelude'.Just TABLE_CREATE+toMaybe'Enum 61 = Prelude'.Just TABLE_DROP+toMaybe'Enum 62 = Prelude'.Just TABLE_LIST+toMaybe'Enum 75 = Prelude'.Just INDEX_CREATE+toMaybe'Enum 76 = Prelude'.Just INDEX_DROP+toMaybe'Enum 77 = Prelude'.Just INDEX_LIST+toMaybe'Enum 64 = Prelude'.Just FUNCALL+toMaybe'Enum 65 = Prelude'.Just BRANCH+toMaybe'Enum 66 = Prelude'.Just ANY+toMaybe'Enum 67 = Prelude'.Just ALL+toMaybe'Enum 68 = Prelude'.Just FOREACH+toMaybe'Enum 69 = Prelude'.Just FUNC+toMaybe'Enum 73 = Prelude'.Just ASC+toMaybe'Enum 74 = Prelude'.Just DESC+toMaybe'Enum 79 = Prelude'.Just INFO+toMaybe'Enum 97 = Prelude'.Just MATCH+toMaybe'Enum 81 = Prelude'.Just SAMPLE+toMaybe'Enum 92 = Prelude'.Just DEFAULT+toMaybe'Enum 98 = Prelude'.Just JSON+toMaybe'Enum 99 = Prelude'.Just ISO8601+toMaybe'Enum 100 = Prelude'.Just TO_ISO8601+toMaybe'Enum 101 = Prelude'.Just EPOCH_TIME+toMaybe'Enum 102 = Prelude'.Just TO_EPOCH_TIME+toMaybe'Enum 103 = Prelude'.Just NOW+toMaybe'Enum 104 = Prelude'.Just IN_TIMEZONE+toMaybe'Enum 105 = Prelude'.Just DURING+toMaybe'Enum 106 = Prelude'.Just DATE+toMaybe'Enum 126 = Prelude'.Just TIME_OF_DAY+toMaybe'Enum 127 = Prelude'.Just TIMEZONE+toMaybe'Enum 128 = Prelude'.Just YEAR+toMaybe'Enum 129 = Prelude'.Just MONTH+toMaybe'Enum 130 = Prelude'.Just DAY+toMaybe'Enum 131 = Prelude'.Just DAY_OF_WEEK+toMaybe'Enum 132 = Prelude'.Just DAY_OF_YEAR+toMaybe'Enum 133 = Prelude'.Just HOURS+toMaybe'Enum 134 = Prelude'.Just MINUTES+toMaybe'Enum 135 = Prelude'.Just SECONDS+toMaybe'Enum 136 = Prelude'.Just TIME+toMaybe'Enum 107 = Prelude'.Just MONDAY+toMaybe'Enum 108 = Prelude'.Just TUESDAY+toMaybe'Enum 109 = Prelude'.Just WEDNESDAY+toMaybe'Enum 110 = Prelude'.Just THURSDAY+toMaybe'Enum 111 = Prelude'.Just FRIDAY+toMaybe'Enum 112 = Prelude'.Just SATURDAY+toMaybe'Enum 113 = Prelude'.Just SUNDAY+toMaybe'Enum 114 = Prelude'.Just JANUARY+toMaybe'Enum 115 = Prelude'.Just FEBRUARY+toMaybe'Enum 116 = Prelude'.Just MARCH+toMaybe'Enum 117 = Prelude'.Just APRIL+toMaybe'Enum 118 = Prelude'.Just MAY+toMaybe'Enum 119 = Prelude'.Just JUNE+toMaybe'Enum 120 = Prelude'.Just JULY+toMaybe'Enum 121 = Prelude'.Just AUGUST+toMaybe'Enum 122 = Prelude'.Just SEPTEMBER+toMaybe'Enum 123 = Prelude'.Just OCTOBER+toMaybe'Enum 124 = Prelude'.Just NOVEMBER+toMaybe'Enum 125 = Prelude'.Just DECEMBER+toMaybe'Enum 137 = Prelude'.Just LITERAL+toMaybe'Enum _ = Prelude'.Nothing+ +instance Prelude'.Enum TermType where+  fromEnum DATUM = 1+  fromEnum MAKE_ARRAY = 2+  fromEnum MAKE_OBJ = 3+  fromEnum VAR = 10+  fromEnum JAVASCRIPT = 11+  fromEnum ERROR = 12+  fromEnum IMPLICIT_VAR = 13+  fromEnum DB = 14+  fromEnum TABLE = 15+  fromEnum GET = 16+  fromEnum GET_ALL = 78+  fromEnum EQ = 17+  fromEnum NE = 18+  fromEnum LT = 19+  fromEnum LE = 20+  fromEnum GT = 21+  fromEnum GE = 22+  fromEnum NOT = 23+  fromEnum ADD = 24+  fromEnum SUB = 25+  fromEnum MUL = 26+  fromEnum DIV = 27+  fromEnum MOD = 28+  fromEnum APPEND = 29+  fromEnum PREPEND = 80+  fromEnum DIFFERENCE = 95+  fromEnum SET_INSERT = 88+  fromEnum SET_INTERSECTION = 89+  fromEnum SET_UNION = 90+  fromEnum SET_DIFFERENCE = 91+  fromEnum SLICE = 30+  fromEnum SKIP = 70+  fromEnum LIMIT = 71+  fromEnum INDEXES_OF = 87+  fromEnum CONTAINS = 93+  fromEnum GET_FIELD = 31+  fromEnum KEYS = 94+  fromEnum HAS_FIELDS = 32+  fromEnum WITH_FIELDS = 96+  fromEnum PLUCK = 33+  fromEnum WITHOUT = 34+  fromEnum MERGE = 35+  fromEnum BETWEEN = 36+  fromEnum REDUCE = 37+  fromEnum MAP = 38+  fromEnum FILTER = 39+  fromEnum CONCATMAP = 40+  fromEnum ORDERBY = 41+  fromEnum DISTINCT = 42+  fromEnum COUNT = 43+  fromEnum IS_EMPTY = 86+  fromEnum UNION = 44+  fromEnum NTH = 45+  fromEnum GROUPED_MAP_REDUCE = 46+  fromEnum GROUPBY = 47+  fromEnum INNER_JOIN = 48+  fromEnum OUTER_JOIN = 49+  fromEnum EQ_JOIN = 50+  fromEnum ZIP = 72+  fromEnum INSERT_AT = 82+  fromEnum DELETE_AT = 83+  fromEnum CHANGE_AT = 84+  fromEnum SPLICE_AT = 85+  fromEnum COERCE_TO = 51+  fromEnum TYPEOF = 52+  fromEnum UPDATE = 53+  fromEnum DELETE = 54+  fromEnum REPLACE = 55+  fromEnum INSERT = 56+  fromEnum DB_CREATE = 57+  fromEnum DB_DROP = 58+  fromEnum DB_LIST = 59+  fromEnum TABLE_CREATE = 60+  fromEnum TABLE_DROP = 61+  fromEnum TABLE_LIST = 62+  fromEnum INDEX_CREATE = 75+  fromEnum INDEX_DROP = 76+  fromEnum INDEX_LIST = 77+  fromEnum FUNCALL = 64+  fromEnum BRANCH = 65+  fromEnum ANY = 66+  fromEnum ALL = 67+  fromEnum FOREACH = 68+  fromEnum FUNC = 69+  fromEnum ASC = 73+  fromEnum DESC = 74+  fromEnum INFO = 79+  fromEnum MATCH = 97+  fromEnum SAMPLE = 81+  fromEnum DEFAULT = 92+  fromEnum JSON = 98+  fromEnum ISO8601 = 99+  fromEnum TO_ISO8601 = 100+  fromEnum EPOCH_TIME = 101+  fromEnum TO_EPOCH_TIME = 102+  fromEnum NOW = 103+  fromEnum IN_TIMEZONE = 104+  fromEnum DURING = 105+  fromEnum DATE = 106+  fromEnum TIME_OF_DAY = 126+  fromEnum TIMEZONE = 127+  fromEnum YEAR = 128+  fromEnum MONTH = 129+  fromEnum DAY = 130+  fromEnum DAY_OF_WEEK = 131+  fromEnum DAY_OF_YEAR = 132+  fromEnum HOURS = 133+  fromEnum MINUTES = 134+  fromEnum SECONDS = 135+  fromEnum TIME = 136+  fromEnum MONDAY = 107+  fromEnum TUESDAY = 108+  fromEnum WEDNESDAY = 109+  fromEnum THURSDAY = 110+  fromEnum FRIDAY = 111+  fromEnum SATURDAY = 112+  fromEnum SUNDAY = 113+  fromEnum JANUARY = 114+  fromEnum FEBRUARY = 115+  fromEnum MARCH = 116+  fromEnum APRIL = 117+  fromEnum MAY = 118+  fromEnum JUNE = 119+  fromEnum JULY = 120+  fromEnum AUGUST = 121+  fromEnum SEPTEMBER = 122+  fromEnum OCTOBER = 123+  fromEnum NOVEMBER = 124+  fromEnum DECEMBER = 125+  fromEnum LITERAL = 137+  toEnum+   = P'.fromMaybe (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Protobuf.Ql2.Term.TermType") .+      toMaybe'Enum+  succ DATUM = MAKE_ARRAY+  succ MAKE_ARRAY = MAKE_OBJ+  succ MAKE_OBJ = VAR+  succ VAR = JAVASCRIPT+  succ JAVASCRIPT = ERROR+  succ ERROR = IMPLICIT_VAR+  succ IMPLICIT_VAR = DB+  succ DB = TABLE+  succ TABLE = GET+  succ GET = GET_ALL+  succ GET_ALL = EQ+  succ EQ = NE+  succ NE = LT+  succ LT = LE+  succ LE = GT+  succ GT = GE+  succ GE = NOT+  succ NOT = ADD+  succ ADD = SUB+  succ SUB = MUL+  succ MUL = DIV+  succ DIV = MOD+  succ MOD = APPEND+  succ APPEND = PREPEND+  succ PREPEND = DIFFERENCE+  succ DIFFERENCE = SET_INSERT+  succ SET_INSERT = SET_INTERSECTION+  succ SET_INTERSECTION = SET_UNION+  succ SET_UNION = SET_DIFFERENCE+  succ SET_DIFFERENCE = SLICE+  succ SLICE = SKIP+  succ SKIP = LIMIT+  succ LIMIT = INDEXES_OF+  succ INDEXES_OF = CONTAINS+  succ CONTAINS = GET_FIELD+  succ GET_FIELD = KEYS+  succ KEYS = HAS_FIELDS+  succ HAS_FIELDS = WITH_FIELDS+  succ WITH_FIELDS = PLUCK+  succ PLUCK = WITHOUT+  succ WITHOUT = MERGE+  succ MERGE = BETWEEN+  succ BETWEEN = REDUCE+  succ REDUCE = MAP+  succ MAP = FILTER+  succ FILTER = CONCATMAP+  succ CONCATMAP = ORDERBY+  succ ORDERBY = DISTINCT+  succ DISTINCT = COUNT+  succ COUNT = IS_EMPTY+  succ IS_EMPTY = UNION+  succ UNION = NTH+  succ NTH = GROUPED_MAP_REDUCE+  succ GROUPED_MAP_REDUCE = GROUPBY+  succ GROUPBY = INNER_JOIN+  succ INNER_JOIN = OUTER_JOIN+  succ OUTER_JOIN = EQ_JOIN+  succ EQ_JOIN = ZIP+  succ ZIP = INSERT_AT+  succ INSERT_AT = DELETE_AT+  succ DELETE_AT = CHANGE_AT+  succ CHANGE_AT = SPLICE_AT+  succ SPLICE_AT = COERCE_TO+  succ COERCE_TO = TYPEOF+  succ TYPEOF = UPDATE+  succ UPDATE = DELETE+  succ DELETE = REPLACE+  succ REPLACE = INSERT+  succ INSERT = DB_CREATE+  succ DB_CREATE = DB_DROP+  succ DB_DROP = DB_LIST+  succ DB_LIST = TABLE_CREATE+  succ TABLE_CREATE = TABLE_DROP+  succ TABLE_DROP = TABLE_LIST+  succ TABLE_LIST = INDEX_CREATE+  succ INDEX_CREATE = INDEX_DROP+  succ INDEX_DROP = INDEX_LIST+  succ INDEX_LIST = FUNCALL+  succ FUNCALL = BRANCH+  succ BRANCH = ANY+  succ ANY = ALL+  succ ALL = FOREACH+  succ FOREACH = FUNC+  succ FUNC = ASC+  succ ASC = DESC+  succ DESC = INFO+  succ INFO = MATCH+  succ MATCH = SAMPLE+  succ SAMPLE = DEFAULT+  succ DEFAULT = JSON+  succ JSON = ISO8601+  succ ISO8601 = TO_ISO8601+  succ TO_ISO8601 = EPOCH_TIME+  succ EPOCH_TIME = TO_EPOCH_TIME+  succ TO_EPOCH_TIME = NOW+  succ NOW = IN_TIMEZONE+  succ IN_TIMEZONE = DURING+  succ DURING = DATE+  succ DATE = TIME_OF_DAY+  succ TIME_OF_DAY = TIMEZONE+  succ TIMEZONE = YEAR+  succ YEAR = MONTH+  succ MONTH = DAY+  succ DAY = DAY_OF_WEEK+  succ DAY_OF_WEEK = DAY_OF_YEAR+  succ DAY_OF_YEAR = HOURS+  succ HOURS = MINUTES+  succ MINUTES = SECONDS+  succ SECONDS = TIME+  succ TIME = MONDAY+  succ MONDAY = TUESDAY+  succ TUESDAY = WEDNESDAY+  succ WEDNESDAY = THURSDAY+  succ THURSDAY = FRIDAY+  succ FRIDAY = SATURDAY+  succ SATURDAY = SUNDAY+  succ SUNDAY = JANUARY+  succ JANUARY = FEBRUARY+  succ FEBRUARY = MARCH+  succ MARCH = APRIL+  succ APRIL = MAY+  succ MAY = JUNE+  succ JUNE = JULY+  succ JULY = AUGUST+  succ AUGUST = SEPTEMBER+  succ SEPTEMBER = OCTOBER+  succ OCTOBER = NOVEMBER+  succ NOVEMBER = DECEMBER+  succ DECEMBER = LITERAL+  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Protobuf.Ql2.Term.TermType"+  pred MAKE_ARRAY = DATUM+  pred MAKE_OBJ = MAKE_ARRAY+  pred VAR = MAKE_OBJ+  pred JAVASCRIPT = VAR+  pred ERROR = JAVASCRIPT+  pred IMPLICIT_VAR = ERROR+  pred DB = IMPLICIT_VAR+  pred TABLE = DB+  pred GET = TABLE+  pred GET_ALL = GET+  pred EQ = GET_ALL+  pred NE = EQ+  pred LT = NE+  pred LE = LT+  pred GT = LE+  pred GE = GT+  pred NOT = GE+  pred ADD = NOT+  pred SUB = ADD+  pred MUL = SUB+  pred DIV = MUL+  pred MOD = DIV+  pred APPEND = MOD+  pred PREPEND = APPEND+  pred DIFFERENCE = PREPEND+  pred SET_INSERT = DIFFERENCE+  pred SET_INTERSECTION = SET_INSERT+  pred SET_UNION = SET_INTERSECTION+  pred SET_DIFFERENCE = SET_UNION+  pred SLICE = SET_DIFFERENCE+  pred SKIP = SLICE+  pred LIMIT = SKIP+  pred INDEXES_OF = LIMIT+  pred CONTAINS = INDEXES_OF+  pred GET_FIELD = CONTAINS+  pred KEYS = GET_FIELD+  pred HAS_FIELDS = KEYS+  pred WITH_FIELDS = HAS_FIELDS+  pred PLUCK = WITH_FIELDS+  pred WITHOUT = PLUCK+  pred MERGE = WITHOUT+  pred BETWEEN = MERGE+  pred REDUCE = BETWEEN+  pred MAP = REDUCE+  pred FILTER = MAP+  pred CONCATMAP = FILTER+  pred ORDERBY = CONCATMAP+  pred DISTINCT = ORDERBY+  pred COUNT = DISTINCT+  pred IS_EMPTY = COUNT+  pred UNION = IS_EMPTY+  pred NTH = UNION+  pred GROUPED_MAP_REDUCE = NTH+  pred GROUPBY = GROUPED_MAP_REDUCE+  pred INNER_JOIN = GROUPBY+  pred OUTER_JOIN = INNER_JOIN+  pred EQ_JOIN = OUTER_JOIN+  pred ZIP = EQ_JOIN+  pred INSERT_AT = ZIP+  pred DELETE_AT = INSERT_AT+  pred CHANGE_AT = DELETE_AT+  pred SPLICE_AT = CHANGE_AT+  pred COERCE_TO = SPLICE_AT+  pred TYPEOF = COERCE_TO+  pred UPDATE = TYPEOF+  pred DELETE = UPDATE+  pred REPLACE = DELETE+  pred INSERT = REPLACE+  pred DB_CREATE = INSERT+  pred DB_DROP = DB_CREATE+  pred DB_LIST = DB_DROP+  pred TABLE_CREATE = DB_LIST+  pred TABLE_DROP = TABLE_CREATE+  pred TABLE_LIST = TABLE_DROP+  pred INDEX_CREATE = TABLE_LIST+  pred INDEX_DROP = INDEX_CREATE+  pred INDEX_LIST = INDEX_DROP+  pred FUNCALL = INDEX_LIST+  pred BRANCH = FUNCALL+  pred ANY = BRANCH+  pred ALL = ANY+  pred FOREACH = ALL+  pred FUNC = FOREACH+  pred ASC = FUNC+  pred DESC = ASC+  pred INFO = DESC+  pred MATCH = INFO+  pred SAMPLE = MATCH+  pred DEFAULT = SAMPLE+  pred JSON = DEFAULT+  pred ISO8601 = JSON+  pred TO_ISO8601 = ISO8601+  pred EPOCH_TIME = TO_ISO8601+  pred TO_EPOCH_TIME = EPOCH_TIME+  pred NOW = TO_EPOCH_TIME+  pred IN_TIMEZONE = NOW+  pred DURING = IN_TIMEZONE+  pred DATE = DURING+  pred TIME_OF_DAY = DATE+  pred TIMEZONE = TIME_OF_DAY+  pred YEAR = TIMEZONE+  pred MONTH = YEAR+  pred DAY = MONTH+  pred DAY_OF_WEEK = DAY+  pred DAY_OF_YEAR = DAY_OF_WEEK+  pred HOURS = DAY_OF_YEAR+  pred MINUTES = HOURS+  pred SECONDS = MINUTES+  pred TIME = SECONDS+  pred MONDAY = TIME+  pred TUESDAY = MONDAY+  pred WEDNESDAY = TUESDAY+  pred THURSDAY = WEDNESDAY+  pred FRIDAY = THURSDAY+  pred SATURDAY = FRIDAY+  pred SUNDAY = SATURDAY+  pred JANUARY = SUNDAY+  pred FEBRUARY = JANUARY+  pred MARCH = FEBRUARY+  pred APRIL = MARCH+  pred MAY = APRIL+  pred JUNE = MAY+  pred JULY = JUNE+  pred AUGUST = JULY+  pred SEPTEMBER = AUGUST+  pred OCTOBER = SEPTEMBER+  pred NOVEMBER = OCTOBER+  pred DECEMBER = NOVEMBER+  pred LITERAL = DECEMBER+  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Protobuf.Ql2.Term.TermType"+ +instance P'.Wire TermType where+  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)+  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)+  wireGet 14 = P'.wireGetEnum toMaybe'Enum+  wireGet ft' = P'.wireGetErr ft'+  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum+  wireGetPacked ft' = P'.wireGetErr ft'+ +instance P'.GPB TermType+ +instance P'.MessageAPI msg' (msg' -> TermType) TermType where+  getVal m' f' = f' m'+ +instance P'.ReflectEnum TermType where+  reflectEnum+   = [(1, "DATUM", DATUM), (2, "MAKE_ARRAY", MAKE_ARRAY), (3, "MAKE_OBJ", MAKE_OBJ), (10, "VAR", VAR),+      (11, "JAVASCRIPT", JAVASCRIPT), (12, "ERROR", ERROR), (13, "IMPLICIT_VAR", IMPLICIT_VAR), (14, "DB", DB),+      (15, "TABLE", TABLE), (16, "GET", GET), (78, "GET_ALL", GET_ALL), (17, "EQ", EQ), (18, "NE", NE), (19, "LT", LT),+      (20, "LE", LE), (21, "GT", GT), (22, "GE", GE), (23, "NOT", NOT), (24, "ADD", ADD), (25, "SUB", SUB), (26, "MUL", MUL),+      (27, "DIV", DIV), (28, "MOD", MOD), (29, "APPEND", APPEND), (80, "PREPEND", PREPEND), (95, "DIFFERENCE", DIFFERENCE),+      (88, "SET_INSERT", SET_INSERT), (89, "SET_INTERSECTION", SET_INTERSECTION), (90, "SET_UNION", SET_UNION),+      (91, "SET_DIFFERENCE", SET_DIFFERENCE), (30, "SLICE", SLICE), (70, "SKIP", SKIP), (71, "LIMIT", LIMIT),+      (87, "INDEXES_OF", INDEXES_OF), (93, "CONTAINS", CONTAINS), (31, "GET_FIELD", GET_FIELD), (94, "KEYS", KEYS),+      (32, "HAS_FIELDS", HAS_FIELDS), (96, "WITH_FIELDS", WITH_FIELDS), (33, "PLUCK", PLUCK), (34, "WITHOUT", WITHOUT),+      (35, "MERGE", MERGE), (36, "BETWEEN", BETWEEN), (37, "REDUCE", REDUCE), (38, "MAP", MAP), (39, "FILTER", FILTER),+      (40, "CONCATMAP", CONCATMAP), (41, "ORDERBY", ORDERBY), (42, "DISTINCT", DISTINCT), (43, "COUNT", COUNT),+      (86, "IS_EMPTY", IS_EMPTY), (44, "UNION", UNION), (45, "NTH", NTH), (46, "GROUPED_MAP_REDUCE", GROUPED_MAP_REDUCE),+      (47, "GROUPBY", GROUPBY), (48, "INNER_JOIN", INNER_JOIN), (49, "OUTER_JOIN", OUTER_JOIN), (50, "EQ_JOIN", EQ_JOIN),+      (72, "ZIP", ZIP), (82, "INSERT_AT", INSERT_AT), (83, "DELETE_AT", DELETE_AT), (84, "CHANGE_AT", CHANGE_AT),+      (85, "SPLICE_AT", SPLICE_AT), (51, "COERCE_TO", COERCE_TO), (52, "TYPEOF", TYPEOF), (53, "UPDATE", UPDATE),+      (54, "DELETE", DELETE), (55, "REPLACE", REPLACE), (56, "INSERT", INSERT), (57, "DB_CREATE", DB_CREATE),+      (58, "DB_DROP", DB_DROP), (59, "DB_LIST", DB_LIST), (60, "TABLE_CREATE", TABLE_CREATE), (61, "TABLE_DROP", TABLE_DROP),+      (62, "TABLE_LIST", TABLE_LIST), (75, "INDEX_CREATE", INDEX_CREATE), (76, "INDEX_DROP", INDEX_DROP),+      (77, "INDEX_LIST", INDEX_LIST), (64, "FUNCALL", FUNCALL), (65, "BRANCH", BRANCH), (66, "ANY", ANY), (67, "ALL", ALL),+      (68, "FOREACH", FOREACH), (69, "FUNC", FUNC), (73, "ASC", ASC), (74, "DESC", DESC), (79, "INFO", INFO), (97, "MATCH", MATCH),+      (81, "SAMPLE", SAMPLE), (92, "DEFAULT", DEFAULT), (98, "JSON", JSON), (99, "ISO8601", ISO8601),+      (100, "TO_ISO8601", TO_ISO8601), (101, "EPOCH_TIME", EPOCH_TIME), (102, "TO_EPOCH_TIME", TO_EPOCH_TIME), (103, "NOW", NOW),+      (104, "IN_TIMEZONE", IN_TIMEZONE), (105, "DURING", DURING), (106, "DATE", DATE), (126, "TIME_OF_DAY", TIME_OF_DAY),+      (127, "TIMEZONE", TIMEZONE), (128, "YEAR", YEAR), (129, "MONTH", MONTH), (130, "DAY", DAY), (131, "DAY_OF_WEEK", DAY_OF_WEEK),+      (132, "DAY_OF_YEAR", DAY_OF_YEAR), (133, "HOURS", HOURS), (134, "MINUTES", MINUTES), (135, "SECONDS", SECONDS),+      (136, "TIME", TIME), (107, "MONDAY", MONDAY), (108, "TUESDAY", TUESDAY), (109, "WEDNESDAY", WEDNESDAY),+      (110, "THURSDAY", THURSDAY), (111, "FRIDAY", FRIDAY), (112, "SATURDAY", SATURDAY), (113, "SUNDAY", SUNDAY),+      (114, "JANUARY", JANUARY), (115, "FEBRUARY", FEBRUARY), (116, "MARCH", MARCH), (117, "APRIL", APRIL), (118, "MAY", MAY),+      (119, "JUNE", JUNE), (120, "JULY", JULY), (121, "AUGUST", AUGUST), (122, "SEPTEMBER", SEPTEMBER), (123, "OCTOBER", OCTOBER),+      (124, "NOVEMBER", NOVEMBER), (125, "DECEMBER", DECEMBER), (137, "LITERAL", LITERAL)]+  reflectEnumInfo _+   = P'.EnumInfo (P'.makePNF (P'.pack ".Ql2.Term.TermType") ["Database", "RethinkDB", "Protobuf"] ["Ql2", "Term"] "TermType")+      ["Database", "RethinkDB", "Protobuf", "Ql2", "Term", "TermType.hs"]+      [(1, "DATUM"), (2, "MAKE_ARRAY"), (3, "MAKE_OBJ"), (10, "VAR"), (11, "JAVASCRIPT"), (12, "ERROR"), (13, "IMPLICIT_VAR"),+       (14, "DB"), (15, "TABLE"), (16, "GET"), (78, "GET_ALL"), (17, "EQ"), (18, "NE"), (19, "LT"), (20, "LE"), (21, "GT"),+       (22, "GE"), (23, "NOT"), (24, "ADD"), (25, "SUB"), (26, "MUL"), (27, "DIV"), (28, "MOD"), (29, "APPEND"), (80, "PREPEND"),+       (95, "DIFFERENCE"), (88, "SET_INSERT"), (89, "SET_INTERSECTION"), (90, "SET_UNION"), (91, "SET_DIFFERENCE"), (30, "SLICE"),+       (70, "SKIP"), (71, "LIMIT"), (87, "INDEXES_OF"), (93, "CONTAINS"), (31, "GET_FIELD"), (94, "KEYS"), (32, "HAS_FIELDS"),+       (96, "WITH_FIELDS"), (33, "PLUCK"), (34, "WITHOUT"), (35, "MERGE"), (36, "BETWEEN"), (37, "REDUCE"), (38, "MAP"),+       (39, "FILTER"), (40, "CONCATMAP"), (41, "ORDERBY"), (42, "DISTINCT"), (43, "COUNT"), (86, "IS_EMPTY"), (44, "UNION"),+       (45, "NTH"), (46, "GROUPED_MAP_REDUCE"), (47, "GROUPBY"), (48, "INNER_JOIN"), (49, "OUTER_JOIN"), (50, "EQ_JOIN"),+       (72, "ZIP"), (82, "INSERT_AT"), (83, "DELETE_AT"), (84, "CHANGE_AT"), (85, "SPLICE_AT"), (51, "COERCE_TO"), (52, "TYPEOF"),+       (53, "UPDATE"), (54, "DELETE"), (55, "REPLACE"), (56, "INSERT"), (57, "DB_CREATE"), (58, "DB_DROP"), (59, "DB_LIST"),+       (60, "TABLE_CREATE"), (61, "TABLE_DROP"), (62, "TABLE_LIST"), (75, "INDEX_CREATE"), (76, "INDEX_DROP"), (77, "INDEX_LIST"),+       (64, "FUNCALL"), (65, "BRANCH"), (66, "ANY"), (67, "ALL"), (68, "FOREACH"), (69, "FUNC"), (73, "ASC"), (74, "DESC"),+       (79, "INFO"), (97, "MATCH"), (81, "SAMPLE"), (92, "DEFAULT"), (98, "JSON"), (99, "ISO8601"), (100, "TO_ISO8601"),+       (101, "EPOCH_TIME"), (102, "TO_EPOCH_TIME"), (103, "NOW"), (104, "IN_TIMEZONE"), (105, "DURING"), (106, "DATE"),+       (126, "TIME_OF_DAY"), (127, "TIMEZONE"), (128, "YEAR"), (129, "MONTH"), (130, "DAY"), (131, "DAY_OF_WEEK"),+       (132, "DAY_OF_YEAR"), (133, "HOURS"), (134, "MINUTES"), (135, "SECONDS"), (136, "TIME"), (107, "MONDAY"), (108, "TUESDAY"),+       (109, "WEDNESDAY"), (110, "THURSDAY"), (111, "FRIDAY"), (112, "SATURDAY"), (113, "SUNDAY"), (114, "JANUARY"),+       (115, "FEBRUARY"), (116, "MARCH"), (117, "APRIL"), (118, "MAY"), (119, "JUNE"), (120, "JULY"), (121, "AUGUST"),+       (122, "SEPTEMBER"), (123, "OCTOBER"), (124, "NOVEMBER"), (125, "DECEMBER"), (137, "LITERAL")]
+ Database/RethinkDB/Protobuf/Ql2/VersionDummy.hs view
@@ -0,0 +1,56 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.VersionDummy (VersionDummy(..)) where+import Prelude ((+), (/))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data VersionDummy = VersionDummy{}+                  deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable VersionDummy where+  mergeAppend VersionDummy VersionDummy = VersionDummy+ +instance P'.Default VersionDummy where+  defaultValue = VersionDummy+ +instance P'.Wire VersionDummy where+  wireSize ft' self'@(VersionDummy)+   = case ft' of+       10 -> calc'Size+       11 -> P'.prependMessageSize calc'Size+       _ -> P'.wireSizeErr ft' self'+    where+        calc'Size = 0+  wirePut ft' self'@(VersionDummy)+   = case ft' of+       10 -> put'Fields+       11 -> do+               P'.putSize (P'.wireSize 10 self')+               put'Fields+       _ -> P'.wirePutErr ft' self'+    where+        put'Fields+         = do+             Prelude'.return ()+  wireGet ft'+   = case ft' of+       10 -> P'.getBareMessageWith update'Self+       11 -> P'.getMessageWith update'Self+       _ -> P'.wireGetErr ft'+    where+        update'Self wire'Tag old'Self+         = case wire'Tag of+             _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self+ +instance P'.MessageAPI msg' (msg' -> VersionDummy) VersionDummy where+  getVal m' f' = f' m'+ +instance P'.GPB VersionDummy+ +instance P'.ReflectDescriptor VersionDummy where+  getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [])+  reflectDescriptorInfo _+   = Prelude'.read+      "DescriptorInfo {descName = ProtoName {protobufName = FIName \".Ql2.VersionDummy\", haskellPrefix = [MName \"Database\",MName \"RethinkDB\",MName \"Protobuf\"], parentModule = [MName \"Ql2\"], baseName = MName \"VersionDummy\"}, descFilePath = [\"Database\",\"RethinkDB\",\"Protobuf\",\"Ql2\",\"VersionDummy.hs\"], isGroup = False, fields = fromList [], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"
+ Database/RethinkDB/Protobuf/Ql2/VersionDummy/Version.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}+module Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version (Version(..)) where+import Prelude ((+), (/), (.))+import qualified Prelude as Prelude'+import qualified Data.Typeable as Prelude'+import qualified Data.Data as Prelude'+import qualified Text.ProtocolBuffers.Header as P'+ +data Version = V0_1+             | V0_2+             deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)+ +instance P'.Mergeable Version+ +instance Prelude'.Bounded Version where+  minBound = V0_1+  maxBound = V0_2+ +instance P'.Default Version where+  defaultValue = V0_1+ +toMaybe'Enum :: Prelude'.Int -> P'.Maybe Version+toMaybe'Enum 1063369270 = Prelude'.Just V0_1+toMaybe'Enum 1915781601 = Prelude'.Just V0_2+toMaybe'Enum _ = Prelude'.Nothing+ +instance Prelude'.Enum Version where+  fromEnum V0_1 = 1063369270+  fromEnum V0_2 = 1915781601+  toEnum+   = P'.fromMaybe+      (Prelude'.error "hprotoc generated code: toEnum failure for type Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version")+      . toMaybe'Enum+  succ V0_1 = V0_2+  succ _ = Prelude'.error "hprotoc generated code: succ failure for type Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version"+  pred V0_2 = V0_1+  pred _ = Prelude'.error "hprotoc generated code: pred failure for type Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version"+ +instance P'.Wire Version where+  wireSize ft' enum = P'.wireSize ft' (Prelude'.fromEnum enum)+  wirePut ft' enum = P'.wirePut ft' (Prelude'.fromEnum enum)+  wireGet 14 = P'.wireGetEnum toMaybe'Enum+  wireGet ft' = P'.wireGetErr ft'+  wireGetPacked 14 = P'.wireGetPackedEnum toMaybe'Enum+  wireGetPacked ft' = P'.wireGetErr ft'+ +instance P'.GPB Version+ +instance P'.MessageAPI msg' (msg' -> Version) Version where+  getVal m' f' = f' m'+ +instance P'.ReflectEnum Version where+  reflectEnum = [(1063369270, "V0_1", V0_1), (1915781601, "V0_2", V0_2)]+  reflectEnumInfo _+   = P'.EnumInfo+      (P'.makePNF (P'.pack ".Ql2.VersionDummy.Version") ["Database", "RethinkDB", "Protobuf"] ["Ql2", "VersionDummy"] "Version")+      ["Database", "RethinkDB", "Protobuf", "Ql2", "VersionDummy", "Version.hs"]+      [(1063369270, "V0_1"), (1915781601, "V0_2")]
+ Database/RethinkDB/ReQL.hs view
@@ -0,0 +1,427 @@+{-# LANGUAGE ExistentialQuantification, RecordWildCards, ScopedTypeVariables,+             FlexibleInstances, OverloadedStrings, PatternGuards #-}++-- | Building RQL queries in Haskell+module Database.RethinkDB.ReQL (+  ReQL(..),+  op,+  BaseReQL(..),+  BaseAttribute(..),+  buildQuery,+  BaseArray,+  Backtrace, convertBacktrace,+  Expr(..),+  QuerySettings(..),+  newVarId,+  str,+  num,+  Attribute(..),+  cons,+  arr,+  baseArray,+  withQuerySettings,+  Object(..),+  Obj(..),+  returnVals,+  canReturnVals,+  reqlToProtobuf+  ) where++import qualified Data.Vector as V+import qualified Data.HashMap.Lazy as M+import Data.Maybe (fromMaybe, catMaybes)+import Data.String (IsString(..))+import Data.List (intersperse)+import qualified Data.Sequence as S+import Control.Monad.State (State, get, put, runState)+import Control.Applicative ((<$>))+import Data.Default (Default, def)+import qualified Data.Text as T+import qualified Data.Aeson as J+import Data.Foldable (toList)+import Data.Time+import Data.Time.Clock.POSIX+import Control.Monad.Fix++import Text.ProtocolBuffers hiding (Key, cons, Default)+import Text.ProtocolBuffers.Basic hiding (Default)++import Database.RethinkDB.Protobuf.Ql2.Term+import qualified Database.RethinkDB.Protobuf.Ql2.Term as Term+import Database.RethinkDB.Protobuf.Ql2.Term.TermType as TermType+import Database.RethinkDB.Protobuf.Ql2.Term.AssocPair+import qualified Database.RethinkDB.Protobuf.Ql2.Query as Query+import Database.RethinkDB.Protobuf.Ql2.Query.QueryType+import qualified Database.RethinkDB.Protobuf.Ql2.Datum as Datum+import qualified Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair as Datum+import Database.RethinkDB.Protobuf.Ql2.Datum+import qualified Database.RethinkDB.Protobuf.Ql2.Backtrace as QL+import qualified Database.RethinkDB.Protobuf.Ql2.Frame as QL+import Database.RethinkDB.Protobuf.Ql2.Datum.DatumType+import Database.RethinkDB.Protobuf.Ql2.Frame.FrameType as QL++import Database.RethinkDB.Objects as O++-- | An RQL term+data ReQL = ReQL { baseReQL :: State QuerySettings BaseReQL }++data BaseReQL = BaseReQL {+    termType :: TermType,+    termDatum :: Maybe Datum.Datum,+    termArgs :: BaseArray,+    termOptArgs :: [BaseAttribute] }++data QuerySettings = QuerySettings {+  queryToken :: Int64,+  queryDefaultDatabase :: Database,+  queryVarIndex :: Int,+  queryUseOutdated :: Maybe Bool,+  queryReturnVals :: Maybe Bool+  }++instance Default QuerySettings where+  def = QuerySettings 0 (Database "") 0 Nothing Nothing++withQuerySettings :: (QuerySettings -> ReQL) -> ReQL+withQuerySettings f = ReQL $ (baseReQL . f) =<< get++-- | Include the value of single write operations in the returned object+returnVals :: ReQL -> ReQL+returnVals (ReQL t) = ReQL $ do+  state <- get+  put state{ queryReturnVals = Just True }+  ret <- t+  state' <- get+  put state'{ queryReturnVals = queryReturnVals state }+  return ret++canReturnVals :: ReQL -> ReQL+canReturnVals (ReQL t) = ReQL $ t >>= \ret -> do+  qs <- get+  case queryReturnVals qs of+    Nothing -> return ret+    Just rv -> return ret{+      termOptArgs = BaseAttribute "return_vals" (baseBool rv) : termOptArgs ret }++baseBool :: Bool -> BaseReQL+baseBool b = BaseReQL DATUM (Just defaultValue{+                                Datum.type' = Just R_BOOL, r_bool = Just b }) [] []++newVarId :: State QuerySettings Int+newVarId = do+  QuerySettings {..} <- get+  let n = queryVarIndex + 1+  put QuerySettings {queryVarIndex = n, ..}+  return $ n++instance Show BaseReQL where+  show (BaseReQL DATUM (Just dat) _ _) = showD dat+  show (BaseReQL MAKE_ARRAY _ x []) = "[" ++ (concat $ intersperse ", " $ map show x) ++ "]"+  show (BaseReQL MAKE_OBJ _ [] x) = "{" ++ (concat $ intersperse ", " $ map show x) ++ "}"+  show (BaseReQL VAR _ [BaseReQL DATUM (Just d) [] []] []) | Just x <- toDouble d =+    "x" ++ show (round x)+  show (BaseReQL FUNC _ [BaseReQL DATUM (Just d) [] [], body] []) | Just vars <- toDoubles d =+    "(\\" ++ (concat $ intersperse " " $ map (("x"++) . show . round) $ vars)+    ++ " -> " ++ show body ++ ")"+  show (BaseReQL GET_FIELD _ [o, k] []) = show o ++ "!" ++ show k+  show (BaseReQL fun _ args optargs) =+    show fun ++ "(" +++    concat (intersperse ", " (map show args ++ map show optargs)) ++ ")"++showD :: Datum.Datum -> String+showD d = case Datum.type' d of+  Just R_NUM -> show' $ r_num d+  Just R_BOOL -> show' $ r_bool d+  Just R_STR -> show' $ r_str d+  Just R_ARRAY -> "[" ++ (concat $ intersperse ", " $ map showD $ toList $ r_array d) ++ "]"+  Just R_OBJECT ->+    "{" ++ (concat $ intersperse ", " $ map showDatumAttr $ toList $ r_object d) ++ "}"+  Just R_NULL -> "null"+  Nothing -> "Nothing"+  where show' Nothing = "Nothing"+        show' (Just a) = show a++showDatumAttr:: Datum.AssocPair -> String+showDatumAttr (Datum.AssocPair (Just k) (Just v)) = uToString k ++ ": " ++ showD v+showDatumAttr x = show x++-- | Convert other types into ReqL expressions+class Expr e where+  expr :: e -> ReQL++instance Expr ReQL where+  expr t = t++-- | A list of terms+data Array = Array { baseArray :: State QuerySettings BaseArray }++type BaseArray = [BaseReQL]++-- | Build arrays of exprs+class Arr a where+  arr :: a -> Array++cons :: Expr e => e -> Array -> Array+cons x xs = Array $ do+  bt <- baseReQL (expr x)+  xs' <- baseArray xs+  return $ bt : xs'++instance Arr () where+  arr () = Array $ return []++instance Expr a => Arr [a] where+  arr [] = Array $ return []+  arr (x:xs) = cons x (arr xs)++instance (Expr a, Expr b) => Arr (a, b) where+  arr (a,b) = cons a $ cons b $ arr ()++instance (Expr a, Expr b, Expr c) => Arr (a, b, c) where+  arr (a,b,c) = cons a $ cons b $ cons c $ arr ()++instance (Expr a, Expr b, Expr c, Expr d) => Arr (a, b, c, d) where+  arr (a,b,c,d) = cons a $ cons b $ cons c $ cons d $ arr ()++instance Arr Array where+  arr = id++-- | A list of key/value pairs+data Object = Object { baseObject :: State QuerySettings [BaseAttribute] }++-- | A key/value pair used for building objects+data Attribute = forall e . (Expr e) => T.Text := e++data BaseAttribute = BaseAttribute T.Text BaseReQL++mapBaseAttribute :: (BaseReQL -> BaseReQL) -> BaseAttribute -> BaseAttribute+mapBaseAttribute f (BaseAttribute k v) = BaseAttribute k (f v)++instance Show BaseAttribute where+  show (BaseAttribute a b) = T.unpack a ++ ": " ++ show b++-- | Convert into a ReQL object+class Obj o where+  obj :: o -> Object++instance Obj [Attribute] where+  obj = Object . mapM base+    where base (k := e) = BaseAttribute k <$> baseReQL (expr e)++instance Obj Object where+  obj = id++instance Obj () where+  obj _ = Object $ return []++-- | Build a term+op :: (Arr a, Obj o) => TermType -> a -> o -> ReQL+op t a b = ReQL $ do+  a' <- baseArray (arr a)+  b' <- baseObject (obj b)+  case (t, a') of+    (FUNCALL, (BaseReQL FUNC Nothing [argsFunDatum, fun] [] : argsCall)) |+      BaseReQL DATUM (Just argsFunArray) [] [] <- argsFunDatum,+      Just varsFun <- toDoubles argsFunArray,+      length varsFun == length argsCall,+      Just varsCall <- varsOf argsCall ->+        return $ alphaRename (zip varsFun varsCall) fun+    _ -> return $ BaseReQL t Nothing a' b'++toDoubles :: Datum.Datum -> Maybe [Double]+toDoubles Datum.Datum{+  Datum.type' = Just R_ARRAY,+  r_array = seq } =+  sequence . map toDouble . toList $ seq+toDoubles _ = Nothing++toDouble :: Datum.Datum -> Maybe Double+toDouble Datum.Datum{ type' = Just R_NUM, r_num = Just n } = Just n+toDouble _ = Nothing++varsOf :: [BaseReQL] -> Maybe [Double]+varsOf = sequence . map varOf+    +varOf :: BaseReQL -> Maybe Double+varOf (BaseReQL VAR Nothing [BaseReQL DATUM (Just d) [] []] []) = toDouble d+varOf _ = Nothing++datumNumberArray :: [Int] -> Datum.Datum+datumNumberArray a =+  defaultValue{+    Datum.type' = Just R_ARRAY,+    r_array = S.fromList $ map datumInt a }++datumInt :: Int -> Datum.Datum+datumInt n =+  defaultValue{+    Datum.type' = Just R_NUM,+    r_num = Just $ fromIntegral n }++alphaRename :: [(Double, Double)] -> BaseReQL -> BaseReQL+alphaRename assoc = fix $ \f x ->+  case varOf x of+    Just n+      | Just n' <- lookup n assoc ->+      BaseReQL VAR Nothing+      [BaseReQL DATUM+       (Just $ defaultValue{ Datum.type' = Just R_NUM, r_num = Just n' }) [] []] []+      | otherwise -> x+    _ -> updateChildren x f++updateChildren :: BaseReQL -> (BaseReQL -> BaseReQL) -> BaseReQL+updateChildren (BaseReQL t d a o) f = BaseReQL t d (map f a) (map (mapBaseAttribute f) o)++datumTerm :: DatumType -> Datum.Datum -> ReQL+datumTerm t d = ReQL $ return $ BaseReQL DATUM (Just d { Datum.type' = Just t }) [] []++-- | A shortcut for inserting strings into ReQL expressions+-- Useful when OverloadedStrings makes the type ambiguous+str :: String -> ReQL+str s = datumTerm R_STR defaultValue { r_str = Just (uFromString s) }++-- | A shortcut for inserting numbers into ReQL expressions+num :: Double -> ReQL+num = expr++instance Expr Int64 where+  expr i = datumTerm R_NUM defaultValue { r_num = Just (fromIntegral i) }++instance Expr Int where+  expr i = datumTerm R_NUM defaultValue { r_num = Just (fromIntegral i) }++instance Expr Integer where+  expr i = datumTerm R_NUM defaultValue { r_num = Just (fromIntegral i) }++instance Num ReQL where+  fromInteger x = datumTerm R_NUM defaultValue { r_num = Just (fromInteger x) }+  a + b = op ADD (a, b) ()+  a * b = op MUL (a, b) ()+  abs n = op BRANCH (op TermType.LT (n, 0 :: Double) (), negate n, n) ()+  signum n = op BRANCH (op TermType.LT (n, 0 :: Double) (),+                        -1 :: Double,+                        op BRANCH (op TermType.EQ (n, 0 :: Double) (), 0 :: Double, 1 :: Double) ()) ()++instance Expr T.Text where+  expr t = datumTerm R_STR defaultValue { r_str = Just (uFromString $ T.unpack t) }++instance Expr Bool where+  expr b = datumTerm R_BOOL defaultValue { r_bool = Just b }++instance Expr () where+  expr _ = datumTerm R_NULL defaultValue++instance IsString ReQL where+  fromString s = datumTerm R_STR defaultValue { r_str = Just (uFromString $ s) }++instance Expr (ReQL -> ReQL) where+  expr f = ReQL $ do+    v <- newVarId+    baseReQL $ op FUNC (datumNumberArray [v], f (op VAR [v] ())) ()++instance Expr (ReQL -> ReQL -> ReQL) where+  expr f = ReQL $ do+    a <- newVarId+    b <- newVarId+    baseReQL $ op FUNC (datumNumberArray [a, b], f (op VAR [a] ()) (op VAR [b] ())) ()++instance Expr Datum.Datum where+  expr d = ReQL $ return $ BaseReQL DATUM (Just d) [] []++instance Expr Table where+  expr (Table mdb name _) = withQuerySettings $ \QuerySettings {..} ->+    op TABLE (fromMaybe queryDefaultDatabase mdb, name) $ catMaybes [+      fmap ("use_outdated" :=) queryUseOutdated ]++instance Expr Database where+  expr (Database name) = op DB [name] ()++instance Expr J.Value where+  expr J.Null = expr ()+  expr (J.Bool b) = expr b+  expr (J.Number n) = expr (fromRational (toRational n) :: Double)+  expr (J.String t) = expr t+  expr (J.Array a) = expr a+  expr (J.Object o) = expr o++instance Expr Double where+  expr d = datumTerm R_NUM defaultValue { r_num = Just d }++instance Expr Rational where+  expr x = expr (fromRational x :: Double)++instance Expr x => Expr (V.Vector x) where+  expr v = expr (V.toList v)++instance Expr a => Expr [a] where+  expr a = expr $ arr a++instance Expr Array where+  expr a = op MAKE_ARRAY a ()++instance Expr e => Expr (M.HashMap T.Text e) where+  expr m = expr $ obj $ map (uncurry (:=)) $ M.toList m++instance Expr Object where+  expr o = op MAKE_OBJ () o++buildBaseReQL :: BaseReQL -> Term+buildBaseReQL BaseReQL {..} = defaultValue {+    Term.type' = Just termType,+    datum = termDatum,+    args = buildBaseArray termArgs,+    optargs = buildTermAssoc termOptArgs }++buildBaseArray :: BaseArray -> Seq Term+buildBaseArray [] = S.empty+buildBaseArray (x:xs) = buildBaseReQL x S.<| buildBaseArray xs++buildTermAssoc :: [BaseAttribute] -> Seq AssocPair+buildTermAssoc = S.fromList . map buildTermAttribute++buildTermAttribute :: BaseAttribute -> AssocPair+buildTermAttribute (BaseAttribute k v) = AssocPair (Just $ uFromString $ T.unpack k) (Just $ buildBaseReQL v)++buildQuery :: ReQL -> Int64 -> Database -> (Query.Query, BaseReQL)+buildQuery term token db = (defaultValue {+                              Query.type' = Just START,+                              Query.query = Just pterm },+                            bterm)+  where bterm =+         fst $ runState (baseReQL term) (def {queryToken = token,+                                              queryDefaultDatabase = db })+        pterm = buildBaseReQL bterm++instance Show ReQL where+  show t = show . snd $ buildQuery t 0 (Database "")++reqlToProtobuf :: ReQL -> Query.Query+reqlToProtobuf t = fst $ buildQuery t 0 (Database "")++type Backtrace = [Frame]++data Frame = FramePos Int64 | FrameOpt T.Text++instance Show Frame where+    show (FramePos n) = show n+    show (FrameOpt k) = show k++convertBacktrace :: QL.Backtrace -> Backtrace+convertBacktrace = concatMap convertFrame . toList . QL.frames+    where convertFrame QL.Frame { type' = Just QL.POS, pos = Just n } = [FramePos n]+          convertFrame QL.Frame { type' = Just QL.OPT, opt = Just k } = [FrameOpt (T.pack $ uToString k)]+          convertFrame _ = []++instance Expr UTCTime where+  expr t = op EPOCH_TIME [expr . toRational $ utcTimeToPOSIXSeconds t] ()++instance Expr ZonedTime where+  expr (ZonedTime+        (LocalTime+         date+         (TimeOfDay hour minute seconds))+        timezone) = let+    (year, month, day) = toGregorian date+    in  op TIME [+      expr year, expr month, expr day, expr hour, expr minute, expr (toRational seconds),+      str $ timeZoneOffsetString timezone] ()
+ Database/RethinkDB/Time.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE OverloadedStrings #-}++module Database.RethinkDB.Time where++import Data.Text (Text)+import qualified  Data.Time as Time+import qualified  Data.Time.Clock.POSIX as Time+import Data.Aeson as JSON+import Data.Aeson.Types (Parser)+import Control.Monad+import Control.Applicative++import Database.RethinkDB.ReQL++import Database.RethinkDB.Protobuf.Ql2.Term.TermType++-- | The time and date when the query is executed+now :: ReQL+now = op NOW () ()++-- | Build a time object from the year, month, day, hour, minute, second and timezone fields+time :: ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL -> ReQL+time y m d hh mm ss tz = op TIME [y, m, d, hh, mm, ss, tz] ()++-- | Build a time object given the number of seconds since the unix epoch+epochTime :: ReQL -> ReQL+epochTime t = op EPOCH_TIME [t] ()++-- | Build a time object given an iso8601 string+iso8601 :: ReQL -> ReQL+iso8601 t = op ISO8601 [t] ()++-- | The same time in a different timezone+inTimezone :: Expr time => ReQL -> time -> ReQL+inTimezone tz t = op IN_TIMEZONE (t, tz) ()++data Bound a =+  Open { boundValue ::  a } |+  Closed { boundValue :: a }++boundString :: Bound a -> Text+boundString Open{} = "open"+boundString Closed{} = "closed"++-- | Test if a time is between two other times+during :: (Expr left, Expr right, Expr time) => Bound left -> Bound right -> time -> ReQL+during l r t = op DURING (t, boundValue l, boundValue r) [+  "left_bound" := boundString l, "right_bound" := boundString r]++-- | Extract part of a time value+timezone, date, timeOfDay, year, month, day, dayOfWeek, dayOfYear, hours, minutes, seconds ::+  Expr time => time -> ReQL+timezone t = op TIMEZONE [t] ()+date  t = op DATE [t] ()+timeOfDay t = op TIME_OF_DAY [t] ()+year t = op YEAR [t] ()+month t = op MONTH [t] ()+day t = op DAY [t] ()+dayOfWeek t = op DAY_OF_WEEK [t] ()+dayOfYear t = op DAY_OF_YEAR [t] ()+hours t = op HOURS [t] ()+minutes t = op MINUTES [t] ()+seconds t = op SECONDS [t] ()++-- | Convert a time to another representation+toIso8601, toEpochTime :: Expr t => t -> ReQL+toIso8601 t = op TO_ISO8601 [t] ()+toEpochTime t = op TO_EPOCH_TIME [t] ()++-- | Time with no time zone+-- The default FromJSON instance for Data.Time.UTCTime is incompatible with ReQL's time type+newtype UTCTime = UTCTime Time.UTCTime++-- | Time with a time zone+-- The default FromJSON instance for Data.Time.ZonedTime is incompatible with ReQL's time type+newtype ZonedTime = ZonedTime Time.ZonedTime++instance FromJSON UTCTime where+  parseJSON (JSON.Object v) = UTCTime . Time.posixSecondsToUTCTime . fromRational <$> v .: "epoch_time"+  parseJSON _ = mzero++instance FromJSON ZonedTime where+  parseJSON (JSON.Object v) = do+                         tz <- v .: "timezone"+                         t <- v.: "epoch_time"+                         tz' <- parseTimeZone tz+                         return . ZonedTime $ Time.utcToZonedTime tz'+                           (Time.posixSecondsToUTCTime (fromRational t))+  parseJSON _ = mzero++parseTimeZone :: String -> Parser Time.TimeZone+parseTimeZone "Z" = return Time.utc+parseTimeZone tz = Time.minutesToTimeZone <$> case tz of +  ('-':tz') -> negate <$> go tz'+  _ -> go tz+  where+    go tz' = do+        (h, _:m) <- return $ break (==':') tz'+        ([(hh, "")], [(mm, "")]) <- return $ (reads h, reads m)+        return $ hh * 60 + mm++instance Expr UTCTime where+  expr (UTCTime t) = expr t++instance Expr ZonedTime where+  expr (ZonedTime t) = expr t
− Database/RethinkDB/Types.hs
@@ -1,20 +0,0 @@--- | Some seperate types to solve problems with recursive modules-module Database.RethinkDB.Types where---- | The type of a RQL expression--- --- The type hierarchy has 3 branches:--- --- - A read-only sequence: @StreamType False@--- --- - A selection (also called a view): @StreamType True@--- --- - A value (a JSON object, array or primitive type): @ExprType@--data ExprTypeKind =-    StreamType Bool ValueTypeKind -- ^ When the flag is true, it can be updated or deleted-  | ValueType ValueTypeKind---- | The types of values-data ValueTypeKind = NumberType | BoolType | ObjectType | ArrayType |-                     StringType | NoneType | OtherValueType
rethinkdb.cabal view
@@ -1,10 +1,9 @@ name:                rethinkdb-version:             0.1.0.0-synopsis:            RethinkDB client library for haskell-description:         This library is modelled upon the official RethinkDB API for-                     Python and Javascript.-homepage:            http://code.atnnn.com/projects/haskell-rethinkdb-license:             OtherLicense+version:             1.8.0.0+description:         RethinkDB is a distributed document store with a powerful query language.+synopsis:            RethinkDB driver for Haskell+homepage:            http://github.com/atnnn/haskell-rethinkdb+license:             Apache license-file:        LICENSE author:              Etienne Laurin maintainer:          Etienne Laurin <etienne@atnnn.com>@@ -12,58 +11,34 @@ build-type:          Simple cabal-version:       >=1.8 -source-repository head-  type: darcs-  location: http://code.atnnn.com/darcs/rethinkdb- library-  exposed-modules:     Database.RethinkDB,-                       Database.RethinkDB.Driver,-                       Database.RethinkDB.Functions,-                       Database.RethinkDB.Types-  other-modules:       Database.RethinkDB.Internal.Query_Language.Builtin,-                       Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType,-                       Database.RethinkDB.Internal.Query_Language.Builtin.Comparison,-                       Database.RethinkDB.Internal.Query_Language.Builtin.ConcatMap,-                       Database.RethinkDB.Internal.Query_Language.Builtin.Filter,-                       Database.RethinkDB.Internal.Query_Language.Builtin.GroupedMapReduce,-                       Database.RethinkDB.Internal.Query_Language.Builtin.Map,-                       Database.RethinkDB.Internal.Query_Language.Builtin.OrderBy,-                       Database.RethinkDB.Internal.Query_Language.Builtin.Range,-                       Database.RethinkDB.Internal.Query_Language.Mapping,-                       Database.RethinkDB.Internal.Query_Language.MetaQuery,-                       Database.RethinkDB.Internal.Query_Language.MetaQuery.CreateTable,-                       Database.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType,-                       Database.RethinkDB.Internal.Query_Language.Predicate,-                       Database.RethinkDB.Internal.Query_Language.Query,-                       Database.RethinkDB.Internal.Query_Language.Query.QueryType,-                       Database.RethinkDB.Internal.Query_Language.ReadQuery,-                       Database.RethinkDB.Internal.Query_Language.Reduction,-                       Database.RethinkDB.Internal.Query_Language.Response,-                       Database.RethinkDB.Internal.Query_Language.Response.Backtrace,-                       Database.RethinkDB.Internal.Query_Language.Response.StatusCode,-                       Database.RethinkDB.Internal.Query_Language.TableRef,-                       Database.RethinkDB.Internal.Query_Language.Term,-                       Database.RethinkDB.Internal.Query_Language.Term.Call,-                       Database.RethinkDB.Internal.Query_Language.Term.GetByKey,-                       Database.RethinkDB.Internal.Query_Language.Term.If,-                       Database.RethinkDB.Internal.Query_Language.Term.Let,-                       Database.RethinkDB.Internal.Query_Language.Term.Table,-                       Database.RethinkDB.Internal.Query_Language.Term.TermType,-                       Database.RethinkDB.Internal.Query_Language.VarTermTuple,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.Delete,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.ForEach,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.Insert,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.Mutate,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.PointDelete,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.PointMutate,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.PointUpdate,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.Update,-                       Database.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType,-                       Database.RethinkDB.Internal.Types-  build-depends:       base >= 4.6 && < 5,-                       protocol-buffers >= 2,+  exposed-modules:     Database.RethinkDB+                       Database.RethinkDB.Driver+                       Database.RethinkDB.Functions+                       Database.RethinkDB.Time+                       Database.RethinkDB.Objects+                       Database.RethinkDB.ReQL+                       Database.RethinkDB.Network+                       Database.RethinkDB.MapReduce+                       Database.RethinkDB.Protobuf.Ql2+                       Database.RethinkDB.Protobuf.Ql2.Backtrace+                       Database.RethinkDB.Protobuf.Ql2.Datum+                       Database.RethinkDB.Protobuf.Ql2.Datum.AssocPair+                       Database.RethinkDB.Protobuf.Ql2.Datum.DatumType+                       Database.RethinkDB.Protobuf.Ql2.Frame+                       Database.RethinkDB.Protobuf.Ql2.Frame.FrameType+                       Database.RethinkDB.Protobuf.Ql2.Query+                       Database.RethinkDB.Protobuf.Ql2.Query.AssocPair+                       Database.RethinkDB.Protobuf.Ql2.Query.QueryType+                       Database.RethinkDB.Protobuf.Ql2.Response+                       Database.RethinkDB.Protobuf.Ql2.Response.ResponseType+                       Database.RethinkDB.Protobuf.Ql2.Term+                       Database.RethinkDB.Protobuf.Ql2.Term.AssocPair+                       Database.RethinkDB.Protobuf.Ql2.Term.TermType+                       Database.RethinkDB.Protobuf.Ql2.VersionDummy+                       Database.RethinkDB.Protobuf.Ql2.VersionDummy.Version+  build-depends:       base >= 4 && < 5,+                       protocol-buffers,                        unordered-containers,                        text,                        aeson,@@ -72,5 +47,9 @@                        attoparsec,                        data-default,                        network,-                       ghc-prim >= 0.3,-                       mtl+                       ghc-prim,+                       mtl,+                       vector,+                       protocol-buffers-descriptor,+                       time,+                       utf8-string