(symbol update (quot|dict :structure quot :path quot :operation ==> quot|dict :updated) ( path first :index ( ((path size 1 == structure "quot" type? and) ( structure structure index get operation -> index set @updated )) ((path size 1 == structure "dict" type? and) ( structure structure index dict.get operation -> index dict.set @updated )) ((structure "quot" type?) ( structure index get path rest operation update :value structure value index set @updated )) ((structure "dict" type?) ( structure index dict.get path rest operation update :value structure value index dict.set @updated )) ) case ) ) ::