~m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  portable experimental#Nathan Hunter <nhunter@janrain.com>Noneportable experimental#Nathan Hunter <nhunter@janrain.com>Noneportable experimental#Nathan Hunter <nhunter@janrain.com>None>Durable write quorum. How many replicas to commit to durable 1 storage before returning a successful response. @Write quorum. How many replicas to write to before returning a  successful response. !@Read quorum. How many replicas need to agree when retrieving a  value. "Read/:write quorum. How many replicas need to collaborate when  deleting a value. #A read/:write quorum. The quantity of replicas that must respond E to a read or write request before it is considered successful. This ; is defined as a bucket property or as one of the relevant ! parameters to a single request (!, ,,"). $*Success after all servers have responded. %1Success after a quorum of servers has responded. &(Success after one server has responded. '0Use the default quorum settings for the bucket. (0A wrapper that keeps Riak vector clocks opaque. * Unwrap the #. (This is really only useful for " printing the raw vclock string.) ,9A message representing a response from server to client. -8A message representing a request from client to server. .Messages are tagged. 02An identifier for an inbound or outbound message. JA specification of a MapReduce  job.  $http://wiki.basho.com/MapReduce.html. M4An application-specific identifier for a link. See   http://wiki.basho.com/Links.html for details. NAKeys are unique object identifiers in Riak and are scoped within  buckets. O>A Bucket is a container and keyspace for data stored in Riak, A with a set of common properties for its contents (the number of  replicas, for instance). PThe main Riak exception type. TA connection to a Riak server. W%The configuration we connected with. X.Received data that has not yet been consumed. ["Name of the server to connect to. \-Port number to connect to (default is 8087). ]Client identifier. ^<A client identifier. This is used by the Riak cluster when E logging vector clock changes, and should be unique for each client. Q !"#$%&'()*+,-./Retrieve a message's tag. 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^  !"#'&%$()*+,-./0IHGFEDCBA@?>=<;:987654321JLKMNOP QRSQRSQRSTUVWXYZ[\]^portable experimental#Nathan Hunter <nhunter@janrain.com>None_Create a link. `An empty piece of content. aContent encoded as  application/ octet-stream. bContent encoded as  application/json. _`ab _`ab `ab__`abportable experimental#Nathan Hunter <nhunter@janrain.com>NonecBThe current debugging level. This is established once by reading  the  RIAK_DEBUG environment variable. dSet the  to log to ( is the default). e0Print a debug message, if debugging is enabled. fBPrint a debug message, and information about some values. If the = debug level is greater than 1, print the values themselves. gShow a .2 value. Show the entire value if the debug level % is above 1, just the tag otherwise. cdeFunction name. Debug message. fgcdefgcefdgcdefgportable experimental#Nathan Hunter <nhunter@janrain.com>Noneh A newtype wrapper that uses the  method of a type's  7 instance to perform vector clock conflict resolution. k>A type that can automatically resolve a vector clock conflict * between two or more versions of a value. >Instances must be symmetric in their behaviour, such that the  following law is obeyed:   resolve a b == resolve b a 9Otherwise, there are no restrictions on the behaviour of l.  The result may be a, b, a value derived from a and b, or  something else. +If several conflicting siblings are found, l will be : applied over all of them using a fold, to yield a single  "winner". l'Resolve a conflict between two values. m&Automated conflict resolution failed. n=Too many attempts were made to resolve a conflict, with each ( attempt resulting in another conflict. <The number of retries that the library will attempt is high A (64). This makes it extremely unlikely that this exception will ? be thrown during normal application operation. Instead, this ? exception is most likely to be thrown as a result of a bug in , your application code, for example if your l function  is misbehaving. :The maximum number of times to retry conflict resolution. hijklmnhijklmnhijklmnportable experimental#Nathan Hunter <nhunter@janrain.com>None4      !"#4      !"#portable experimental#Nathan Hunter <nhunter@janrain.com>None= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTWYZ[\]^C^YZ[\]TWPQRSQRSQRSONM()*JLK#'&%$"! -,+0IHGFEDCBA@?>=<;:987654321./portable experimental#Nathan Hunter <nhunter@janrain.com>Noneo;The class of string-like types that can be URL-escaped and  unescaped. pURL-escape a string. qURL-unescape a string. r?URL-unescape a string that is presumed to be properly escaped. B If the string is invalid, an error will be thrown that cannot be  caught from pure code. $%URL-escape a byte from a bytestring. % URL-unescape' a bytestring. opqr$%&'()*opqropqr opqr$%&'()*portable experimental#Nathan Hunter <nhunter@janrain.com>None sCreate a ping request. tCreate a client-ID request. uCreate a server-info request. vACreate a get request. The bucket and key names are URL-escaped. wACreate a put request. The bucket and key names are URL-escaped.  Any Link values inside the   are assumed to have been  constructed with the x function, and hence not escaped. x:Create a link. The bucket and key names are URL-escaped. yDCreate a delete request. The bucket and key names are URL-escaped. zCreate a list-buckets request. {=Create a list-keys request. The bucket name is URL-escaped. |>Create a get-bucket request. The bucket name is URL-escaped. }>Create a set-bucket request. The bucket name is URL-escaped. ~Create a map-reduce request. stuvwxyz{|}~stuvwxyz{|}~stuvwyxz{|}~ stuvwxyz{|}~ portable experimental#Nathan Hunter <nhunter@janrain.com>None=Construct a get response. Bucket and key names in links are  URL-unescaped. =Construct a put response. Bucket and key names in links are  URL-unescaped. @Construct a list-buckets response. Bucket names are unescaped. =URL-unescape the names of keys and buckets in the links of a    value. portable experimental#Nathan Hunter <nhunter@janrain.com>None >Default client configuration. Talks to localhost, port 8087, # with a randomly chosen client ID. Tell the server our client ID. Generate a random client ID. + Add a random ^ to a Y if the Y doesn't  already have one. Connect to a server. Disconnect from a server. ,9We use a larger receive buffer than we usually need, and 3 generally ask to receive more data than we know we'll need, in the  hope that we'6ll be able to buffer some of it and avoid future recv  system calls. 8Send a request to the server, and receive its response. BSend a request to the server, and receive its response (which may  be empty). ?Send a request to the server, and receive its response, but do  not decode it. ;Send a series of requests to the server, back to back, and < receive a response for each request sent. The sending and B receiving will be overlapped if possible, to improve concurrency  and reduce latency. ;Send a series of requests to the server, back to back, and @ receive a response for each request sent (the responses may be D empty). The sending and receiving will be overlapped if possible, , to improve concurrency and reduce latency. ;Send a series of requests to the server, back to back, and D receive (but do not decode) a response for each request sent. The B sending and receiving will be overlapped if possible, to improve ! concurrency and reduce latency. +,-./0123456789:;<=4567+,-./0123456789:;<= portable experimental#Nathan Hunter <nhunter@janrain.com>None portable experimental#Nathan Hunter <nhunter@janrain.com>Nonehijklmnklhijmn portable experimental#Nathan Hunter <nhunter@janrain.com>None<Store a single value. This may return multiple conflicting B siblings. Choosing among them, and storing a new value, is your  responsibility.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value  will not be stored. BStore many values. This may return multiple conflicting siblings @ for each value stored. Choosing among them, and storing a new - value in each case, is your responsibility.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value  will not be stored. :Store a single value, without the possibility of conflict  resolution.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value 3 will not be stored, and you will not be notified. 7Store many values, without the possibility of conflict  resolution.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value 3 will not be stored, and you will not be notified. BRetrieve a value. This may return multiple conflicting siblings. - Choosing among them is your responsibility. ?@ABCD ?@ABCD portable experimental#Nathan Hunter <nhunter@janrain.com>NoneBRetrieve a single value. If conflicting values are returned, the  k is used to choose a winner. BRetrieve multiple values. If conflicting values are returned for  a key, the k is used to choose a winner. >Modify a single value. The value, if any, is retrieved using  6; conflict resolution is performed if necessary. The A modification function is called on the resulting value, and its  result is stored using #, which may again perform conflict  resolution. 8The result of this function is whatever was returned by , = along with the auxiliary value returned by the modification  function. If the 3 phase of this function gives up due to apparently < being stuck in a conflict resolution loop, it will throw a  m exception. >Modify a single value. The value, if any, is retrieved using  6; conflict resolution is performed if necessary. The A modification function is called on the resulting value, and its  result is stored using #, which may again perform conflict  resolution. 8The result of this function is whatever was returned by . If the 3 phase of this function gives up due to apparently < being stuck in a conflict resolution loop, it will throw a  m exception. ?Store a single value, automatically resolving any vector clock A conflicts that arise. A single invocation of this function may @ involve several roundtrips to the server to resolve conflicts. 4If a conflict arises, a winner will be chosen using l, and D the winner will be stored; this will be repeated until no conflict A occurs or a (fairly large) number of retries has been attempted  without success. =If this function gives up due to apparently being stuck in a + conflict resolution loop, it will throw a m  exception. ?Store a single value, automatically resolving any vector clock A conflicts that arise. A single invocation of this function may @ involve several roundtrips to the server to resolve conflicts. 4If a conflict arises, a winner will be chosen using l, and D the winner will be stored; this will be repeated until no conflict A occurs or a (fairly large) number of retries has been attempted  without success. =If this function gives up due to apparently being stuck in a + conflict resolution loop, it will throw a m  exception. AStore multiple values, resolving any vector clock conflicts that B arise. A single invocation of this function may involve several 0 roundtrips to the server to resolve conflicts. CIf any conflicts arise, a winner will be chosen in each case using  l8, and the winners will be stored; this will be repeated ? until either no conflicts occur or a (fairly large) number of - retries has been attempted without success. ?For each original value to be stored, the final value that was ; stored at the end of any conflict resolution is returned. CIf this function gives up due to apparently being stuck in a loop,  it will throw a m exception. AStore multiple values, resolving any vector clock conflicts that B arise. A single invocation of this function may involve several 0 roundtrips to the server to resolve conflicts. CIf any conflicts arise, a winner will be chosen in each case using  l8, and the winners will be stored; this will be repeated ? until either no conflicts occur or a (fairly large) number of - retries has been attempted without success. CIf this function gives up due to apparently being stuck in a loop,  it will throw a m exception. $Modification function. Called with E the value if  the key is present, > otherwise. klmnklmn portable experimental#Nathan Hunter <nhunter@janrain.com>None Unwrap a -wrapped value. ?Wrap up a value so that it will be encoded and decoded as JSON  when converted to/from Content. BRetrieve a value. This may return multiple conflicting siblings. - Choosing among them is your responsibility. <Store a single value. This may return multiple conflicting B siblings. Choosing among them, and storing a new value, is your  responsibility.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value  will not be stored. :Store a single value, without the possibility of conflict  resolution.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value 3 will not be stored, and you will not be notified. BStore many values. This may return multiple conflicting siblings @ for each value stored. Choosing among them, and storing a new - value in each case, is your responsibility.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value  will not be stored. 7Store many values, without the possibility of conflict  resolution.  You should only supply > as a  if you are sure C that the given bucket+key combination does not already exist. If  you omit a  but the bucket+key does exist, your value 3 will not be stored, and you will not be notified. FGHI FGHIportable experimental#Nathan Hunter <nhunter@janrain.com>None>Retrieve a single value. If conflicting values are returned,  l is used to choose a winner. BRetrieve multiple values. If conflicting values are returned for  a key, l is used to choose a winner. >Modify a single value. The value, if any, is retrieved using  6; conflict resolution is performed if necessary. The A modification function is called on the resulting value, and its  result is stored using #, which may again perform conflict  resolution. 8The result of this function is whatever was returned by , = along with the auxiliary value returned by the modification  function. If the 3 phase of this function gives up due to apparently < being stuck in a conflict resolution loop, it will throw a  m exception. >Modify a single value. The value, if any, is retrieved using  6; conflict resolution is performed if necessary. The A modification function is called on the resulting value, and its  result is stored using #, which may again perform conflict  resolution. 8The result of this function is whatever was returned by . If the 3 phase of this function gives up due to apparently < being stuck in a conflict resolution loop, it will throw a  m exception. ?Store a single value, automatically resolving any vector clock A conflicts that arise. A single invocation of this function may @ involve several roundtrips to the server to resolve conflicts. 4If a conflict arises, a winner will be chosen using l, and D the winner will be stored; this will be repeated until no conflict A occurs or a (fairly large) number of retries has been attempted  without success. =If this function gives up due to apparently being stuck in a + conflict resolution loop, it will throw a m  exception. ?Store a single value, automatically resolving any vector clock A conflicts that arise. A single invocation of this function may @ involve several roundtrips to the server to resolve conflicts. 4If a conflict arises, a winner will be chosen using l, and D the winner will be stored; this will be repeated until no conflict A occurs or a (fairly large) number of retries has been attempted  without success. =If this function gives up due to apparently being stuck in a + conflict resolution loop, it will throw a m  exception. AStore multiple values, resolving any vector clock conflicts that B arise. A single invocation of this function may involve several 0 roundtrips to the server to resolve conflicts. CIf any conflicts arise, a winner will be chosen in each case using  l8, and the winners will be stored; this will be repeated ? until either no conflicts occur or a (fairly large) number of - retries has been attempted without success. ?For each original value to be stored, the final value that was ; stored at the end of any conflict resolution is returned. CIf this function gives up due to apparently being stuck in a loop,  it will throw a m exception. AStore multiple values, resolving any vector clock conflicts that B arise. A single invocation of this function may involve several 0 roundtrips to the server to resolve conflicts. CIf any conflicts arise, a winner will be chosen in each case using  l8, and the winners will be stored; this will be repeated ? until either no conflicts occur or a (fairly large) number of - retries has been attempted without success. CIf this function gives up due to apparently being stuck in a loop,  it will throw a m exception. $Modification function. Called with E the value if  the key is present, > otherwise. klmn klmnportable experimental#Nathan Hunter <nhunter@janrain.com>None 7Check to see if the connection to the server is alive. BFind out from the server what client ID this connection is using. 'Retrieve information about the server. BRetrieve a value. This may return multiple conflicting siblings. - Choosing among them is your responsibility. <Store a single value. This may return multiple conflicting B siblings. Choosing among them, and storing a new value, is your  responsibility.  You should only supply > as a ( if you are sure C that the given bucket+key combination does not already exist. If  you omit a ( but the bucket+key does exist, your value  will not be stored. :Store a single value, without the possibility of conflict  resolution.  You should only supply > as a ( if you are sure C that the given bucket+key combination does not already exist. If  you omit a ( but the bucket+key does exist, your value 3 will not be stored, and you will not be notified. Delete a value. %Retrieve the properties of a bucket. #Store new properties for a bucket. Run a J0 job. Its result is consumed via a strict left  fold. #$%&'TUVWXYZ[\]^ ^YZ[\]TUVWX#'&%$ portable experimental#Nathan Hunter <nhunter@janrain.com>None$#$%&'TUVWXYZ[\]^kl$^YZ[\]TUVWX#'&%$klportable experimental#Nathan Hunter <nhunter@janrain.com>None(A pool of connections to a Riak server.  This pool is "striped"(, i.e. it consists of several sub-pools ! that are managed independently. BThe total number of connections that can possibly be open at once  is  * . <Client specification. The client ID is ignored, and always 4 regenerated automatically for each new connection. Create a new connection pool. BStripe count. The number of distinct sub-pools to maintain. The ! smallest acceptable value is 1. AAmount of time for which an unused connection is kept open. The + smallest acceptable value is 0.5 seconds. <The elapsed time before closing may be a little longer than > requested, as the reaper thread wakes at 1-second intervals. <Maximum number of connections to keep open per stripe. The ! smallest acceptable value is 1. BRequests for connections will block if this limit is reached on a < single stripe, even if other stripes have idle connections  available. %Temporarily take a connection from a , perform an action 0 with it, and return it to the pool afterwards. 4 If the pool has a connection available, it is used  immediately. > Otherwise, if the maximum number of connections has not been 2 reached, a new connection is created and used. = If the maximum number of connections has been reached, this C function blocks until a connection becomes available, then that  connection is used. 3If the action throws an exception of any type, the T is * destroyed, and not returned to the pool. ;It probably goes without saying that you should never call  6 on a connection, as doing so will cause a subsequent F user (who expects the connection to be valid) to throw an exception. KL5Client configuration. The client ID is ignored, and ; always regenerated automatically for each new connection. 3Stripe count. The number of distinct sub-pools to 0 maintain. The smallest acceptable value is 1. 6Amount of time for which an unused connection is kept 6 open. The smallest acceptable value is 0.5 seconds. <The elapsed time before closing may be a little longer than > requested, as the reaper thread wakes at 2-second intervals. 7Maximum number of connections to keep open per stripe. % The smallest acceptable value is 1. =Requests for connections will block if this limit is reached 5 on a single stripe, even if other stripes have idle  connections available. MNKLMNO !"#$%&'(()*)+),)-)-./0123456789:;<=>?@ABCDEFGHGIJKLMNOPQR=ST1U;V9W/XY5Z7[\]3^?_`abcdefghijjklmnnopqrstuvwxyz{|}~s   b v       !"#$%&' ( ) * + , -&. / * 0 1234567 riak-0.7.0.2Network.Riak.RequestNetwork.Riak.ContentNetwork.Riak.FunctionsNetwork.Riak.TypesNetwork.Riak.BasicNetwork.Riak.DebugNetwork.Riak.ResolvableNetwork.Riak.EscapeNetwork.Riak.ResponseNetwork.Riak.ConnectionNetwork.Riak.ValueNetwork.Riak.Value.ResolvableNetwork.Riak.JSONNetwork.Riak.JSON.ResolvableNetwork.Riak.Connection.PoolNetwork.Riak.Connection.NoPushNetwork.Riak.Types.Internal Network.Riak.Resolvable.InternalNetwork.Riak.Tag Network.Riak.Connection.InternalTVClock Network.Riakriak-protobuf-0.16.0.1&Network.Riak.Protocol.SetBucketRequestSetBucketRequest Network.Riak.Protocol.PutRequest PutRequestNetwork.Riak.Protocol.Contentindexesusermetalast_mod_usecslast_modlinksvtagcontent_encodingcharset content_typevalueContentNetwork.Riak.Protocol.LinktagkeybucketLink#Network.Riak.Protocol.DeleteRequest DeleteRequest&Network.Riak.Protocol.GetBucketRequestGetBucketRequest(Network.Riak.Protocol.GetClientIDRequestGetClientIDRequest Network.Riak.Protocol.GetRequest GetRequest*Network.Riak.Protocol.GetServerInfoRequestGetServerInfoRequest(Network.Riak.Protocol.ListBucketsRequestListBucketsRequest%Network.Riak.Protocol.ListKeysRequestListKeysRequest&Network.Riak.Protocol.MapReduceRequestMapReduceRequest!Network.Riak.Protocol.PingRequest PingRequeststrictlazy mapEitherDWWRRWQuorumAllOneDefault fromVClockExchangeResponseRequestTagged messageTag MessageTagMapReduceResponseSetBucketResponseGetBucketResponseListKeysResponseListBucketsResponseDeleteResponse PutResponse GetResponseGetServerInfoResponseSetClientIDResponseSetClientIDRequestGetClientIDResponse PingResponse ErrorResponseJobErlangJSONTagKeyBucket RiakException excModule excFunction excMessage ConnectionconnSock connClient connBufferClienthostportclientIDClientIDlinkemptybinaryjsonlevel setHandledebug debugValuesshowMResolvableMonoidRMunRM ResolvableresolveResolutionFailureRetriesExceededEscapeescape unescape'unescapeping getClientID getServerInfogetputdelete listBucketslistKeys getBucket setBucket mapReduce unescapeLinks defaultClient setClientID makeClientIDconnect disconnectexchange exchangeMaybe exchange_pipeline pipelineMaybe pipeline_ IsContent parseContent toContent fromContentputManyput_putMany_getManymodifymodify_plainfoldKeysPoolclientcreate numStripesidleTimemaxConnectionswithConnection c_setsockoptnoPush setNoPushbytestring-0.10.0.2Data.ByteString.Lazy.Internal ByteStringexpectedResponseUnexpectedResponse TypeException NetExceptionshowRiakExceptionformatRiakExceptionnetError typeError unexError fromQuorumtoQuorum $fShowVClock$fTaggedEither$fTaggedMessageTag$fShowConnection$fExceptionRiakException$fShowRiakExceptionbaseGHC.IO.Handle.TypesHandleGHC.IO.Handle.FDstderrhandle Data.MonoidmappendMonoid maxRetriesPutGet resolveMany' resolveMany$fResolvableMaybe$fResolvableResolvableMonoid$fExceptionResolutionFailureputTaggetTag moduleError#$fExchangeMapReduceRequestMapReduce$fResponseMapReduce$fTaggedMapReduce$fRequestMapReduceRequest$fTaggedMapReduceRequest$fRequestSetBucketRequest$fTaggedSetBucketRequest+$fExchangeGetBucketRequestGetBucketResponse$fResponseGetBucketResponse$fTaggedGetBucketResponse$fRequestGetBucketRequest$fTaggedGetBucketRequest$fResponseListKeysResponse$fTaggedListKeysResponse$fRequestListKeysRequest$fTaggedListKeysRequest/$fExchangeListBucketsRequestListBucketsResponse$fResponseListBucketsResponse$fTaggedListBucketsResponse$fRequestListBucketsRequest$fTaggedListBucketsRequest$fRequestDeleteRequest$fTaggedDeleteRequest$fExchangePutRequestPutResponse$fResponsePutResponse$fTaggedPutResponse$fRequestPutRequest$fTaggedPutRequest$fExchangeGetRequestGetResponse$fResponseGetResponse$fTaggedGetResponse$fRequestGetRequest$fTaggedGetRequest($fExchangeGetServerInfoRequestServerInfo$fResponseServerInfo$fTaggedServerInfo$fRequestGetServerInfoRequest$fTaggedGetServerInfoRequest$fRequestSetClientIDRequest$fTaggedSetClientIDRequest/$fExchangeGetClientIDRequestGetClientIDResponse$fResponseGetClientIDResponse$fTaggedGetClientIDResponse$fRequestGetClientIDRequest$fTaggedGetClientIDRequest$fRequestPingRequest$fTaggedPingRequest$fResponseErrorResponse$fTaggedErrorResponse escapeWord8 unescapeBS $fEscape[] $fEscapeText $fEscapeText0$fEscapeByteString$fEscapeByteString0 addClientIDrecvBufferSize recvExactlyrecvGetrecvGetN putRequest throwError getResponsesendAll sendRequest recvResponse recvResponse_recvMaybeResponserecvCorrectTag debugRecvpipe onIOException$fExceptionErrorResponse Data.MaybeNothingputRespgetRespconvert$fIsContentValue $fIsContent()$fIsContentContentJustJ$fIsContentJSON $fFunctorJSONNetwork.Riak.Protocol.MapReduce MapReducepool$fEqPool $fShowPool