anchor.diff:              |> Array.map (fun pty -> eraseSystemType (amap,m,pty))
           let paramVars = 
               erasedParamTys
  -            |> Array.mapi (fun i erasedParamTy -> erasedParamTy.PApply((fun ty ->  ProvidedVar.Fresh("arg" + i.ToString(),ty)),m))
  +            |> Array.mapi (fun i erasedParamTy -> erasedParamTy.PApply((fun ty -> ProvidedVar.Fresh("arg" + i.ToString(),ty)),m))
   
   
           // encode "this" as the first ParameterExpression, if applicable
  
positive.code: //   objArgs: the 'this' argument, if any 
  //   args: the arguments, if any 
  let BuildMethodCall tcVal g amap isMutable m isProp minfo valUseFlags minst objArgs args =
  
      let direct = IsBaseCall objArgs
  
      TakeObjAddrForMethodCall g amap minfo isMutable m objArgs (fun ccallInfo objArgs -> 
          let allArgs = (objArgs @ args)
          let valUseFlags = 
              if (direct && (match valUseFlags with NormalValUse -> true | _ -> false)) then 
                  VSlotDirectCall 
              else 
                  match ccallInfo with
  
negative.code:             wrap,[objArgExpr'] 
  
          | _ -> 
              id, objArgs
      let e,ety = f ccallInfo objArgs
      wrap e,ety
  
  