[comp.lang.modula2] M2 Std questions

nagler@seismo.CSS.GOV@olsen.UUCP (02/14/87)

Does anyone know if the BSI or other standards bodies are considering
the following Modula-2 issues?
	
1. What about TEENYWEENYINT and REALLYBIGREAL?

After using various implementations of LONGREAL and REAL, I have found a 
great need for the standardization of the following types: ITTYBITTYREAL, 
SMALLREAL, SHORTREAL, NOTSOBIGREAL, AVERAGEREAL, etc...  Basically, I 
would like to know if the standards people are going to fall into the
same trap into which C has fallen.  Or, are they planning a standard,
extensible naming mechanism such as: CARDINAL32, CARDINAL16, REAL32,
REAL64, INTEGER36, CARDINAL60?  It would be ashame to let history 
repeat itself.

2. Type compatibility of Opaques, POINTER, and SYSTEM.ADDRESS.

It has been my experience that the following procedure and type should
be assignment compatible:
    PROCEDURE UserSupplied( userObject : MyPrivatePtrOrOpaque;
			    dataFound  : SomeService.Something );
    DEFINITION MODULE SomeService;
    TYPE
	ToBeCalledOnMatch = PROCEDURE ( SYSTEM.ADDRESS, (* importer supplied *)
					Something );    (* what was found    *)
In implementing the impossibile, ADTs, I have found that the above
feature is very powerful when implementing generics, but at present
I have to force a type coercion of the procedure type in my UserSupplied
module.   This may seem like a hack, but it is very useful when managing
a system of ``upcalls'' (call-backs, reverse importation, ...).  The
unnecessary importation of SYSTEM into the User module is dissatisfying.
A type coercion of UserSupplied into ToBeCalledOnMatch is not really a
good idea.  This idea is merely an extension of the automatic coercion 
of SYSTEM.ADDRESS into POINTER (and vice-versa).

If anyone knows if these issues are being addressed (I haven't seen them
in the minutes of the BSI), please let me know.  The points are trivial
to implement, but they could have a significant impact on the flexibility 
and usefulness of the language.

Rob Nagler