úÎ<„9/     NoneM$J--------------------------------------------------------------------------Low-level HTTP interfaceÝThe functions here are used internally when sending requests to etcd. If the server is running, the result is 'Either Error Response'. These functions may throw an exception if the server is unreachable or not responding.The < corresponds to the node object as returned by the etcd API.×There are two types of nodes in etcd. One is a leaf node which holds a value, the other is a directory node which holds zero or more child nodes. A directory node can not hold a value, the two types are exclusive.gOn the wire, the two are not really distinguished, except that the JSON objects have different fields.\A node may be set to expire after a number of seconds. This is indicated by the two fields ttl and  expiration.DThe key of the node. It always starts with a slash character (0x47).aA unique index, reflects the point in the etcd state machine at which the given key was created.Like /, but reflects when the node was last changed. if this node is a directory.YThe value is only present on leaf nodes. If the node is a directory, then this field is .QIf this node is a directory, then these are its children. The list may be empty.UIf the node has TTL set, this is the number of seconds how long the node will exist. 5If TTL is set, then this is the time when it expires. aTTL is specified in seconds. The server accepts negative values, but they don't make much sense. ‡Values attached to leaf nodes are strings. If you want to store structured data in the values, you'll need to encode it into a string. aKeys are strings, formatted like filesystem paths (ie. slash-delimited list of path components). ‰The etcd index is a unique, monotonically-incrementing integer created for each change to etcd. See etcd documentation for more details.?The server sometimes responds to errors with this error object.@The server responds with this object to all successful requests. _Each response comes with an "action" field, which describes what kind of action was performed.The O holds all data required to make requests to the etcd cluster. You should use  to initialize a new client.!=The URL to the leader. HTTP requests are sent to this server."@The version prefix used in URLs. The current client supports v2.#The URL to the given key.$ˆIssue a DELETE request to the given url. Since DELETE requests don't have a body, the params are appended to the URL as a query string.%YRun a low-level HTTP request. Catch any exceptions and convert them into a 'Left Error'.&)Encode an optional TTL into a param pair.`Create a new client and initialize it with a list of seed machines. The list must be non-empty.Get the node at the given key.Set the value at the given key.=Create a value in the given key. The key must be a directory..Wait for changes on the node at the given key.Same as  but at a given index.Same as " but includes changes on children.Same as " but includes changes on children.$Create a directory at the given key.*List all nodes within the given directory.˜Remove the directory at the given key. The directory MUST be empty, otherwise the removal fails. If you don't care about the keys within, you can use .BRemove the directory at the given key, including all its children.? '()*+ ,-./0123!"#4567$%8&9:;<=>?@  (  '()*+ 210/.-,3!"#4567$%8&9:;<=>?@A      !"#$%&'()*+#$,-./0123456789:;<=>?@ABC etcd-1.0.4 Network.EtcdNode_nodeKey_nodeCreatedIndex_nodeModifiedIndex_nodeDir _nodeValue _nodeNodes_nodeTTL_nodeExpirationTTLValueKeyIndexClient createClientgetsetcreatewait waitIndex waitRecursivewaitIndexRecursivecreateDirectorylistDirectoryContentsremoveDirectoryremoveDirectoryRecursiveHRghc-prim GHC.TypesTruebase Data.MaybeNothingErrorResponseAction leaderUrl versionPrefixkeyUrl httpDELETE runRequestttlParam _resAction_resNode _resPrevNodeCADCASEXPIRECREATEDELETESETGETdecodeResponseBodyhttpGEThttpPUThttpPOST runRequest' waitParamwaitRecursiveParamwaitIndexParamdirParamrecursiveParam$fFromJSONNode$fFromJSONResponse$fFromJSONAction