B      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@A-NoneBCDEFGHIJKLMNOPQRS BCDEFGHIJ BJIHGFEDCKLMNOPQRSNoneTUVWXYZ[\]^_`abcdefghijklmTUVWXYZ[\]^_`abcd Tdcba`_^]\[ZYXWVUefghijklmNonenopqrstuvwxyz{|}~nopqrstu nutsrqpovwxyz{|}~None None  None  None  None  None  None+" !None None       None       None  !"# !"#None $%&'()*+,-.$%&'($%&'()*+,-.None /0123456789/0123/0123456789None :;<=>?@ABCD:;<=>:;<=>?@ABCDNone EFGHIJKLMNOPEFGHIEFGHIJKLMNOPNone QRSTUVWXYQRSQRSTUVWXYNone Z[\]^_`abcdZ[\]^Z[\]^_`abcdNone efghijklmefgefghijklmNone nopqrstuvwnopqnopqrstuvwNone xyz{|}~xyzxyz{|}~None  None None None None None !None "None #None $None %None         &None    'None  !" !"(None#$%&'()*+,-./01234 #$%&'()*+,-.# $%&'()*+,-./01234)None 56789:;<=>?5678956789:;<=>?*None @ABCDEFGHIJKL@ABCDEF@ABCDEFGHIJKL+None MNOPQRSTUVWXYMNOPQRSMNOPQRSTUVWXY,NoneBCDEFGHIJ5TUVWXYZ[\]^_`abcdnopqrstu  $%'(/0:;<=>EFQRZ[\]^efnoxyz #$&'()*+,-.679@ADEFMNOQRS Safe-InferredThe types of values 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 3 A value (a JSON object, array or primitive type): ExprType 4When the flag is true, it can be updated or deleted     NoneO 1Can the Expr be written to? (updated or deleted) (Simple aliases for different Expr types An RQL expression ,Aliases for type constraints on expressions The result type of toValue $Convert something into a value Expr Convert something into an Expr #Convert objects into mappings '.A mapping is a like single-parameter function +A list of String/ Expr pairs -*A sequence is either a stream or an array /;What values can be compared with eq, ne, lt, gt, le and ge H"The type of the stream of an Expr I!The type of the value of an Expr [6Convert things like tables and documents into queries cA query returning a jA reference to a document nA table description p"when Nothing, use the rdbDatabase rwhen Nothing, id is used sOptions used to create a table wA database, referenced by name zThe raw response to a query $A connection to the database server The next token to use 5When 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. 5h <- openConnection "localhost" Nothing (Just "test")Set the default connection RThe new handle is an alias for the old one. Calling closeConnection on either one  will close both. let h' = h `use` (db "players")Close an open connection closeConnection hReceive a fixed amoutn of data Send a bytestring 4Get a request token and increment the token counter <Execute a raw protobuffer query and return the raw response Create a Database reference  Create a database on the server Drop a database !List the databases on the server run h $ dbList[test, dev, prod]id ICreate a simple table refence with no associated database or primary key  table "music"HAnother way to create table references is to use the Table constructor: 1Table (Just "mydatabase") "music" (Just "tuneid")Create a table on the server def# can be imported from Data.Default -t <- run h $ tableCreate (table "fruits") def Drop a table List the tables in a database /Get the primary key of the table as a Utf8, or id if there is none Get a document by primary key Insert a document into a table Ed <- run h $ insert t (object ["name" .= "banana", "color" .= "red"])#Insert many documents into a table @Insert a document into a table, overwriting a document with the # same primary key if one exists. HInsert many documents into a table, overwriting any existing documents  with the same primary key. Update a table .t <- run h $ tableCreate (table "example") defQrun h $ insertMany t [object ["a" .= 1, "b" .= 11], object ["a" .= 2, "b" .= 12]]%run h $ update t (object ["b" .= 20]) run h $ tReplace documents in a table *Delete one or more documents from a table Run a query on the connection =The return value depends on the type of the second argument. HWhen the return value is polymorphic, type annotations may be required. 0run h $ table "fruits" :: IO [(Document, Value)]ARun a query on the connection, returning (Left message) on error :Run a query on the connection, returning Nothing on error :Run a query on the connection and return the raw response BRun a query on the connection and return the resulting JSON value >Run a query on the connection and a return a lazy result list <res <- runBatch h <- (arrayToStream [1,2,3] :: NumberStream)next resJust 1 collect res[2,3]KRead the next value from a lazy query. Fetch it from the server if needed. (Return all the results of a lazy query. &Get the last error from a lazy query. 3If both next and resultsError return Nothing, then . all results have been fetched without error.  Build an Obj Convert a stream into an array Convert an array into a stream ,Convert a protobuf Mapping into a Predicate 'Convert a table to a raw protobuf term $Convert into a raw protobuf mapping Convert an Expr to a term Convert a stream to a term Convert a value to a term build a raw protobuf Term 9Test if a field is present in a json Value and return it /Helper function to handle responses to a query Dsame as whenSuccess, but ignore the response when there is no error  Like aeson'Ls decode, but but works on numbers and strings, not only objects and arrays 'Convert a JSON Value into another type ?Extract the error message from a Response if there is an error  | Help build meta queries &Convert an int to a 4-byte bytestring $Convert a 4-bte byestring to an int !Build a protobuf TableRef object   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~z~{|}wxystuvnopqrjklmcgdhief_`ab^[\]YZWXUVSTMNOPQRKL JIHGFCEDBA@?>=;< :9876543210/-.+,)*'(#$%& !" GFAB !"#$%&'()*+,-./0123456789:;<=>?@CEDHIJKLMNOPQRSTUVWXYZ[\]^_`abcgdhiefjklmnopqrstuvwxyz~{|}Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None A javascript function >let squareRoot = jsfun "Math.sqrt" :: NumberExpr -> NumberExpr!run h $ squareRoot 5 :: IO Double2.23606797749979<Get all the documents for which the given predicate is true <Get all the documents for which the given predicate is true EGet all documents between two primary keys (both keys are inclusive) #The empty list expression &A fold %run h $ reduce [1,2,3] (0 :: Int) (+)6*5Execute a write query for each element of the stream Mrun h $ forEach [1,2,3::Int] (\x -> insert (table "fruits") (obj ["n" := x]))5(Get the value of the field of an object FWhen GHC thinks the result is ambiguous, it may have to be annotated. Grun h $ (get (table "tea") "black" ! "water_temperature" :: NumberExpr)95<A javascript expression 2It is often necessary to specify the result type: "run h $ (js "1 + 2" :: NumberExpr)3e      !"#$%&'()*+,-./0123456789:;<=>?@Aa      !"#$%&'()*+,-./0123456789:;<=>?@Ab      "!#$%&'()*+,-./0123456789:;<=>?@A`      !"#$%&'()*+,-./0123456789:;<=>?@A-None #$%&'()*+-./0123456789:ABFGIMYZcjklmnopqrstuvwxy    !#%'()*,.023456789:;<=>?Awxynopqrstuvjklm,. !9:%' ()032467;58  =>?*A<+)*#cYZ IGFBA :9876541320/-.'(#$%&M./0123456789:;<=>?@ABCDEFGHIJKKLMNOPQRSTTUVWWXYZ[\]^_`abcdefghijklmnopq<rstuuvvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~jjj                            j                j                                           j              !"#$%&'(()*+,-./01233456789:;<==4>?@ABCDEFGHIJKLMTTN,OPQRSTUVWWXYZ[\]^^_`abcdefghhijklmnooN,pqrstuvvwxyz{|}~~ 0-FDD]_O      O       !!!!!!!!!"""""""""""##########$$$$4$>$$$$$$%%%%4%>%%%%%%%&&&&4&>&&&&&&&''''''''''(((((((((((((((((())))D)))))))****** * * * * ***+++++++++++++ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdrethinkdb-0.1.0.0Database.RethinkDB.TypesDatabase.RethinkDB.DriverDatabase.RethinkDB.FunctionsDDatabase.RethinkDB.Internal.Query_Language.WriteQuery.WriteQueryType8Database.RethinkDB.Internal.Query_Language.Term.TermType>Database.RethinkDB.Internal.Query_Language.Response.StatusCode=Database.RethinkDB.Internal.Query_Language.Response.Backtrace:Database.RethinkDB.Internal.Query_Language.Query.QueryType3Database.RethinkDB.Internal.Query_Language.TableRef5Database.RethinkDB.Internal.Query_Language.Term.TableBDatabase.RethinkDB.Internal.Query_Language.MetaQuery.MetaQueryType=Database.RethinkDB.Internal.Query_Language.Builtin.Comparison>Database.RethinkDB.Internal.Query_Language.Builtin.BuiltinType:Database.RethinkDB.Internal.Query_Language.Builtin.OrderBy@Database.RethinkDB.Internal.Query_Language.MetaQuery.CreateTable4Database.RethinkDB.Internal.Query_Language.MetaQuery4Database.RethinkDB.Internal.Query_Language.Reduction8Database.RethinkDB.Internal.Query_Language.Builtin.Range8Database.RethinkDB.Internal.Query_Language.Term.GetByKey2Database.RethinkDB.Internal.Query_Language.Term.If2Database.RethinkDB.Internal.Query_Language.Mapping>=<<=notnot'countlength++concatmapmap'filter'filterbetweenappend concatMap concatMap' innerJoin outerJoinasArrayeqJoindropdrop'skiptaketake'limitslicenth!!nilunionunion'foldreducedistinctgroupedMapReduceforEachzipzip'orderAscendingorderBygroupBygroupBy'sumsum'count'avg!pickunpick!?pluckwithoutmergejsbindlet'if'errorerror'WriteQueryType POINTMUTATE POINTDELETE POINTUPDATEFOREACHINSERTMUTATEDELETEUPDATE toMaybe'Enum$fReflectEnumWriteQueryType"$fMessageAPImsg'(->)WriteQueryType$fGPBWriteQueryType$fWireWriteQueryType$fEnumWriteQueryType$fDefaultWriteQueryType$fBoundedWriteQueryType$fMergeableWriteQueryTypeTermType IMPLICIT_VAR JAVASCRIPTTABLEGETBYKEYOBJECTARRAYBOOLJSONSTRINGNUMBERERRORIFCALLLETVAR JSON_NULL$fReflectEnumTermType$fMessageAPImsg'(->)TermType $fGPBTermType$fWireTermType$fEnumTermType$fDefaultTermType$fBoundedTermType$fMergeableTermType StatusCode RUNTIME_ERROR BAD_QUERY BROKEN_CLIENTSUCCESS_STREAMSUCCESS_PARTIAL SUCCESS_JSON SUCCESS_EMPTY$fReflectEnumStatusCode$fMessageAPImsg'(->)StatusCode$fGPBStatusCode$fWireStatusCode$fEnumStatusCode$fDefaultStatusCode$fBoundedStatusCode$fMergeableStatusCode Backtraceframe$fReflectDescriptorBacktrace$fGPBBacktrace$fMessageAPImsg'(->)Backtrace$fWireBacktrace$fDefaultBacktrace$fMergeableBacktrace QueryTypeMETASTOPCONTINUEWRITEREAD$fReflectEnumQueryType$fMessageAPImsg'(->)QueryType$fGPBQueryType$fWireQueryType$fEnumQueryType$fDefaultQueryType$fBoundedQueryType$fMergeableQueryTypeTableRefdb_name table_name use_outdated$fReflectDescriptorTableRef $fGPBTableRef$fMessageAPImsg'(->)TableRef$fWireTableRef$fDefaultTableRef$fMergeableTableRef table_ref$fReflectDescriptorTable $fGPBTable$fMessageAPImsg'(->)Table $fWireTable$fDefaultTable$fMergeableTable MetaQueryType LIST_TABLES DROP_TABLE CREATE_TABLELIST_DBSDROP_DB CREATE_DB$fReflectEnumMetaQueryType!$fMessageAPImsg'(->)MetaQueryType$fGPBMetaQueryType$fWireMetaQueryType$fEnumMetaQueryType$fDefaultMetaQueryType$fBoundedMetaQueryType$fMergeableMetaQueryType ComparisonGEGTLELTNEEQ$fReflectEnumComparison$fMessageAPImsg'(->)Comparison$fGPBComparison$fWireComparison$fEnumComparison$fDefaultComparison$fBoundedComparison$fMergeableComparison BuiltinTypeWITHOUTIMPLICIT_WITHOUTRANGEALLANYGROUPEDMAPREDUCEREDUCE ARRAYTOSTREAM STREAMTOARRAYNTHUNIONLENGTHDISTINCTORDERBY CONCATMAPMAPFILTERCOMPAREMODULODIVIDEMULTIPLYSUBTRACTADDSLICE ARRAYAPPENDMAPMERGEIMPLICIT_PICKATTRS PICKATTRSIMPLICIT_HASATTRHASATTRIMPLICIT_GETATTRGETATTRNOT$fReflectEnumBuiltinType$fMessageAPImsg'(->)BuiltinType$fGPBBuiltinType$fWireBuiltinType$fEnumBuiltinType$fDefaultBuiltinType$fBoundedBuiltinType$fMergeableBuiltinTypeOrderByattr ascending$fReflectDescriptorOrderBy $fGPBOrderBy$fMessageAPImsg'(->)OrderBy $fWireOrderBy$fDefaultOrderBy$fMergeableOrderBy CreateTable datacenter primary_key cache_size$fReflectDescriptorCreateTable$fGPBCreateTable$fMessageAPImsg'(->)CreateTable$fWireCreateTable$fDefaultCreateTable$fMergeableCreateTable MetaQuerytype' create_table drop_table$fReflectDescriptorMetaQuery$fGPBMetaQuery$fMessageAPImsg'(->)MetaQuery$fWireMetaQuery$fDefaultMetaQuery$fMergeableMetaQuery Reductionbasevar1var2body$fReflectDescriptorReduction$fGPBReduction$fMessageAPImsg'(->)Reduction$fWireReduction$fDefaultReduction$fMergeableReductionRangeattrname lowerbound upperbound$fReflectDescriptorRange $fGPBRange$fMessageAPImsg'(->)Range $fWireRange$fDefaultRange$fMergeableRangeGetByKeykey$fReflectDescriptorGetByKey $fGPBGetByKey$fMessageAPImsg'(->)GetByKey$fWireGetByKey$fDefaultGetByKey$fMergeableGetByKeytest true_branch false_branch$fReflectDescriptorIf$fGPBIf$fMessageAPImsg'(->)If$fWireIf $fDefaultIf $fMergeableIfarg ext'field$fReflectDescriptorMapping $fGPBMapping$fMessageAPImsg'(->)Mapping $fWireMapping$fDefaultMapping$fMergeableMapping$fExtendMessageMapping ConcatMap$fReflectDescriptorConcatMap$fGPBConcatMap$fMessageAPImsg'(->)ConcatMap$fWireConcatMap$fDefaultConcatMap$fMergeableConcatMapGroupedMapReduce group_mapping value_mapping reduction#$fReflectDescriptorGroupedMapReduce$fGPBGroupedMapReduce$$fMessageAPImsg'(->)GroupedMapReduce$fWireGroupedMapReduce$fDefaultGroupedMapReduce$fMergeableGroupedMapReduceMap$fReflectDescriptorMap$fGPBMap$fMessageAPImsg'(->)Map $fWireMap $fDefaultMap$fMergeableMap Predicate$fReflectDescriptorPredicate$fGPBPredicate$fMessageAPImsg'(->)Predicate$fWirePredicate$fDefaultPredicate$fMergeablePredicateFilter predicate$fReflectDescriptorFilter $fGPBFilter$fMessageAPImsg'(->)Filter $fWireFilter$fDefaultFilter$fMergeableFilterBuiltinattrs concat_maporder_bygrouped_map_reducerange$fReflectDescriptorBuiltin $fGPBBuiltin$fMessageAPImsg'(->)Builtin $fWireBuiltin$fDefaultBuiltin$fMergeableBuiltinCallbuiltinargs$fReflectDescriptorCall $fGPBCall$fMessageAPImsg'(->)Call $fWireCall $fDefaultCall$fMergeableCall VarTermTupleterm$fReflectDescriptorVarTermTuple$fGPBVarTermTuple $fMessageAPImsg'(->)VarTermTuple$fWireVarTermTuple$fDefaultVarTermTuple$fMergeableVarTermTupleLetbinds$fReflectDescriptorLet$fGPBLet$fMessageAPImsg'(->)Let $fWireLet $fDefaultLet$fMergeableLetTermcallif_number valuestring jsonstring valueboolarrayobject get_by_key javascript$fReflectDescriptorTerm $fGPBTerm$fMessageAPImsg'(->)Term $fWireTerm $fDefaultTerm$fMergeableTerm$fExtendMessageTerm ReadQuerymax_chunk_sizemax_age$fReflectDescriptorReadQuery$fGPBReadQuery$fMessageAPImsg'(->)ReadQuery$fWireReadQuery$fDefaultReadQuery$fMergeableReadQuery$fExtendMessageReadQueryDeleteview$fReflectDescriptorDelete $fGPBDelete$fMessageAPImsg'(->)Delete $fWireDelete$fDefaultDelete$fMergeableDeleteInsertterms overwrite$fReflectDescriptorInsert $fGPBInsert$fMessageAPImsg'(->)Insert $fWireInsert$fDefaultInsert$fMergeableInsertMutate$fReflectDescriptorMutate $fGPBMutate$fMessageAPImsg'(->)Mutate $fWireMutate$fDefaultMutate$fMergeableMutate PointDelete$fReflectDescriptorPointDelete$fGPBPointDelete$fMessageAPImsg'(->)PointDelete$fWirePointDelete$fDefaultPointDelete$fMergeablePointDelete PointMutate$fReflectDescriptorPointMutate$fGPBPointMutate$fMessageAPImsg'(->)PointMutate$fWirePointMutate$fDefaultPointMutate$fMergeablePointMutate PointUpdate$fReflectDescriptorPointUpdate$fGPBPointUpdate$fMessageAPImsg'(->)PointUpdate$fWirePointUpdate$fDefaultPointUpdate$fMergeablePointUpdateUpdate$fReflectDescriptorUpdate $fGPBUpdate$fMessageAPImsg'(->)Update $fWireUpdate$fDefaultUpdate$fMergeableUpdateatomicmutatefor_each point_update point_delete point_mutate$fReflectDescriptorWriteQuery$fGPBWriteQuery$fMessageAPImsg'(->)WriteQuery$fWireWriteQuery$fDefaultWriteQuery$fMergeableWriteQueryForEachqueries$fReflectDescriptorForEach $fGPBForEach$fMessageAPImsg'(->)ForEach $fWireForEach$fDefaultForEach$fMergeableForEachtoken read_query write_query meta_query$fReflectDescriptorQuery $fGPBQuery$fMessageAPImsg'(->)Query $fWireQuery$fDefaultQuery$fMergeableQuery status_coderesponse error_message backtrace$fReflectDescriptorResponse $fGPBResponse$fMessageAPImsg'(->)Response$fWireResponse$fDefaultResponse$fMergeableResponse$fDefaultQuerySettings$fToMappingExpr$fToMapping(->)$fToMappingValue$fToMappingObj$fSequenceValueType$fSequenceStreamType$fFractionalExpr $fNumExpr$fCanCompareStringType$fCanCompareNumberType $fToValueObj $fToExprObj $fToValue() $fToExpr() $fToStream[] $fToValue[] $fToExpr[] $fToValueText $fToExprText $fToExprChar$fToValueDouble$fToExprDouble$fToValueInteger$fToExprInteger $fToValueInt $fToExprInt$fToStreamExpr$fToStreamExpr0 $fToValueExpr$fToValueExpr0 $fToExprExpr$fToStreamTable$fToValueTable $fToExprTable$fToStreamDocument$fToValueDocument$fToExprDocument$fJSONQueryTrue$fJSONQueryFalse*$fExtractValueValueTypeKindOtherValueTypea%$fExtractValueValueTypeKindNoneType()&$fExtractValueValueTypeKindStringTypea%$fExtractValueValueTypeKindArrayTypea&$fExtractValueValueTypeKindObjectTypea'$fExtractValueValueTypeKindBoolTypeBool&$fExtractValueValueTypeKindNumberTypea$fToQueryExpra$fToBuildQueryExpr$fToQueryExpr[]$fToBuildQueryExpr0$fToQueryExpr[]0$fToBuildQueryExpr1$fToQueryDocumenta$fToBuildQueryDocument$fToQueryTable[]$fToBuildQueryTable$fToQueryWriteQuerya$fToBuildQueryWriteQuery$fToQueryQuerya$fToBuildQueryQuery$fFunctorWriteQuery$fFunctorQuery$fShowDocument $fShowTable$fDefaultTableCreateOptions$fShowDatabase$fShowResponse$fShowErrorCode$fCanConcatArrayType$fCanConcatStringType$fToOrderOrder $fToOrder[]