Hash can now hash arbitary data types via the stream operator