Revamp to allow tee to take either an OutputRange or a lambda to output to