Why `<-` listed as `Left` associativity operator in elixir docs?

Associativity plays a role when multiple operators are chained. It controls the order of grouping operands to operators with the same precedence.

= being with Right associativity means that a = b = 10 will be evaluated as (a = (b = 10)) and not as ((a = b) = 10).

- is also left associative, meaning that 5 - 4 - 3 is evaluated as ((5 - 4) - 3) == -2. If it was right associative it would have been evaluated as (5 - (4 - 3)) == 4.

When the operator is used a single time, the associativity does not play a role – 5 - 3 == 2 no matter if - is left or right associative

<- is left associative not only in the docs, but also in the parser. So there is no error in the documentation.

I was not able to actually come up with an example where multiple <- are chained, something like this does not work:

with a <- b <- 10 do
  {a, b}
end

If I had to guess before looking it up, I would have guessed that <- is non-associative. Example for non associative operator is the unary not. A single not true is valid, but chaining multiple nots is not: not true not false is a syntax error.