let rec change point v = match point.link with | Info info | Link { link = Info info } -> info.descriptor <- v; info.descriptor | Link { link = Link _ } -> change (repr point) v