diff --git a/src/qir/QIRLanguage.java b/src/qir/QIRLanguage.java
index dc1f24dd7754261750ac884ae7236dcf33591b0c..1fc7a9893515a31de39f07d24f51f8fa398f1a4a 100644
--- a/src/qir/QIRLanguage.java
+++ b/src/qir/QIRLanguage.java
@@ -9,7 +9,7 @@ import qir.runtime.QIRContext;
  * QIR (Query Intermediate Language) is a language that aims to be able to encode any query from any
  * language or database.
  */
-@TruffleLanguage.Registration(name = "QIR", version = "0.20", mimeType = QIRLanguage.MIME_TYPE)
+@TruffleLanguage.Registration(name = "QIR", version = "0.20", id = "QIR")
 public final class QIRLanguage extends TruffleLanguage<QIRContext> {
     public static final String MIME_TYPE = "application/x-qir";
 
diff --git a/src/qir/typing/QIRGenericTypeSystemVisitor.java b/src/qir/typing/QIRGenericTypeSystemVisitor.java
index 1db63adaac8e092c49ae2a0e2c5d2f54d7026976..b75060cd43b9fc2403294e04cec8a92df7f0a412 100644
--- a/src/qir/typing/QIRGenericTypeSystemVisitor.java
+++ b/src/qir/typing/QIRGenericTypeSystemVisitor.java
@@ -64,9 +64,9 @@ public final class QIRGenericTypeSystemVisitor extends QIRTypeSystemVisitor {
     private static final QIRType tryTyping(final QIRNode expr) {
         for (Class<? extends QIRSpecificTypeSystem> specificTypeSystem : specificTypeSystems)
             try {
-                return expr.setType(expr.accept(specificTypeSystem.newInstance()), specificTypeSystem);
+                return expr.setType(expr.accept(specificTypeSystem.getDeclaredConstructor().newInstance()), specificTypeSystem);
             } catch (final QIRTypeErrorException e) {
-            } catch (final InstantiationException | IllegalAccessException e) {
+            } catch (final Exception e) {
                 throw new QIRException("Internal error: " + specificTypeSystem.getName() + " could not be instantiated.");
             }
         try {