Unary star operator problem?

Given:

def f(*a)
puts a.length
end

b = [1,2,3]

f(b) => 1, OK
f(*b) => 3, OK
f(1,*b) => 4, OK
f(*b,1) => compiler error on both 1.6.7 and 1.7.3 (11/14 CVS snapshot)

Why doesn’t this work (by “work” I mean compile and work like
f(1,2,3,1))? If prepending arguments to a “splatted” array works,
why shouldn’t appending?

Dave
Isa. 40:31

ruby manual says:

=begin

expr `,' [expr `,'...] [`*' expr] = expr [, expr...][`*' [expr]]
`*' expr = expr [, expr...][`*' expr]

=end

'*'expr is the last