diff --git a/.classpath b/.classpath
deleted file mode 100644
index 643283a02606fecfea2c5ba87873793bbdde35e0..0000000000000000000000000000000000000000
--- a/.classpath
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/generated">
-		<attributes>
-			<attribute name="ignore_optional_problems" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry including="**" kind="src" path="src/resource"/>
-	<classpathentry kind="src" path="src/java"/>
-	<classpathentry kind="lib" path="tools/beaver.jar"/>
-	<classpathentry kind="lib" path="tools/junit-4.11-SNAPSHOT.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/.gitignore b/.gitignore
index d59b79f04b6d83904c943c3ea93fdf5546c6c3f1..7be691a9fdda6f1bd2c0b8d60d66f7f481e44ddf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
 *.jar
 !gradle/wrapper/gradle-wrapper.jar
+.project
+.classpath
 .idea/
 .gradle/
 build
diff --git a/.project b/.project
deleted file mode 100644
index 3b5285d5092ae683ec1c43d4a8c53d19ef1088a2..0000000000000000000000000000000000000000
--- a/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>rel-rag</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/src/main/jastadd/RelAst.parser b/src/main/jastadd/RelAst.parser
index 32236a483b646c518fd69c9fc383c9ec594bc09c..12a7044e722f07ebce04c83fb4f37dc0a3f15c13 100644
--- a/src/main/jastadd/RelAst.parser
+++ b/src/main/jastadd/RelAst.parser
@@ -40,13 +40,11 @@ ArrayList inner_type_use
     ;
 
 TypeUse type_use =
-//    s_type_use.u                {: return u; :}
-//  |
   parameterized_type_use.p    {: return p; :}
   | inner_type_use.p            {: return new SimpleTypeUse((String)p.stream().map( x -> ((Symbol)x).value.toString()).collect(java.util.stream.Collectors.joining("."))); :}
   ;
 ParameterizedTypeUse parameterized_type_use =
-  ID LT type_use_list.l GT      {: return new ParameterizedTypeUse(ID, l); :}
+  inner_type_use.i LT type_use_list.l GT      {: return new ParameterizedTypeUse((String)i.stream().map( x -> ((Symbol)x).value.toString()).collect(java.util.stream.Collectors.joining(".")), l); :}
   ;
 List type_use_list =
   type_use.u                              {: return new List().add(u); :}
diff --git a/src/test/jastadd/relations/Relations.relast b/src/test/jastadd/relations/Relations.relast
index 498e4fcf2553c37020ae9b53e64b3cd0f5703fb7..12f132e5e58968baff38120d79fde1090151acf8 100644
--- a/src/test/jastadd/relations/Relations.relast
+++ b/src/test/jastadd/relations/Relations.relast
@@ -50,6 +50,7 @@ D ::= SingleA:A ListOfA:A* [OptionalA:A] /NTAA:A/ ;
 
 // production with tokens, nonterminal-tokens, multi-line
 E ::= <T1> <T2:String> <T3:boolean> <T4:int> <T5:float> <T6:double> <T7:long>
+      <T8:java.lang.Object> <T9:ArrayList<String>> <T10:java.util.ArrayList<java.lang.String>>
       /<NT2:String>/ /<NT3:boolean>/ /<NT4:int>/ /<NT5:float>/ /<NT6:double>/ /<NT7:long>/ ;
 
 rel E.NT1 -> A ;