anchor.diff:          Pipe.Pipe(
               fun nextAgent -> 
                   use agent = mapAgent nextAgent id
  -                items |> Seq.iter (Message >> agent.Post)
  -                agent.PostAndReply(Done)
  +                items |> Seq.iter (agent.Tell)
  +                agent.Done()
           )
           
       ///Maps items in the Pipe to a new item.
  
positive.code:                 | Message(x) ->
                      let isAcceptable = condition x
                      if isAcceptable then
                          nextAgent.Post msg
                      return! messageLoop()
                  | End(replyChannel) ->
                      replyChannel.Reply()
                  | Done(replyChannel) ->
                      nextAgent.PostAndReply(Done)
                      replyChannel.Reply()
                      return! messageLoop()                
                  | Collect(replyChannel) ->
  
negative.code:                 match msg with
                  | Message(x) ->
                      let! mappedItem = map x
                      nextAgent.Tell mappedItem
                      return! messageLoop()
                  | End(replyChannel) ->
                      replyChannel.Reply()
                  | Done(replyChannel) ->
                      nextAgent.Done()
                      replyChannel.Reply()
                      return! messageLoop()
                  | Collect(replyChannel) ->
  