Issue 1:
Application: devenv.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: System.AggregateException: One or more errors occurred. ---> System.Exception: Error while reading file: 'typescriptServices.js' from location: 'C:\Users\drosen\TypeScript3\built\local'. ---> System.IO.IOException: The process cannot access the file 'C:\Users\drosen\TypeScript3\built\local\typescriptServices.js' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
at System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean checkHost)
at System.IO.File.ReadAllText(String path)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.FileHelpers.ReadFile(String filePath)
--- End of inner exception stack trace ---
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.FileHelpers.ReadFile(String filePath)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.Factory.GetTypeScriptLanguageServiceScript()
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.Factory.ReinitializeEngineAndFactoryIfNeeded()
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.Factory.CreateOrUpdateShim(String createShimFunction, Object host, ShimAndServicesFileVersion& shimInfo)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.CreateOrUpdateShim(String caption, String createShimFunction, Object host, ShimAndServicesFileVersion& shimInfo)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.Proxies.AbstractProxy`1.InvokeShimMethod[T](String methodName, Object[] arguments)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.Proxies.LanguageServiceProxy.InvokeLanguageService(ProjectDataCache project, String methodName, CancellationToken cancellationToken, Object[] arguments)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.Proxies.LanguageServiceProxy.GetBraceMatchingAtPosition(ProjectDataCache project, Document document, Int32 position, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.BraceMatching.TypeScriptBraceMatcher.<>c__DisplayClass0.<FindBracesAsync>b__1(LanguageServiceProxy proxy, ProjectDataCache cache, ScriptContext context)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.TaskHandler.ComputeValue[T](ProjectDataCache cache, LanguageServiceOperation`1 operation)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.TaskHandler.<>c__DisplayClass0`1.<PerformOperation>b__1()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.TaskHandler.<PerformSyntacticFeatureOperationAsync>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceMatchingService.<GetMatchingBracesAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceHighlightingTagProducer.<ProduceTagsForBracesAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceHighlightingTagProducer.<ProduceTagsAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Shared.Tagging.ProducerPopulatedTagSource`1.<RecomputeTagsAsync>d__32.MoveNext()
--- End of inner exception stack trace ---
---> (Inner Exception #0) System.Exception: Error while reading file: 'typescriptServices.js' from location: 'C:\Users\drosen\TypeScript3\built\local'. ---> System.IO.IOException: The process cannot access the file 'C:\Users\drosen\TypeScript3\built\local\typescriptServices.js' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
at System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean checkHost)
at System.IO.File.ReadAllText(String path)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.FileHelpers.ReadFile(String filePath)
--- End of inner exception stack trace ---
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.FileHelpers.ReadFile(String filePath)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.Factory.GetTypeScriptLanguageServiceScript()
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.Factory.ReinitializeEngineAndFactoryIfNeeded()
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.Factory.CreateOrUpdateShim(String createShimFunction, Object host, ShimAndServicesFileVersion& shimInfo)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.ShimFactory.ShimFactory.CreateOrUpdateShim(String caption, String createShimFunction, Object host, ShimAndServicesFileVersion& shimInfo)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.Proxies.AbstractProxy`1.InvokeShimMethod[T](String methodName, Object[] arguments)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.Proxies.LanguageServiceProxy.InvokeLanguageService(ProjectDataCache project, String methodName, CancellationToken cancellationToken, Object[] arguments)
at Microsoft.CodeAnalysis.Editor.TypeScript.ScriptServices.Proxies.LanguageServiceProxy.GetBraceMatchingAtPosition(ProjectDataCache project, Document document, Int32 position, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.BraceMatching.TypeScriptBraceMatcher.<>c__DisplayClass0.<FindBracesAsync>b__1(LanguageServiceProxy proxy, ProjectDataCache cache, ScriptContext context)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.TaskHandler.ComputeValue[T](ProjectDataCache cache, LanguageServiceOperation`1 operation)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.TaskHandler.<>c__DisplayClass0`1.<PerformOperation>b__1()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.TaskHandler.<PerformSyntacticFeatureOperationAsync>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceMatchingService.<GetMatchingBracesAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceHighlightingTagProducer.<ProduceTagsForBracesAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceHighlightingTagProducer.<ProduceTagsAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Shared.Tagging.ProducerPopulatedTagSource`1.<RecomputeTagsAsync>d__32.MoveNext()<---

Stack:
at System.Environment.FailFast(System.String, System.Exception)
at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception)
at Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception, System.Action`1<System.Exception>)
at Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception)
at Roslyn.Utilities.TaskExtensions.ReportFatalErrorWorker(System.Threading.Tasks.Task, System.Object)
at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
at System.Threading.Tasks.Task.ExecutionContextCallback(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.Threading.Tasks.TaskExtensions+VoidResult, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Threading.Tasks.UnwrapPromise`1[[System.Threading.Tasks.TaskExtensions+VoidResult, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetFromTask(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.UnwrapPromise`1[[System.Threading.Tasks.TaskExtensions+VoidResult, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InvokeCore(System.Threading.Tasks.Task)
at System.Threading.Tasks.UnwrapPromise`1[[System.Threading.Tasks.TaskExtensions+VoidResult, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Invoke(System.Threading.Tasks.Task)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.CodeAnalysis.Editor.Shared.Tagging.ProducerPopulatedTagSource`1+<RecomputeTagsAsync>d__32[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceHighlightingTagProducer+<ProduceTagsAsync>d__4.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceHighlightingTagProducer+<ProduceTagsForBracesAsync>d__5.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.Nullable`1[[Microsoft.CodeAnalysis.Editor.BraceMatchingResult, Microsoft.CodeAnalysis.EditorFeatures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Nullable`1[[Microsoft.CodeAnalysis.Editor.BraceMatchingResult, Microsoft.CodeAnalysis.EditorFeatures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching.BraceMatchingService+<GetMatchingBracesAsync>d__2.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task.FinishStageTwo()
at System.Threading.Tasks.Task.Finish(Boolean)
at System.Threading.Tasks.Task`1[[System.Nullable`1[[Microsoft.CodeAnalysis.Editor.BraceMatchingResult, Microsoft.CodeAnalysis.EditorFeatures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Nullable`1[[Microsoft.CodeAnalysis.Editor.BraceMatchingResult, Microsoft.CodeAnalysis.EditorFeatures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetException(System.Exception)
at Microsoft.CodeAnalysis.Editor.TypeScript.Features.TaskHandler+<PerformSyntacticFeatureOperationAsync>d__1`1[[System.Nullable`1[[Microsoft.CodeAnalysis.Editor.BraceMatchingResult, Microsoft.CodeAnalysis.EditorFeatures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Issue 2:
in sys.ts , there are the code

if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") {
return getWScriptSystem();
}
else if (typeof process !== "undefined" && process.nextTick && !process.browser && typeof require !== "undefined") {
// process and process.nextTick checks if current environment is node-like
// process.browser check excludes webpack and browserify
return getNodeSystem();
}
else {
return undefined; // Unsupported host
}

I want to use my custom Virtual-IO-System to run typescript-compiler with CompilerAPI in browser ( Chrome and so on ) 。so I think maybe it should be a dependency injection pattern , such as this one :

ts.sys.register( new MyFileSystem());

If you agree with me ,I will send a PR here