         for group, index in separated
           ops = []
           for constraint, index in group
-            @unconstrain constraint
+            @unconstrain constraint, undefined, true
             if constraint.operation
               ops.push constraint.operation
           if ops.length

    #  for constraint in stack
    #    @addConstraint constraint

  unconstrain: (constraint, continuation) ->
    for path in constraint.paths
      if typeof path == 'string'
        if group = @paths[path]

      variable = @variable('suggested_' + Math.random())
    return variable

  undeclare: (variable, moving) ->
    (@nullified ||= {})[variable.name] = variable
    if @added?[variable.name]
      delete @added[variable.name]
    if !moving && @values[variable.name] != undefined
      delete @variables[variable.name]
    delete @values[variable.name]
    @nullify(variable)



    #if variable.editing
    #  if variable.value
    #    @removeConstraint variable.editing
