   # The dispatcher said to resume, so go look for the missing values again.
   resume: ->
     @get_deps true
+  
+  # Set the default wrapper class, which is overridden by `as: `
+  wrapper: (klass) ->
+    @wrapper_class = klass
 
 
 # Extend the blessed methods with the given ones, so that
 # worker contexts can use them.
 Worker.mixin = (mixins) ->
   _.extend (Worker.mixins ?= {}), mixins
+  _.extend Worker.prototype, mixins
 
 module.exports =
   

  emit: (args..., value) ->
    @emitted = true
    key = args.join consts.arg_sep
    @db.set key, JSON.stringify(value)
    @db.publish @resp_channel, key

  # If we've seen this `@for_reals` before, then blow right past it.

      value
    else
      @deps.push key
      @blank()
  
  # Return an instance of the default, not-yet-instantiated object. If
  # `@wrapper` was called, then it's an instance of this clas with `undefined`
  # as its value. Otherwise, an unwrapped `undefined` is returned.
  blank: ->
    if @wrapper_class?
      new @wrapper_class(undefined)
    else
      undefined
  
  # Make sure the given key is being requested in a totally legal and consistent way.
