Я тут просто пока с препроцессором возился столкнуся со следующим, когда делаем obj {value=5} он вполне может вывести тип пятерки по объекту. А когда делаем obj{value=5} он преобразует это в Z.setField @"value" obj 5 и начинается ругаться, что не может понять какой тип пятерки нам нужен. С overloaded strings та-же фигня.
Т.е. нужно явно типы указывать, неэргономично как-то получается.