anchor.diff:          newline() +
           indentId() +
           output "return " +
  -        compile clause.body +
  +        compile false clause.body +
           output ";" +
           unindentId() +
           newline() +
  
positive.code:         output "(" + compile record + output ")." + output fieldName
      | LambdaExp {returnTy=returnTy; arguments=args; body=body} ->
          output "juniper::function<" + compileType returnTy + "(" + (args |> List.map (snd >> compileType) |> String.concat ",") + ")>(" +
          output "[=](" + (args |> List.map (fun (name, ty) -> compileType ty + output " " + output name) |> String.concat ", ") +
          output ") mutable -> " + compileType returnTy + output " { " + newline() +
          indentId() + output "return " + compile body + output ";" + unindentId() + newline() + output " })"
      | ModQualifierExp ({module_=module_; name=name}, [], []) ->
  
negative.code:     | ForLoopExp {typ=typ; varName=varName; start=start; direction=direction; end_=end_; body=body} ->
          let startName = Guid.string()
          let endName = Guid.string()
          output ("((" + capture + "() -> ") +
          compileType unitty +
          output " {" + newline() + indentId() +
          compileType typ + output " " + output startName + output " = " + compile start + output ";" + newline() +
  