On Tue, 12 Jun 2001, Mathieu Bouchard wrote:

> 	Choice[foo,bar,baz]
> 	UnionType[foo,bar,baz]
> 	ListType[foo]
> 	TupleType.of [foo,tfoo],[bar,tbar],[baz,tbaz]

I don't really understand what the choices, unions, lists and tuples are
doing, but the above appears to be the syntax that seems to be the most
common. Could I suggest:

  Choice[foo,bar,baz]
  Union[foo,bar,baz]
  List[foo]
  Tuple[foo,tfoo,bar,tbar,baz,tbaz] (presuming they're always paired)
  Tuple[[foo,tfoo],[bar,tbar],[baz,tbaz]] (if they're not)

if that's feasible?

Here's some of my reasoning, so you know where I'm going wrong...

> 	choice foo,bar,baz         (current RubyAST,RubyX11)

'choice' would need to be a function call in the same namespace as the
program being written. I hate ncurses for that reason.

> 	ChoiceType.new foo,bar,baz

Reasonable, but I already know it's a Type.

> 	ChoiceType.of foo,bar,baz

The 'of' is a nice idea to make it read well, but it's different and
I would have to remember it.

> 	ChoiceType[foo,bar,baz]

The same as "Hash[]" so familar through previous usage. Also suits the
list-like nature of foo,bar,baz. But I already know it's a Type.

> 	Choice.new foo,bar,baz

Better.

> 	Choice.of foo,bar,baz

My brainspace is very limited. I can remember 'new' even though it
doesn't look as nice. :)

> 	Choice[foo,bar,baz]

This is better. All the benefits of ChoiceType[], without telling me
that it's a Type (which I already knew).

Hopefully this could be within another namespace like:

  RubyAST::Choice[foo,bar,baz]

so I can have that nice warm glow of knowing that I don't have to memorise
more words I can't use when thinking of names for my stuff. I already have
enough trouble with the existing words.

Maybe this is totally dumb, but that's me. :)

-- 
  spwhite / chariot.net.au