       self = @
       method data_last, send
       self = null
-      ### somewhat hidden in the docs: *must* call `@queue null` to end stream: ###
-      # defer -> @queue null
-      @queue null
+      # defer -> @queue PS.symbols.end
+      @queue PS.symbols.end
       return null
   #.........................................................................................................
   return pull_through on_data, on_end

        settings = assign settings, hint
    else throw new Error "µ19358 expected 1 or 2 arguments, got #{arity}"
  settings._surround = \
    ( settings.first    isnt symbols.misfit ) or \
    ( settings.last     isnt symbols.misfit ) or \
    ( settings.between  isnt symbols.misfit ) or \
    ( settings.after    isnt symbols.misfit ) or \
    ( settings.before   isnt symbols.misfit )
  return { settings, method, }

#-----------------------------------------------------------------------------------------------------------

      handler true if has_ended and call_count < 1
      return null
    #.......................................................................................................
    if d is @symbols.last
      has_ended = true
      handler true if call_count < 1
    else
