anchor.diff:          {undefined, false, _Meh} ->
               has_allow_mult(Bad);
           {_Datatype, false, _Datatype2} ->
  +            has_allow_mult(Bad) andalso has_datatype(Bad);
  +        {_Datatype, _, _Datatype} ->
  +            has_allow_mult(Bad);
  +        {_, _, _} ->
               has_allow_mult(Bad) andalso has_datatype(Bad)
       end.
   
  
positive.code:          Defaults ++ Mult ++ Datatype).
  
  gen_allow_mult() ->
      ?LET(Mult, bool(), [{allow_mult, Mult}]).
  
  gen_datatype_property() ->
      ?LET(Datattype, oneof([gen_datatype(), notadatatype]), [{datatype, Datattype}]).
  
negative.code:             begin
                  Result={Good, _Bad} = validate(update, Bucket, Existing, New),
  
                  Expected = case {default_bucket(Bucket), has_allow_mult(New), allow_mult(New), has_datatype(Existing)} of
                                 {true, _, Mult,  _} when Mult /= error ->
                                     merge(New, Existing);
                                 {true, true, error, _} ->
                                     merge([proplists:lookup(datatype, New)], lists:keydelete(allow_mult, 1, Existing));
                                 {false, true, Mult,  false} when Mult /= error ->
                                     merge([proplists:lookup(allow_mult, New)], Existing);
                                 {false,true,error,false} ->
                                     Existing;
                                 {false, true, _Mult, true} ->
                                     Existing
                             end,
  
  