> The pipe operator will first check to see if the left hand value could be used as the first argument to the call, e.g. a |> b(1, 2) would become b(a, 1, 2).
Optimizing for one less _ typed is a really bad trade-off in terms of clarity here.
Gleam did used to have this, but the community collectively decided that it was actually quite annoying in practice to always have to write `_, ` after every function
I actually agree, this is the most questionable piece. I prefer (and have argued for in JS) Hack-style pipes, where the value "placement" always has to be specified.
That allows arbitrary expressions on the RHS of the pipe, so for example this would be valid Gleam:
Gleam doesn't have auto currying! Often folks find this (currying) a bit confusing to wrap their head around when learning functional programming and we don't feel like it really affords you much that couldn't already be achieved with just a little bit more work by the programmer.
Applicative builder APIs are the only thing we've found would be much much better if we had auto currying.
> The pipe operator will first check to see if the left hand value could be used as the first argument to the call, e.g. a |> b(1, 2) would become b(a, 1, 2).
Optimizing for one less _ typed is a really bad trade-off in terms of clarity here.