anchor.diff:  parse_error(_Cmd, {bad_arg_num, SubCmd}) -> ["wrong number of arguments for ", SubCmd];
   parse_error(_Cmd, unauthorized) -> <<"operation not permitted">>;
   parse_error(_Cmd, nan_result) -> <<"resulting score is not a number (NaN)">>;
  +parse_error(_Cmd, auth_not_allowed) -> <<"Client sent AUTH, but no password is set">>;
   parse_error(_Cmd, {error, Reason}) -> Reason;
   parse_error(_Cmd, Error) -> io_lib:format("~p", [Error]).
   
  
positive.code:     [<<"#">>] -> self;
      [Pattern] -> Pattern;
      [Key, Field] -> {Key, Field}
    end.
negative.code:   end;
  run(#edis_command{cmd = <<"AUTH">>, args = [Password]}, State) ->
    case edis_config:get(requirepass) of
      undefined -> throw(auth_not_allowed);
      Password -> tcp_ok(State#state{authenticated = true});
      _ -> throw(invalid_password)
    end;
  