I like outplace but I don't want x.reverse().outplace().join.outplace(). In any case, I think the reversed, joined, shuffled proc are bad.
They create a lot of intermediate memory allocations and then people will complain that we are slower than Python, Ruby, Javascript, ... when processing strings. Then someone will spend time working on an optimized implementation with in-place everything and we're back to C land. I think we need either iterator chaining like Rust/zero-functional or a range-based API like C++/D to keep the nice chaining syntax without the inefficiencies of intermediate memory allocation.
