, piping data and in cascading function expressions of how does one examine intermediate values. The obvious solution of breaking the flow to grab the intermediate value, output somehow and then pass it own is workable but destroys the form of the solution and is efficient. In the Unix world, the solution came from the introduction of the tee operator. For Ruby, MentalGuy created the tap function which has been added as Kernel method to Ruby 1.9 and for OmniMark 8, Roy Amodeo created a similar function using the streaming co-routine capability.