Код не спрацьовує, тому що embedded розглядається платформою як value тип. При додаванні embedded
str в колекцію
todelete, змінна передається "по значенню". Але як передати об''єкт "по значенню" в колекцію, яка зберігає посилання? Платформа створює клон об'єкта та в колекцію додається посилання на цей клон. Це неочевидна поведінка, але як є. В результаті, при виконанні блоку
remove from collection у блок потрапляє посилання на інший об'єкт, якого нема в початковій колекції
item@Calculation . Проблема вирішується використанням блоку
value type as reference . Виправлений код знизу.