Index: doc/theses/mike_brooks_MMath/programs/hello-accordion.cfa
===================================================================
--- doc/theses/mike_brooks_MMath/programs/hello-accordion.cfa	(revision 14c31ebd26aa18f5709bd1a20cc22b7424779f1c)
+++ doc/theses/mike_brooks_MMath/programs/hello-accordion.cfa	(revision 33474e6e9cd77c01f702bed9fe6defd58b147a23)
@@ -39,8 +39,8 @@
 
 forall( [C], [S] )
-void init( @School( C, S ) & classes@, int class, int student, int pref ) with( classes ) {
-	classIds[class] = class; $\C{// handle dynamic offsets of fields within structure}$
-	studentIds[student] = student;
-	preferences[class][student] = pref;
+void put( @School( C, S ) & s@, int class, int student, int pref ) {
+	s.classIds[class] = class; $\C{// fields' offsets are dynamic }$
+	s.studentIds[student] = student;
+	s.preferences[class][student] = pref;
 }
 
@@ -62,13 +62,13 @@
 	sin | classes | students;
 	@School( classes, students ) school;@
-	int class, student, preference;
-	// read data into school calling init
-	// for each student's class/preferences
-	try {
-		for ( ) {
-			sin | class | student | preference;
-			init( school, class, student, preference );
-		}
-	} catch( end_of_file * ) {}
+	// elided: read data into school, calling put
+	{	int class, student, preference;
+		// for each student's class/preferences
+		try {
+			for ( ) {
+				sin | class | student | preference;
+				put( school, class, student, preference );
+			}
+		} catch( end_of_file * ) {}	   }
 	for ( s; students ) {
 		sout | "student" | s | nonl;
Index: doc/theses/mike_brooks_MMath/programs/hello-array.cfa
===================================================================
--- doc/theses/mike_brooks_MMath/programs/hello-array.cfa	(revision 14c31ebd26aa18f5709bd1a20cc22b7424779f1c)
+++ doc/theses/mike_brooks_MMath/programs/hello-array.cfa	(revision 33474e6e9cd77c01f702bed9fe6defd58b147a23)
@@ -49,5 +49,78 @@
 */
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+#ifdef SHOWERR1
+
 void fred() {
+
+
+
+	array( float, @10@ ) x;
+	array( float, @20@ ) y;
+	f( x, x );		$\C[0.5in]{// ok}$
+	f( y, y );		$\C{// ok}$
+	f( x, y );		$\C{// error}\CRT$
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+forall( [M], [N] )
+void bad( array(float, M) &x,
+		array(float, N) &y ) {
+	f( x, x );		$\C[0.5in]{// ok}$
+	f( y, y );		$\C{// ok}$
+
+	f( x, y );		$\C{// error}\CRT$
+}
+
+#endif
+
+
+
+
+
+
+
+
+
+
+forall( [M], [N] )
+void bad_fixed( array( float, M ) & x,
+		array( float, N ) & y ) {
+	f( x, x );		$\C[0.5in]{// ok}$
+	f( y, y );		$\C{// ok}$
+	if ( M == N )
+		f( x, @(array( float, M ) &)@y ); $\C{// ok}$
+}
+
+
+
+
+
+
+void fred_ok_only() {
 	array( float, @10@ ) x;
 	array( float, @20@ ) y;
@@ -57,20 +130,14 @@
 }
 
-#ifdef SHOWERR1
-forall( [M], [N] )
-void bad( array(float, M) &x, array(float, N) &y ) {
-	f( x, x );		$\C[1.5in]{// ok}$
-	f( y, y );		$\C{// ok}$
-	f( x, y );		$\C{// error}\CRT$
-}
-#endif
-
-
 
 forall( [M], [N] )
-void bad_fixed( array( float, M ) & x, array( float, N ) & y ) {
-	if ( M == N )
-		f( x, @(array( float, M ) &)@y ); $\C{// cast y to matching type}$
+void bad_ok_only( array(float, M) &x,
+		array(float, N) &y ) {
+	f( x, x );
+	f( y, y );
+
+//	f( x, y );
 }
+
 
 // Local Variables: //
