diff --git a/src/main/scala/leon/utils/Library.scala b/src/main/scala/leon/utils/Library.scala
index d80fd76a0a1188423d01763f4392c6e376db9b7a..7cc8915d789bfae62a715676abef549402ca575d 100644
--- a/src/main/scala/leon/utils/Library.scala
+++ b/src/main/scala/leon/utils/Library.scala
@@ -7,12 +7,12 @@ import purescala.Definitions._
 import purescala.DefOps.searchByFullName
 
 case class Library(pgm: Program) {
-  lazy val List = lookup("leon.collection.List")
-  lazy val Cons = lookup("leon.collection.Cons")
-  lazy val Nil  = lookup("leon.collection.Nil")
-
-  lazy val String = lookup("leon.lang.string.String")
+  lazy val List = lookup("leon.collection.List") collect { case acd : AbstractClassDef => acd }
+  lazy val Cons = lookup("leon.collection.Cons") collect { case ccd : CaseClassDef => ccd }
+  lazy val Nil  = lookup("leon.collection.Nil") collect { case ccd : CaseClassDef => ccd }
 
+  lazy val String = lookup("leon.lang.string.String") collect { case ccd : CaseClassDef => ccd }
+  
   def lookup(name: String): Option[Definition] = {
     searchByFullName(name, pgm)
   }