“What a ship is, you know, it’s not just a keel and a hull and a deck and sails.
That is what a ship needs. But what a ship is — really is — is freedom.”
— Johnny Depp as Captain Jack Sparrow, Pirates of the Caribbean
Changes relative to previous release:
overloaded my + : ((X, X) -> X) = ( tagged_int::(+), one_word_int::(+), two_word_int::(+), intgr::(+), tagged_unt::(+), strcat, one_word_unt::(+), two_word_unt::(+), flt64::(+), unt08plus );
We now have thirty-four alphabetic reserved words:
abstype also and api as case class elif else end eqtype esac except exception fi fn for fprintf fun herein if include my or package printf sharing sprintf stipulate then val where with withtype
This is a small enough set to be reasonably easily learned. Few of them are common nouns or verbs likely to be wanted by application programmers as identifiers: the main offenders are api, case, class, end, exception, package and val, and none of them are easily dispensed with. (I considered using "class package" instead of "class" but just could not warm up to it. We might eventually demote class to being a #DEFINE that expands to class package.)
The reserved words abstype and eqtype are obsolescent and should be phased out eventually, but I wouldn’t hold my breath.
The reserved words fprintf, printf and sprintf should ideally be vanilla library functions, but they need special parser support not yet available in generic form to library functions, so I wouldn’t hold my breath on that either.
The reserved words my and val are exactly synonymous. The my form is shorter when used alone; the val form reads better when preceded by modifiers.
The reserved words class and package were synonymous for awhile, but the compiler does now cue on the difference between them to avoid scanning all packages for OOP constructs.
Thus, we might concievably eventually reduce the alphabetic reserved word count to perhaps thirty; we are unlikely to get below that. I do not anticipate us adding reserved words in the foreseeable future; adding non-reserved modifiers to existing reserved words should satisfy our evolutionary needs. (This is inspired by Larry Wall’s focus on Perl evolvability by design, although the Mythryl approach is quite a bit different.)