I must be missing something, but in Haskell this “typed pipe” (which is just reverse application) already exists in the base package as Data.Function.&.
(&) :: a -> (a -> b) -> b (&) :: a -> (a -> b) -> bSo, `(a -> b) -> (b -> c) -> (c -> d) -> ... -> a -> z`.