anchor.diff:              {error, bad_arg}
       end.
   
  +-spec set(string(), iolist()) -> {ok, #{}} | {error, #{}}.
   set(Path, Value) ->
       letcd_keys:set(Path, Value).
   
  +-spec set(string(), iolist(), [set_opt()]) -> {ok, #{}} | {error, #{}}.
   set(Path, Value, Opts) ->
       case verify_opts(set, Opts) of
           true ->
  
positive.code: -export([get_config/0, set_config/3, list_machines/0, del_machine/1]).
  -export([leader/0, peers/0]).
  
  %% Management -----------------------------------------------------------------
  
  start() ->
      Deps = [crypto, asn1, public_key, ssl, lhttpc, lejson],
      [ application:start(A) || A <- Deps ],
      application:start(?MODULE).
  
  stop() ->
      application:stop(?MODULE).
  
  %% Keys -----------------------------------------------------------------------
  
  get(Path) ->
      letcd_keys:get(Path).
  
  get(Path, Opts) ->
      case verify_opts(get, Opts) of
          true ->
  
negative.code: 
  %% Stats ----------------------------------------------------------------------
  
  -spec stats_leader() -> {ok, #{}} | {error, #{}}.
  stats_leader() ->
      letcd_stats:leader().
  
  -spec stats_self() -> {ok, #{}} | {error, #{}}.
  stats_self() ->
      letcd_stats:self().
  
  -spec stats_store() -> {ok, #{}} | {error, #{}}.
  stats_store() ->
      letcd_stats:store().
  
  %% Admin ----------------------------------------------------------------------
  
  -spec get_config() -> {ok, #{}} | {error, #{}}.
  get_config() ->
      letcd_admin:get_config().
  
  -spec set_config(integer(), integer(), integer()) -> {ok, #{}} | {error, #{}}.
  set_config(ActiveSize, RemoveDelay, SyncInterval) ->
      letcd_admin:set_config(ActiveSize, RemoveDelay, SyncInterval).
  
  -spec list_machines() -> {ok, #{}} | {error, #{}}.
  list_machines() ->
      letcd_admin:list_machines().
  
  -spec del_machine(MachineId :: string()) -> {ok, <<>>} | {error, any()}.
  del_machine(MachineId) ->
      letcd_admin:del_machine(MachineId).
  
  -spec leader() -> {ok, string()} | {error, any()}.
  leader() ->
      letcd_lib:call(get, etcd_client_port, "/v2/leader", []).
  
  -spec peers() -> {ok, string()} | {error, any()}.
  peers() ->
      letcd_lib:call(get, etcd_client_port, "/v2/peers", []).
  
  