It is because DICT_DEF2 expects exactly either 3 arguments (name, key_type and value_type) or 5 arguments (name, key_type, key_oplist, value_type and value_oplist).
It doesn't accept 4 arguments because it won't be able to identify what is the third argument (value_oplist of key_oplist).
Since you give an oplist for util_obj_t, you need to give an oplist for double too (like M_BASIC_OPLIST).