Reusing function variables in a `when` conditional

Well, maybe I attempt both at once, but I can’t get away from that error.

  def iteraterefs(number, refs, table, out, i) when number > 0 do
    a = if number >= elem(refs, i) do
      reducenumber(elem(refs, i), number, elem(table, i), out)
    end
    out = if elem(a,1) > 0 do
      iteraterefs(elem(a, 0), refs, table, elem(a, 1), i + 1)
    end
    out
  end

  def reducenumber(divisor, number, symbol, out) when number >= divisor do
    number = number - divisor
    out = out <> symbol
    {number, out}
  end

Still it returns a parsing error on iteraterefs:

** (ArgumentError) errors were found at the given arguments:

       * 2nd argument: not a tuple