Mark a node name as no longer in use.

        It could thus be recycled to name a new node.

def free(self, kind, name):
        """
        Mark a node name as no longer in use.

        It could thus be recycled to name a new node.
        """
        try:
            params = self._parse(name)
            index = int(params['index'], 10)
            self._free[kind].add(index)
            assert index <= self._top[kind]
            if index == self._top[kind]:
                self._top[kind] -= 1
        except ValueError:
            # ignore failures in self._parse()
            pass