在 minizinc 的输出语句中两次使用 var set 的函数时遇到问题

Having trouble using a function of a var set twice in an output statement in minizinc

下面的程序运行没有问题。

array[1..2] of var set of 5..8: ar = [{5, 6}, {6, 7}];

function string: format_set_1( var set of int: s ) = "\(fix(s))\t";  
function string: format_set_2( var set of int: s ) = "\(fix(s))\t";  

output
   [format_set_1(ar[1]) ++ format_set_2(ar[2])];

但是当我在输出数组中将 format_set_2 替换为 format_set_1(反之亦然)时,我收到以下错误消息。

MiniZinc: type error: 
function with the same type already defined in C:/Users/rabbott/AppData/Local/Temp/MiniZinc IDE (bundled)-SEkuWd/untitled_model.mzn:4.1

怎么回事?

此问题是由 MiniZinc 2.3.2 中的错误引起的。最近在 GitHub and has been fixed on the MiniZinc develop branch 上提出了这个问题。下一个版本的 MiniZinc 应该会再次按预期工作。