Hi, suppose this dummy class:

class A
  def <<(o = :_only_a_block_, &block)
    return o if o != :_only_a_block_
    return block[] if block
  end
end

a = A.new

Then, this is ok: 
  a.send('<<') { 'hello dummy' } => 'hello dummy'

but this ...
  a << { 'hello dummy' } => SyntaxError: compile error

why this not?