anchor.diff:                      callerArgExpr 
                   else                            
                       // CSharpMethod(x=b) when CSharpMethod(A) --> CSharpMethod(?x=Some(b :> A))
  -                    let calledArgTy = assignedArg.CalledArg.CalledArgumentType
                       if isOptionTy g calledArgTy then 
                           let calledNonOptTy = destOptionTy g calledArgTy 
                           let callerArgExprCoerced = mkCoerceIfNeeded g calledNonOptTy callerArgTy callerArgExpr
  
positive.code:     let callerArg = CallerArg(calledArgTy, mMethExpr, false, expr)
      preBinder, { NamedArgIdOpt = None; CalledArg = calledArg; CallerArg = callerArg }
  
  // Adjust all the optional arguments, filling in values for defaults, 
  let AdjustCallerArgForOptional tcFieldInit eCallerMemberName (infoReader: InfoReader) (assignedArg: AssignedCalledArg<_>) =
      let g = infoReader.g
      let amap = infoReader.amap
      let callerArg = assignedArg.CallerArg
      let (CallerArg(callerArgTy, m, isOptCallerArg, callerArgExpr)) = callerArg
      let calledArg = assignedArg.CalledArg
      match calledArg.OptArgInfo with 
      | NotOptional -> 
          if isOptCallerArg then errorR(Error(FSComp.SR.tcFormalArgumentIsNotOptional(), m))
          assignedArg
      | _ -> 
          let callerArgExpr2 = 
              match calledArg.OptArgInfo with 
              | NotOptional -> failwith "unreachable"
              
              | CallerSide dfltVal -> 
                  let calledArgTy = calledArg.CalledArgumentType
  
negative.code:                 else
                      if isNullableTy g calledArgTy  then 
                          // CSharpMethod(x=b) when 'x' has nullable type
                          // CSharpMethod(x=b) when both 'x' and 'b' have nullable type --> CSharpMethod(x=b)
                          // CSharpMethod(x=b) when 'x' has nullable type and 'b' does not --> CSharpMethod(x=Nullable(b))
                          MakeNullableExprIfNeeded infoReader calledArgTy callerArgTy callerArgExpr m
                      else 
                          // CSharpMethod(x=b) --> CSharpMethod(?x=b)
                          callerArgExpr
  