On 8/5/05, gabriele renzi <surrender_it / remove-yahoo.it> wrote:
> not that this is important, but I was'nt suggesting indentation based
> syntax, which I dislike for reasons (i.e. commenting may mess syntax)
> that do not apply to implict terminators.

I'm a little confused then... how do you disambiguate implicit block
terminators without significant whitespace? Take for example the
following case, with no leading whitespace (to make sure it's not
significant):

  module Foo
  class Bar

That's it, just two lines, and I can define a module and a class.
Pretty nice. But what am I defining? Is the class ::Bar or Foo::Bar?
The implicit terminators could be chosen either way:

  module Foo
  end
  class Bar
  end

versus

  module Foo
    class Bar
    end
  end

Now, the syntax need not be ambiguous to the parser. Just choose a
convention. But at that point it becomes impossible to do the other
without reintroducing an explicit terminator. That would only make
things even more confusing. Some terminators explicit, others
implicit? No thank you!

In order to keep all the options currently available -- most of which
I've used personally and all of which have been used by *somebody* --
explicit terminators are necessary. The only explicit terminators I
know of are symbols (for which I think the keyword 'end' works nicely)
or a change in indentation.

Jacob Fugal