anchor.diff:    (etypecase task
       ((or symbol function)
        (funcall task))
  -    (bulk-task
  -     (error "~S of ~S not supported" 'execute-task 'bulk-task))
       (task
        (funcall (task-fun task) task))))
   
  
positive.code:   (declare (type cons hint-and-bulk))
    (destructuring-bind (hint . bulk) hint-and-bulk
      (declare (type fixnum hint)
               (type bulk-task bulk))
      (let* ((subtasks (bulk-task-subtasks bulk))
             (begin    hint)
             (end      (length subtasks)))
        (loop
          (when (zerop (bulk-task-waiting bulk))
            (return (values nil nil)))
          (let ((index (position nil subtasks :start begin :end end :test-not #'eql)))
            (cond (index
  
negative.code:            "EXECUTE-TASK"
             "STACK" "MAKE" "P"
             "PUSH" "PUSH-ALL" "STEAL" "RUN-ONE"))
  
  ;;; Work-unit stack
  ;;;
  ;;; Normal task-stealing stack, with special support for tasks composed of subtasks.
  ;;;
  ;;; A task designator is either a function designator, a task, or a bulk-task.
  ;;;
  ;;; A function designator is called, and a task's fun is called with the task as its
  ;;; only argument.
  ;;;
  ;;; When only those are used, the work stack is a normal stack of task units, with
  ;;; PUSH to insert a new task (PUSH-ALL to insert a sequence of tasks), STEAL to get
  ;;; one task from the bottom of the stack, and RUN-ONE to execute and pop the topmost
  ;;; task.
  ;;;
  ;;; Bulk-task objects represent a set of subtasks to be executed, and a sequence of
  ;;; operations to perform once all the subtasks have been completed.
  ;;;
  ;;; Task stealing of bulk tasks is special: bulk tasks have multiple owners, so bulk
  ;;; tasks aren't stolen as much as forcibly shared.  All the workers that share a bulk
  ;;; task cooperate to complete the subtasks.  The last worker to finish executing a
  ;;; subtask then executes the cleanups.
  ;;;
  ;;; Subtasks and cleanups are functions that are called with the subtask as their one
  ;;; argument.
  
  (in-package "WORK-STACK")
  
  