anchor.diff:      vref.DisplayName.EndsWith suffixForTupleElementAssignmentTarget
   
   let IsMutableForOutArg (vref: ValRef) =
  -    (vref.IsCompilerGenerated && vref.DisplayName.StartsWith(PrettyNaming.outArgCompilerGeneratedName))
  +    vref.IsCompilerGenerated &&
  +    vref.DisplayName.StartsWith(PrettyNaming.outArgCompilerGeneratedName)
   
   let IsOnlyMutableBeforeUse (vref: ValRef) =
       IsMutableStructuralBindingForTupleElement vref || 
  
positive.code: 
      let requisites = lazy (
          let argTys = destRefTupleTy g v.Type
          let mutvs, mutves, mutinits = argTys |> List.mapi (MakeMutableStructuralBindingForTupleElement m v)  |> List.unzip3
          let mutvrefs = mutvs |> List.map mkLocalValRef
          argTys, mutves, mutinits, mutvrefs)
  
      match dive g m requisites rhs with
      | Some rewrittenRhs ->
          let argTys, mutves, mutinits, _ = requisites.Value
          let rhsAndTupleBinding = mkCompGenSequential m rewrittenRhs (mkRefTupled g m mutves argTys)
          mkLetsBind m mutinits (mkLet tgtSeqPtOpt m v rhsAndTupleBinding body) |> Some
      | _ -> None
  
  let ExpandStructuralBinding cenv expr =
  
negative.code:     let v, ve = mkCompGenLocal arg.Range name argTy
      ve, mkCompGenBind v arg
  
  let MakeMutableStructuralBindingForTupleElement (v: Val) i (arg: Expr) argTy =
      let name = sprintf "%s_%d_%s" v.LogicalName i suffixForTupleElementAssignmentTarget
      let v, ve = mkMutableCompGenLocal arg.Range name argTy
      ve, mkCompGenBind v arg
  
  let ExpandStructuralBindingRaw cenv expr =
      assert cenv.settings.ExpandStructuralValues()
  