@spec compact_in_place( {String.t(), String.t(), String.t()}, non_neg_integer(), (any(), any() -> any()) ) :: {String.t(), String.t(), String.t()}