v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ;Low-level representation of replies from the Redis server.         /Information for connnecting to a Redis server. !It is recommended to not use the  data constructor directly.  Instead use $' and update it with record syntax. For N example to connect to a password protected Redis server running on localhost $ and listening to the default port:   myConnectInfo :: ConnectInfo 8 myConnectInfo = defaultConnectInfo {connectAuth = Just "secret"} 0When the server is protected by a password, set  to  ? the password. Each connection will then authenticate by the &  command. DMaximum number of connections to keep open. The smallest acceptable  value is 1. @Amount of time for which an unused connection is kept open. The - smallest acceptable value is 0.5 seconds.  DA threadsafe pool of network connections to a Redis server. Use the  % function to create one. #The per-connection environment the ! monad can read from.  Create with . Modified by  and . Connection socket-handle. Reply thunks. Number of thunks in  envThunkChan. ThreadID of the evaluator thread. !All Redis commands run in the ! monad. "7Interact with a Redis datastore specified by the given  .  Each call of "% takes a network connection from the    pool and runs the given ! action. Calls to " may thus block 2 while all connections from the pool are in use. Internal version of " that does not depend on the   > abstraction. Used to run the AUTH command when connecting.  Create a new  #$$Default information for connecting:   connectHost = " localhost" @ connectPort = PortNumber 6379 -- Redis default port 9 connectAuth = Nothing -- No password B connectMaxConnections = 50 -- Up to 50 connections F connectMaxIdleTime = 30 -- Keep open for 30 seconds %Opens a  + to a Redis server designated by the given  .  Read all the 2s from the Handle and return them as a lazy list. 'The actual reading and parsing of each  is deferred until the spine & of the list is evaluated up to that . Each  is cons' d in front 6 of the (unevaluated) list of all remaining replies.  only evaluates it'%s result once, making this function  thread-safe. 6 as implemented by GHC is also threadsafe, it is safe  to call  here. The list constructor '(:)' must be called from  within; unsafeInterleaveIO, to keep the replies in correct order. & password  !"#$%& !"#$%&,'()*+,-./012345key 6key 7key 8key pivot value 9key pivot value :key ;cnt <=>key start stop ?key start stop @key start stop Akey start stop Bkey min max Ckey min max Dkey min max offset count Ekey min max offset count Fkey max min Gkey max min Hkey max min offset count Ikey max min offset count JKkey  destination Lkey key  destination M destination keys N destination weighted keys O destination keys P destination weighted keys cmd  destination keys weights ,'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP,'*)(()*+-,,-./01234/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXPost a message to a channel ( http://redis.io/commands/publish). channel message Y4Listen for messages published to the given channels  ( "http://redis.io/commands/subscribe). channel Z:Stop listening for messages posted to the given channels  ( $http://redis.io/commands/unsubscribe). channel [GListen for messages published to channels matching the given patterns  ( #http://redis.io/commands/psubscribe). pattern \LStop listening for messages posted to channels matching the given patterns  ( %http://redis.io/commands/punsubscribe). pattern ]6Listens to published messages on subscribed channels. BThe given callback function is called for each received message. 5 Subscription changes are triggered by the returned W . To keep 3 subscriptions unchanged, the callback can return . Example: Subscribe to the "news" channel indefinitely.    pubSub (subscribe ["news"]) $ \ msg -> do  putStrLn $ " Message from " ++ show (msgChannel msg)  return mempty +Example: Receive a single message from the "chat" channel.   pubSub (subscribe ["chat"]) $ \ msg -> do  putStrLn $ " Message from " ++ show (msgChannel msg)  return $ unsubscribe ["chat"] Initial subscriptions. Callback function. QRSTUVWXYZ[\] QTRUVSUVRSTUVWXYZ[\]i^_key field `key field  increment abkey ckey member dsource  destination timeout ekey  increment fkey gkey offset value hkey offset value ijmessage kkey timeout l destination key mkey db nokey start end pkey member qkey rkey offset skey min max tu keyValue vkey member wxkey  fieldValue ykey zkey  increment member {key | keyValue }source  destination ~key key seconds value  destination key key timeout key key key field key start stop key seconds key key  decrement key key  scoreMember pattern host port key key value key value key value key member key min max key key key value key key field value  parameter key key key key member key key newkey key index key field  destination key  parameter value key newkey key  timestamp key key count value key key key start stop key value key index value key field key source  destination member key value key start stop key member key value key index key member key key field value key value key key &'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP^_`abcdefghijklmnopqrstuvwxyz{|}~i^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!" %$&jtbm576./01234J+-,LK:_`~xkd89f}wa^i;<=yl{vpsz'*)(OP>?BCDE@AFGHIcMNroe|uhgnqX]QTRUVSUVWYZ[\#         !"#$%&'()*+,-./0123456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^\_`abcdefghijklmnopqrstuvwxyz{|}~-a hedis-0.3.2Database.RedisDatabase.Redis.RequestDatabase.Redis.ReplyDatabase.Redis.TypesDatabase.Redis.CoreDatabase.Redis.ManualCommandsDatabase.Redis.PubSubDatabase.Redis.Commandsnetwork-2.3.0.8NetworkService PortNumber UnixSocketPortIDNetwork.SocketHostNameReply MultiBulkBulkIntegerError SingleLineStatusQueuedZSetSetListHashStringNonePongOk RedisResultdecode ConnectInfoConnInfo connectHost connectPort connectAuthconnectMaxConnectionsconnectMaxIdleTimeConnectionLostExceptionConnectionLost ConnectionRedisrunRedis sendRequestdefaultConnectInfoconnectauth AggregateMaxMinSum SortOrderDescAscSortOptssortBy sortLimitsortGet sortOrder sortAlphaobjectRefcountobjectIdletimeobjectEncoding linsertBefore linsertAftergetType slowlogGet slowlogLen slowlogResetzrangezrangeWithscores zrevrangezrevrangeWithscores zrangebyscorezrangebyscoreWithscoreszrangebyscoreLimitzrangebyscoreWithscoresLimitzrevrangebyscorezrevrangebyscoreWithscoreszrevrangebyscoreLimitzrevrangebyscoreWithscoresLimitdefaultSortOpts sortStoresort zunionstorezunionstoreWeights zinterstorezinterstoreWeightsMessagePMessage msgPattern msgChannel msgMessagePubSubpublish subscribe unsubscribe psubscribe punsubscribepubSubflushallhdelhincrbyconfigResetstatdelzrevrank brpoplpushincrbyrpopsetrangesetbitsaveechoblpop sdiffstoremovemultigetrangesremwatchgetbitzcountquitmsetnx sismember bgrewriteaofhmsetscardzincrbysintermset rpoplpushhlensetex sunionstorebrpophgetalldbsizelpophmgetlrangeexpirelastsavellendecrbyexecmgetzaddkeysbgsaveslaveof debugObjectgetsetrpushxsetnxzrankzremrangebyscorettlhkeysrpush randomkeyspophsetnx configGethvalsexistssunionzremsmemberspingrenamedecrselecthexists sinterstoreshutdown configSetrenamenxexpireatgetlremincrzcardltrimappendlsetinfohgetsdiffsmoveflushdbsetzremrangebyranksaddlpushlindexzscorestrlenunwatchhsetlpushxdiscard debugSegfault srandmemberpersist renderRequest renderArgshowBScrlfreply singleLineerrorintegerbulk multiBulkRedisArgencodebase Data.MaybeJustConnRedisEnvnewEnvrecvsendEnv envHandle envReplies envThunkCnt envEvalTIdrunRedisInternal forceThunks hGetRepliesGHC.IOunsafeInterleaveIOGHC.IO.Handle.TypesHandle GHC.IO.HandlehFlush sortInternalzstoreInternal Data.Monoidmempty pubSubAction decodeMsgerrMsg