Single threaded ARC can go a long way in D.
Not without changing language semantics/mechanisms?
We statically know whether data is shared or not.
I don't understand how you can know this when you allow foreign function invocation.
Even thread local globals can leak into another thread by mistake, unnoticed? Meaning random crashes that are hard to debug?
