anchor.diff:          Bool ->
               validate(T, [{BoolProp, Bool}|ValidProps], Errors)
       end;
  +validate([{consistent, Value}|T], ValidProps, Errors) ->
  +    case Value of
  +        false -> validate(T, [{consistent, false} | ValidProps], Errors);
  +        _ -> validate(T, ValidProps, [{consistent, "cannot update consistent property"}|Errors])
  +    end;
   validate([Prop|T], ValidProps, Errors) ->
       validate(T, [Prop|ValidProps], Errors).
   
  
positive.code:             Err = io_lib:format("Data Type buckets must be allow_mult=true", []),
              {Unvalidated, Valid, [{allow_mult, Err} | Invalid]}
      end.
  
  %% @private somewhat duplicates the create path, but easier to read
  %% this way, and chars are free
  
negative.code:     test_immutable(?TEST_TIME_SECS).
  
  test_immutable(TestTimeSecs) ->
          eqc:quickcheck(eqc:testing_time(TestTimeSecs, ?QC_OUT(prop_immutable()))).
  
  test_create() ->
      test_create(?TEST_TIME_SECS).
  
  test_create(TestTimeSecs) ->
          eqc:quickcheck(eqc:testing_time(TestTimeSecs, ?QC_OUT(prop_create_valid()))).
  
  test_merges() ->
       test_merges(?TEST_TIME_SECS).
  
  test_merges(TestTimeSecs) ->
           eqc:quickcheck(eqc:testing_time(TestTimeSecs, ?QC_OUT(prop_merges()))).
  
  %% Props
  
  %% When validating:
  %%   * Once the datatype has been set, it cannot be unset or changed and
  %%     allow_mult must remain true
  %%   * the consistent property cannot change and neither can the n_val if
  %%     the type is consistent
  prop_immutable() ->
      ?FORALL(Args, gen_args(no_default_buckets),
              begin
                  Result = erlang:apply(?MODULE, validate, Args),
  