anchor.diff:              failwith "This should never happen"
   
   // Converts left side of a variable assignment to the C++ representation.
  -and compileLeftAssign theta kappa (left : LeftAssign) : string =
  -    let compileLeftAssign = compileLeftAssign theta kappa
  -    let compile = compile theta kappa
  +and compileLeftAssign theta kappa topLevel (left : LeftAssign) : string =
  +    let compileLeftAssign = compileLeftAssign theta kappa topLevel
  +    let compile = compile theta kappa topLevel
       match left with
       | VarMutation varName ->
           output varName
  
positive.code:     | ForLoopExp {typ=typ; varName=varName; start=start; direction=direction; end_=end_; body=body} ->
          let startName = Guid.string()
          let endName = Guid.string()
          output "(([&]() -> " +
          compileType unitty +
          output " {" + newline() + indentId() +
          compileType typ + output " " + output startName + output " = " + compile start + output ";" + newline() +
  
negative.code:         newline() +
          indentId() +
          output "return " +
          compile false clause.body +
          output ";" +
          unindentId() +
          newline() +
  