Re: A New Revealation: Semi-Permeable Membranes Chip Morningstar (chip@communities.com)
Tue, 26 Oct 1999 19:54:52 -0700 (PDT)

MarkM sez:
>At 11:30 AM 10/26/99 , Bill Frantz wrote:
>> >> define square(int : x) int : { x * x }
>> >
>> >[?] Why is left-of-colon more consistent than right-of-colon?
>>
>>[#] Having the guard always to the left of the value is more consistant
>>than having it on the right for parameters and on the left for the routine
>>body.
>
>[+] Ok, got it.
>[-] But I'm not gonna do it.

According to Bill, Bill's form:

define square(int : x) int : { x * x }

says: "x is an int" and "{ x * x } reveals an int".

According to MarkM, MarkM's form:

define square(x : int) : int { x * x }

says the same thing, "x is an int" and "{ x * x } reveals an int", and Bill argues that this is syntactically inconsistent.

And Bill is right! But we can still use MarkM's form consistently, merely by some verbal slight of hand. According to me, MarkM's form:

define square(x : int) : int { x * x }

says: "x is an int" and "square(x : int) reveals an int". Voila, the syntax MarkM likes with the consistency that Bill (and I) like.