Что вызывает «неоднозначную перегрузку возвращаемого типа ошибки функции» и как ее решить?

#minizinc

Вопрос:

У меня есть массив логических значений, и я пытаюсь найти первый экземпляр, который является «истинным» :

 set of int: people = 1..5;
array[people] of  bool: status=[false, false, true, true, false ];
var int: objective= min([p | p in people where status[p]]) 
 

и я получаю «неоднозначную перегрузку при ошибке функции возвращаемого типа».

Комментарии:

1. Было бы полезно, если бы вы показали полную модель. Нет никакого определения people .

2. Возможно, это было проблемой в более ранней версии MiniZinc. Используя текущую версию MiniZinc, фрагмент кода компилируется правильно.

3. Кажется, это вызвано тем, что, когда я создаю массив, есть предложение where; это предложение where возвращает «var opt: тип;»

4. Я не думаю, что в этом проблема. Когда я удаляю назначение status и делаю его var , оно все равно компилируется правильно. Даже несмотря на то, что массив в min функции, безусловно, имеет тип var opt int .