anchor.diff:  -export([get_config/0, set_config/3, list_machines/0, del_machine/1]).
   -export([leader/0, peers/0]).
   
  +%% Types ----------------------------------------------------------------------
  +
  +-type get_opt() :: recursive
  +                 | consistent
  +                 | sorted
  +                 | stream
  +                 | wait
  +                 | {waitIndex, integer()}.
  +-type set_opt() :: dir
  +                 | prevExist
  +                 | sequence
  +                 | {ttl, term()}
  +                 | {ttl_renew, term()}
  +                 | {prevIndex, term()}
  +                 | {prevValue, term()}.
  +
  +-type del_opt() :: dir
  +                 | prevExist
  +                 | {prevIndex, term()}
  +                 | {prevValue, term()}.
  +
   %% Management -----------------------------------------------------------------
   
  +%% @doc Start the letcd application and it's dependencies
  +-spec start() -> ok | {error, any()}.
   start() ->
       Deps = [crypto, asn1, public_key, ssl, lhttpc, lejson],
       [ application:start(A) || A <- Deps ],
       application:start(?MODULE).
   
  +%% @doc Stop the letcd application
  +-spec stop() -> ok.
   stop() ->
       application:stop(?MODULE).
   
   %% Keys -----------------------------------------------------------------------
   
  +-spec get(string()) -> {ok, #{}} | {error, #{}}.
   get(Path) ->
       letcd_keys:get(Path).
   
  +-spec get(string(), [get_opt()]) -> {ok, #{}} | {error, #{}}.
   get(Path, Opts) ->
       case verify_opts(get, Opts) of
           true ->
  
positive.code:             {error, bad_arg}
      end.
  
  del(Path) ->
      letcd_keys:del(Path).
  
  del(Path, Opts) ->
      case verify_opts(set, Opts) of
          true ->
              letcd_keys:del(Path, Opts);
          false ->
              {error, bad_arg}
      end.
  
negative.code:             {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 ->
  