diff --git a/compiler/RAPID_CodeGen.jrag b/compiler/RAPID_CodeGen.jrag
index 9759b946d0af1e16dc1bac89e00e0fd19b29571d..5e49e260fc6b4b77c3ccd7763f5883d36a7ebbd8 100644
--- a/compiler/RAPID_CodeGen.jrag
+++ b/compiler/RAPID_CodeGen.jrag
@@ -94,7 +94,7 @@ aspect RAPID_CodeGen {
 	}
 
 	public void Decl.RAPID_gen(RAPID_env env) {
-		throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException("RAPID code generation (currently) does not support "+getClass().getSimpleName());
 	}
 
 	public void SampleDecl.RAPID_gen(RAPID_env env) {
@@ -194,7 +194,7 @@ aspect RAPID_CodeGen {
 	}
 
 	public String Type.RAPID_AddType(RAPID_env env, String name) {
-		throw new UnsupportedOperationException("RAPID_AddType not implemented for "+getClass().getSimpleName());
+		throw new UnsupportedOperationException("RAPID code generation does (currently) not support "+getClass().getSimpleName());
 	}
 
 	public String StructType.RAPID_AddType(RAPID_env env, String name) {
@@ -212,7 +212,7 @@ aspect RAPID_CodeGen {
 	public String FixedArrayType.RAPID_AddType(RAPID_env env, String name) {
 		String typeName = getType().RAPID_AddType(env, name + "_e");
 		if (getNumExp() > 1) {
-			throw new UnsupportedOperationException();
+			throw new UnsupportedOperationException("RAPID generation only (currently) supports one-dimensional arrays");
 		}
 		ArrayList<String> components = new ArrayList<String>();
 		for (int i = 1; i <= getExp(0).RAPID_getValue(); i++) {
@@ -236,13 +236,13 @@ aspect RAPID_CodeGen {
 		} else if (getToken() == LABCOMM_BYTE) {
 			return "byte";
 		}
-		throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getName());
 	}
 
 	public void Type.RAPID_AddDecodeInstr(RAPID_env env,
 			java.util.List<String> instrs,
 			String var_name, String stream_name) {
-		throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName());
 	}
 
 	public void StructType.RAPID_AddDecodeInstr(RAPID_env env,
@@ -289,14 +289,14 @@ aspect RAPID_CodeGen {
 				instrs.add("Decode_String " + stream_name + "," + var_name + ";");
 				break;
 			default:
-				throw new UnsupportedOperationException();
+				throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getName());
 		}
 	}
 
 	public void Type.RAPID_AddEncodeInstr(RAPID_env env,
 			java.util.List<String> instrs,
 			String var_name, String stream_name) {
-		throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName());
 	}
 
 	public void StructType.RAPID_AddEncodeInstr(RAPID_env env,
@@ -343,12 +343,12 @@ aspect RAPID_CodeGen {
 				instrs.add("Encode_String " + stream_name + "," + var_name + ";");
 				break;
 			default:
-				throw new UnsupportedOperationException();
+				throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getName());
 		}
 	}
 
 	public int Exp.RAPID_getValue() {
-		throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException("RAPID code generation does not (currently) support "+getClass().getSimpleName());
 	}
 
 	public int IntegerLiteral.RAPID_getValue() {
diff --git a/examples/simple/notypes.lc b/examples/simple/notypes.lc
index 378fae59018e99a067fda6f278c5c213680a557a..d85969ed7e56ef3ffe72afa4b4a8ba0e46d5396b 100644
--- a/examples/simple/notypes.lc
+++ b/examples/simple/notypes.lc
@@ -6,17 +6,9 @@ sample struct {
 } IntString;
 
 sample struct {
-  double x;
-  double y;
-} TwoDoubles;
-
-sample struct {
-  int fixed[2];
-  int variable[2,_];
-} TwoArrays;
-
-sample struct {
-  int a[2];
-  int b[2,3];
-} TwoFixedArrays;
-
+  struct {
+    float x;
+    float y;
+  } point;
+  boolean b;
+} nestedStruct;