Haskell has & which goes the other way:
users
& map validate
& catMaybes
& mapM persist users
& map validate
& catMaybes
& mapM persistIn my programming language, I added `.>` as a reverse-compose operator, so pipelines of function compositions can also be read uniformly left-to-right, e.g.
process = map validate .> catMaybes .> mapM persistThere is also https://hackage.haskell.org/package/flow which uses .> and <. for function composition.
EDIT: in no way do I want to claim the originality of these things in Elm or the Haskell package inspired by it. AFAIK |> came from F# but it could be miles earlier.
users
|> map validate
|> catMaybes
|> mapM persist