úÎ\ÅWNb      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a Safe-Infered IA typeclass to enable using any string-like type for row and column keys +A full row is simply a sequence of columns DA Column is either a single key-value pair or a SuperColumn with an % arbitrary number of key-value pairs 6Last update timestamp; will be overridden during write/ update ops 2A TTL after which Cassandra will erase the column #Order in a range query &A column selector/filter statement for queries. CRemember that SuperColumns are always fully deserialized, so we don't offer " a way to filter columns within a . '+Return a range of columns or super-columns (1When deleting specific columns in a super column ):Return specific columns or super-columns depending on the " *Return everything in  +6Encodes the Key vs. Token options in the thrift API. -0 ranges are just plain intuitive range queries.  ,; ranges are also inclusive, but they wrap around the ring. .A ! range selector to use with getMulti. /GA range of keys to get. Remember that RandomPartitioner ranges may not 3 mean much as keys are randomly assigned to nodes. 0Just a list of keys to get 4$A short-hand for creating key-value  values 9FCassandra is VERY sensitive to its timestamp values. As a convention, ' timestamps are always in microseconds 6  !"#$%&'()*+,-./0123456789bcdefg0  !"#$%&'()*+,-./01234567890.0/+-,1&*)('2#%$3"! 45678 9    !"#%$&*)('+-,.0/123456789bcdefg Safe-Infered@A (ServerName, Port) tuple A,A round-robin pool of cassandra connections B.A localhost server with default configuration C5A single localhost server with default configuration D=Create a pool of connections to a cluster of Cassandra boxes IEach box in the cluster will get up to n connections. The pool will send L queries in round-robin fashion to balance load on each box in the cluster. :;<=>?@ABCDList of servers to connect to Number of stripes to maintain Max connections per stripe -Kill each connection after this many seconds (Each pool operates on a single KeySpace :;<=>?@ABCD A@BC?:;<=>D :;<=>?@ABCD Safe-InferedE&Pack any integral value into LongType EEEENone I0All Cassy operations are designed to run inside I  context. We provide a default concrete F datatype, but you can simply 1 make your own application monads an instance of I 8 for conveniently using all operations of this package. <Please keep in mind that all Cassandra operations may raise   s at any point in time. KBMain running function when using the ad-hoc Cas monad. Just write # your cassandra actions within the F monad and supply them with  a A to execute. LGet a single key-column value. M(An arbitrary get operation - slice with & N Do multiple Ms in one DB hit O"Insert an entire row into the db. AThis will do as many round-trips as necessary to insert the full C row. Please keep in mind that each column and each column of each 0 super-column is sent to the server one by one. PHDelete an entire row, specific columns or a specific sub-set of columns  within a SuperColumn. Q:Wrap exceptions of the underlying thrift library into the  exception types defined here. RMake exceptions implicit. FGHIJKLRow key Column/SuperColumn name  Read quorum Min ColumnFamily Row key to get Slice columns with selector N(A selection of rows to fetch in one hit &Subject to column selector conditions A Map from Row keys to s is returned OPIn " Key to be deleted Columns to be deleted QRhF  !"#$%&'()*+,-./049?@ABCDEFGHIJKLMNOPQRFA@BC?DIJFGHKLMNOP&*)('#%$.0/+-, 9RQ"! 4 E FGHIJKLMNOPQRh Safe-InferedW)Possible outcomes of a modify operation [HA modify function that will fetch a specific column, apply modification 5 function on it and save results back to Cassandra. A b7 side value is returned for computational convenience. CThis is intended to be a workhorse function, in that you should be D able to do all kinds of relatively straightforward operations just  using this function. This method may throw a   for all exceptions other than  . \Same as [" but does not offer a side value. This method may throw a   for all exceptions other than  . ^(An arbitrary get operation - slice with &. @Internally based on Basic.get. Table is assumed to be a regular A ColumnFamily and contents of returned columns are cast into the  target type. _=Get a slice of columns from multiple rows at once. Note that E since we are auto-serializing from JSON, all the columns must be of  the same data type. `&Get a single column from a single row a Same as the a in the  module, except that A it throws an exception rather than returning an explicit Either  value. STUVWXYZ[ Read quorum  Write quorum #Modification function. Called with i the value if present,  j otherwise. Return the decided W and its execution outcome \ Read quorum  Write quorum #Modification function. Called with i the value if present,  j otherwise. ]Content ^_`aIn " Key to be deleted Columns to be deleted <  "&'()*+,-?@ABCDEFGHIJKSTUVWXYZ[\]^_`a<A@BC?DIJFGHK^`_][\aV WZYX" &*)('SUT+-, E SUTVWZYX[\]^_`ak              !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ9:;[\]^_`abUVTXcdefghijkljkmn cassy-0.3.2Database.Cassandra.BasicDatabase.Cassandra.PoolDatabase.Cassandra.TypesDatabase.Cassandra.PackDatabase.Cassandra.JSON CassandraBasiccassandra-thrift-0.8.5)Database.Cassandra.Thrift.Cassandra_TypesONEQUORUM LOCAL_QUORUM EACH_QUORUMALLANYTWOTHREEConsistencyLevelresource-pool-0.2.1.0 Data.Pool withResourceCKeytoBSfromBSCassandraExceptionOperationNotSupportedConversionExceptionSchemaDisagreementExceptionAuthorizationExceptionAuthenticationExceptionTimedOutExceptionUnavailableExceptionInvalidRequestExceptionNotFoundExceptionRowColumncolKeycolValcolTScolTTL SuperColumnValue ColumnNameKey ColumnFamilyOrderReversedRegularSelectorRangeSupNamesColNamesAll KeyRangeType WrapAroundInclusiveRange KeySelectorKeyRangeKeys mkKeyRange mkPredicate renderOrdcol mkThriftCol castColumncastCol castSuperColgetTimecHandlecFramedcProtoKeySpaceServerCPool defServer defServerscreateCassandraPoolpackLongCasunCasMonadCassandragetCassandraPoolrunCasgetColgetgetMultiinsertdelete wrapExceptionthrowingRowKeyModifyOperation DoNothingDeleteUpdatemodifymodify_ insertCol$fCKeyByteString$fCKeyByteString0 $fCKeyText $fCKeyText0$fCKey[]$fExceptionCassandraException$fMonadCassandraCasbase Data.MaybeJustNothing