anchor.diff:              {reply, Result, {sequential, Pref, Seq + inc()}}
       end.
   
  +handle_cast(change, _State) ->
  +    {noreply, state()};
   handle_cast(stop, State) ->
       {stop, normal, State};
   handle_cast(_Msg, State) ->
  
positive.code:     list_to_binary(Prefix ++ couch_util:to_hex(crypto:rand_bytes(9))).
  
  init([]) ->
      ok = couch_config:register(fun("uuids", _) -> ?MODULE:stop() end),
      AlgoStr = couch_config:get("uuids", "algorithm", "random"),
      case couch_util:to_existing_atom(AlgoStr) of
          random ->
              {ok, random};
          utc_random ->
              {ok, utc_random};
          sequential ->
              {ok, {sequential, new_prefix(), inc()}};
          Unknown ->
              throw({unknown_uuid_algorithm, Unknown})
      end.
  
  terminate(_Reason, _State) ->
      ok.
  
negative.code: 
  inc() ->
      crypto:rand_uniform(1, 16#ffe).
  
  state() ->
      AlgoStr = couch_config:get("uuids", "algorithm", "random"),
      case couch_util:to_existing_atom(AlgoStr) of
          random ->
              random;
          utc_random ->
              utc_random;
          sequential ->
              {sequential, new_prefix(), inc()};
          Unknown ->
              throw({unknown_uuid_algorithm, Unknown})
      end.
  