New |> implementation (see #1)