The following looks like a bug. I ran this model on MiniZinc + Gecode, expecting 26 solutions, but got only 22. Model:
include "globals.mzn";
var 1..1 union 3..3: A;
var 2..3: B;
var 2..3: C;
var 2..3: D;
var 2..5: E;
var 1..4: F;
var 2..3: G;
var 2..3: H;
constraint
global_cardinality([A,D,1,3,3,C,1,H,B],[1,2,3],[G,F,E]) :: domain;
solve :: int_search([A,B,C,D,E,F,G,H], anti_first_fail, indomain_min) satisfy;
output ["\([A,B,C,D,E,F,G,H])\n"];
Missing solutions:
[1, 2, 3, 3, 5, 1, 3, 3]
[1, 3, 2, 3, 5, 1, 3, 3]
[1, 3, 3, 2, 5, 1, 3, 3]
[1, 3, 3, 3, 5, 1, 3, 2]
--Mats