// runnable = Runnable or String (method name) static Thread newThread(O runnable) { ret new BetterThread(_topLevelErrorHandling(toRunnable(runnable))); } static Thread newThread(O runnable, S name) { if (name == null) name = defaultThreadName(); ret new BetterThread(_topLevelErrorHandling(toRunnable(runnable)), name); } static Thread newThread(S name, O runnable) { ret newThread(runnable, name); }