diff --git a/compiler/CS_CodeGen.jrag b/compiler/CS_CodeGen.jrag
index dc273e1fdd66200cf05583a50bafc0212f5ba030..0423e069005fc62ebc0523432c77b8818fccead2 100644
--- a/compiler/CS_CodeGen.jrag
+++ b/compiler/CS_CodeGen.jrag
@@ -720,6 +720,10 @@ aspect CS_Class {
 		    " not declared");
   }
 
+  public void SampleRefType.CS_emitTypePrefix(CS_env env) {
+    env.print("Sample");
+  }
+
   public void PrimType.CS_emitTypePrefix(CS_env env) {
     switch (getToken()) {
       case LABCOMM_STRING: { env.print("String"); } break;
@@ -844,6 +848,10 @@ aspect CS_Class {
 		    " not declared");
   }
 
+  public void SampleRefType.CS_emitType(CS_env env) {
+    env.print("Sample");
+  }
+
   public void VoidType.CS_emitType(CS_env env) {
     env.print("void");
   }
diff --git a/compiler/Java_CodeGen.jrag b/compiler/Java_CodeGen.jrag
index b3444ff181d9aa7c3397617a895b9f1f3e6a163a..cfa38cc6405ce2d6ae01e30bb1debff6e653f2b7 100644
--- a/compiler/Java_CodeGen.jrag
+++ b/compiler/Java_CodeGen.jrag
@@ -938,6 +938,10 @@ aspect Java_Class {
 		    " not declared");
   }
 
+  public void SampleRefType.Java_emitType(Java_env env) {
+    env.print("Sample");
+  }
+
   public void VoidType.Java_emitType(Java_env env) {
     env.print("void");
   }
diff --git a/compiler/Python_CodeGen.jrag b/compiler/Python_CodeGen.jrag
index 4d19724b033e5e91b57e5352d2b4db948b59c502..0063b30963b8c172c53a536992dd7fbef4ed1e2f 100644
--- a/compiler/Python_CodeGen.jrag
+++ b/compiler/Python_CodeGen.jrag
@@ -152,6 +152,10 @@ aspect PythonTypes {
                     " not declared");
   }
 
+  public void SampleRefType.Python_genSignature(Python_env env) {
+    env.print("labcomm.SAMPLE_REF()");
+  }
+
   public void PrimType.Python_genSignature(Python_env env) {
     switch (getToken()) {
       case LABCOMM_BOOLEAN: { env.print("labcomm.BOOLEAN()"); } break;
diff --git a/test/Makefile b/test/Makefile
index 075d91f72d356a61f214e4381d8178d70dc28dc8..128a5e4fc60a2d157ae98fc96b625bde8a5a2082 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,4 +1,4 @@
-TESTS=basic simple nested
+TESTS=basic simple nested ref
 LABCOMM_JAR=../compiler/labcomm_compiler.jar
 LABCOMM=java -jar $(LABCOMM_JAR)
 
diff --git a/test/ref.lc b/test/ref.lc
new file mode 100644
index 0000000000000000000000000000000000000000..955d9a70d6da2a56106cd2f73f02e4c24b85ce21
--- /dev/null
+++ b/test/ref.lc
@@ -0,0 +1,4 @@
+sample sample usedBoth;
+sample sample unusedEncoder;
+sample sample unusedDecoder;
+sample sample sample_list[4];