Motivation:
Using #tap to operate on and return a value is a useful technique for clean code in Ruby. However, sometimes the value you want to return changes, or you don't even know it at the start. In those cases, you can't use #tap.
This Pointer class defines a #tapp method. #tapp takes a block, just like tap. However, the pointer yielded to the block can be assigned and reassigned using <=, and that assigned value is what is returned from #tapp, not the pointer itself.