Functional coverage for associative array of enums

In reply to peter.r:

I have come up with this:

      cp__dram_type : coverpoint dram_type_loc {
	 bins dram_tech[] = dram_type_loc_q;
      }

      cp__dram_freq : coverpoint dram_freq_loc {
	 bins dram_freq[] = dram_freq_loc_q;
      }

      cr_one_hot_x_dram_x_freq_x_type : cross cp__one_hot_vector, cp__dram_type, cp__dram_freq {
	 function CrossQueueType cr_func();
	    for(int i = 0; i<WIDTH; i++) begin
	       foreach(freq_arr[j]) begin
           	  for(int k = 0; k < freq_arr[j].size(); k++) begin
	             cr_func.push_front('{i,j,freq_arr[j][k]});
                  end
               end										
            end
         endfunction
	 
	 bins cr  = cr_func();
      }

   endgroup // cg__one_hot

   function new(string name="one_hot_x_dram_type_x_freq");
      foreach(freq_arr[i]) begin
	 dram_type_loc_q.push_back(i);
	 for(int j = 0; j < freq_arr[i].size(); j++)
	   dram_freq_loc_q.push_back(freq_arr[i][j]);
      end
      cg__one_hot_x_dram = new();
   endfunction // new

Printing the result of cr_func yields:

cr_func = 
...
...
'{cp__one_hot_vector:2, cp__dram_type:eLPDDR4, cp__dram_freq:eDDR_FREQ_2133},
'{cp__one_hot_vector:2, cp__dram_type:eLPDDR4, cp__dram_freq:eDDR_FREQ_1467},
'{cp__one_hot_vector:2, cp__dram_type:eDDR4, cp__dram_freq:eDDR_FREQ_1067},
'{cp__one_hot_vector:2, cp__dram_type:eDDR4, cp__dram_freq:eDDR_FREQ_800},
'{cp__one_hot_vector:1, cp__dram_type:eLPDDR4, cp__dram_freq:eDDR_FREQ_2133},
'{cp__one_hot_vector:1, cp__dram_type:eLPDDR4, cp__dram_freq:eDDR_FREQ_1467},
'{cp__one_hot_vector:1, cp__dram_type:eDDR4, cp__dram_freq:eDDR_FREQ_1067},
'{cp__one_hot_vector:1, cp__dram_type:eDDR4, cp__dram_freq:eDDR_FREQ_800},
'{cp__one_hot_vector:0, cp__dram_type:eLPDDR4, cp__dram_freq:eDDR_FREQ_2133},
'{cp__one_hot_vector:0, cp__dram_type:eLPDDR4, cp__dram_freq:eDDR_FREQ_1467},
'{cp__one_hot_vector:0, cp__dram_type:eDDR4, cp__dram_freq:eDDR_FREQ_1067},
'{cp__one_hot_vector:0, cp__dram_type:eDDR4, cp__dram_freq:eDDR_FREQ_800}}

But cr has only one bin, and the remaining bins are listed in the coverage tool. I was expecting cr to have the bins I wanted, but it seems it behaving like ignore_bins.