message: feat(scheduler): use microtasks
diff: @@ -4,14 +4,11 @@ import { DoublyLinkedList } from "../DoublyLinkedList"
  let isRunning = false
  const tasks = new DoublyLinkedList<Lazy<void>>()
  -export const immediate: (thunk: Lazy<void>) => void =
  - typeof setImmediate !== "undefined" ? setImmediate : (x) => setTimeout(x, 0)
  -
  export const defaultScheduler: (thunk: Lazy<void>) => void = (thunk) => {
  tasks.add(thunk)
  if (!isRunning) {
  isRunning = true
  - immediate(() => {
  + Promise.resolve().then(() => {
  while (tasks.length > 0) {
  tasks.shift()!()
  }
  