diff --git a/src/main/resources/AsA.mustache b/src/main/resources/AsA.mustache
index f067f632a3958e5cddeb37cf1de2c684971cd535..630068ece8b09424b25226d1a0d8150a8a329b2f 100644
--- a/src/main/resources/AsA.mustache
+++ b/src/main/resources/AsA.mustache
@@ -11,7 +11,7 @@
 {{/useOptionals}}
 {{/useExceptions}}
  */
-syn {{typeName}} {{typeName}}.as{{subtypeName}}();
+syn {{subtypeName}} {{typeName}}.as{{subtypeName}}();
 {{#useExceptions}}
 eq {{typeName}}.as{{subtypeName}}() {
   throw new {{exceptionName}}();
diff --git a/src/main/resources/IsA.mustache b/src/main/resources/IsA.mustache
index 836d28bfbba94c618cd049018c6b1a2e4728f44d..331e687609a503766d0284f03e85a85d35894f86 100644
--- a/src/main/resources/IsA.mustache
+++ b/src/main/resources/IsA.mustache
@@ -1,5 +1,5 @@
 /** Tests if {{typeName}} is a {{subtypeName}}.
 *  @return 'true' if this is a {{subtypeName}}, otherwise 'false'
 */
-syn {{typeName}} {{typeName}}.is{{subtypeName}}() = false;
+syn boolean {{typeName}}.is{{subtypeName}}() = false;
 eq {{subtypeName}}.is{{subtypeName}}() = true;
diff --git a/src/test/resources/SimpleInheritance/customexception/expected/Navigation.jrag b/src/test/resources/SimpleInheritance/customexception/expected/Navigation.jrag
index 55d5db559fdc30acca9761132ae030dc91b579bd..a364b9ed4c2f755c25368ce7a35279f6c541440f 100644
--- a/src/test/resources/SimpleInheritance/customexception/expected/Navigation.jrag
+++ b/src/test/resources/SimpleInheritance/customexception/expected/Navigation.jrag
@@ -3,19 +3,19 @@ aspect Navigation {
   /** Tests if A is a A1.
   *  @return 'true' if this is a A1, otherwise 'false'
   */
-  syn A A.isA1() = false;
+  syn boolean A.isA1() = false;
   eq A1.isA1() = true;
 
   /** Tests if A is a A2.
   *  @return 'true' if this is a A2, otherwise 'false'
   */
-  syn A A.isA2() = false;
+  syn boolean A.isA2() = false;
   eq A2.isA2() = true;
 
   /** casts a A into a A1 if possible.
    *  @return 'this' cast to a A1 or a 
    */
-  syn A A.asA1();
+  syn A1 A.asA1();
   eq A.asA1() {
     throw new java.lang.ClassCastException();
   }
@@ -24,7 +24,7 @@ aspect Navigation {
   /** casts a A into a A2 if possible.
    *  @return 'this' cast to a A2 or a 
    */
-  syn A A.asA2();
+  syn A2 A.asA2();
   eq A.asA2() {
     throw new java.lang.ClassCastException();
   }
diff --git a/src/test/resources/SimpleInheritance/default/expected/Navigation.jrag b/src/test/resources/SimpleInheritance/default/expected/Navigation.jrag
index 122676a2e46ea161ee0c4e23edefd436771f71c5..861b67b0bedd9f1e5164ba2000ced6305a7b14ce 100644
--- a/src/test/resources/SimpleInheritance/default/expected/Navigation.jrag
+++ b/src/test/resources/SimpleInheritance/default/expected/Navigation.jrag
@@ -3,26 +3,26 @@ aspect Navigation {
   /** Tests if A is a A1.
   *  @return 'true' if this is a A1, otherwise 'false'
   */
-  syn A A.isA1() = false;
+  syn boolean A.isA1() = false;
   eq A1.isA1() = true;
 
   /** Tests if A is a A2.
   *  @return 'true' if this is a A2, otherwise 'false'
   */
-  syn A A.isA2() = false;
+  syn boolean A.isA2() = false;
   eq A2.isA2() = true;
 
   /** casts a A into a A1 if possible.
    *  @return 'this' cast to a A1 or 'null'
    */
-  syn A A.asA1();
+  syn A1 A.asA1();
   eq A.asA1() = null;
   eq A1.asA1() = this;
 
   /** casts a A into a A2 if possible.
    *  @return 'this' cast to a A2 or 'null'
    */
-  syn A A.asA2();
+  syn A2 A.asA2();
   eq A.asA2() = null;
   eq A2.asA2() = this;
 
diff --git a/src/test/resources/SimpleInheritance/exception/expected/Navigation.jrag b/src/test/resources/SimpleInheritance/exception/expected/Navigation.jrag
index fff733380e95bb6fba171ba4b47508d8e27c932a..7fbfa0fea995bd27eb30c2d69ca2cb807ad6bfdf 100644
--- a/src/test/resources/SimpleInheritance/exception/expected/Navigation.jrag
+++ b/src/test/resources/SimpleInheritance/exception/expected/Navigation.jrag
@@ -3,19 +3,19 @@ aspect Navigation {
   /** Tests if A is a A1.
   *  @return 'true' if this is a A1, otherwise 'false'
   */
-  syn A A.isA1() = false;
+  syn boolean A.isA1() = false;
   eq A1.isA1() = true;
 
   /** Tests if A is a A2.
   *  @return 'true' if this is a A2, otherwise 'false'
   */
-  syn A A.isA2() = false;
+  syn boolean A.isA2() = false;
   eq A2.isA2() = true;
 
   /** casts a A into a A1 if possible.
    *  @return 'this' cast to a A1 or a 
    */
-  syn A A.asA1();
+  syn A1 A.asA1();
   eq A.asA1() {
     throw new RuntimeException();
   }
@@ -24,7 +24,7 @@ aspect Navigation {
   /** casts a A into a A2 if possible.
    *  @return 'this' cast to a A2 or a 
    */
-  syn A A.asA2();
+  syn A2 A.asA2();
   eq A.asA2() {
     throw new RuntimeException();
   }
diff --git a/src/test/resources/SimpleInheritance/null/expected/Navigation.jrag b/src/test/resources/SimpleInheritance/null/expected/Navigation.jrag
index 122676a2e46ea161ee0c4e23edefd436771f71c5..861b67b0bedd9f1e5164ba2000ced6305a7b14ce 100644
--- a/src/test/resources/SimpleInheritance/null/expected/Navigation.jrag
+++ b/src/test/resources/SimpleInheritance/null/expected/Navigation.jrag
@@ -3,26 +3,26 @@ aspect Navigation {
   /** Tests if A is a A1.
   *  @return 'true' if this is a A1, otherwise 'false'
   */
-  syn A A.isA1() = false;
+  syn boolean A.isA1() = false;
   eq A1.isA1() = true;
 
   /** Tests if A is a A2.
   *  @return 'true' if this is a A2, otherwise 'false'
   */
-  syn A A.isA2() = false;
+  syn boolean A.isA2() = false;
   eq A2.isA2() = true;
 
   /** casts a A into a A1 if possible.
    *  @return 'this' cast to a A1 or 'null'
    */
-  syn A A.asA1();
+  syn A1 A.asA1();
   eq A.asA1() = null;
   eq A1.asA1() = this;
 
   /** casts a A into a A2 if possible.
    *  @return 'this' cast to a A2 or 'null'
    */
-  syn A A.asA2();
+  syn A2 A.asA2();
   eq A.asA2() = null;
   eq A2.asA2() = this;
 
diff --git a/src/test/resources/SimpleInheritance/optional/expected/Navigation.jrag b/src/test/resources/SimpleInheritance/optional/expected/Navigation.jrag
index fe1ab5f1e8afc2901c56f94b468f484acb4d21c3..eb330f1df130c505e86f6b6e216bda10ae6d6d08 100644
--- a/src/test/resources/SimpleInheritance/optional/expected/Navigation.jrag
+++ b/src/test/resources/SimpleInheritance/optional/expected/Navigation.jrag
@@ -3,26 +3,26 @@ aspect Navigation {
   /** Tests if A is a A1.
   *  @return 'true' if this is a A1, otherwise 'false'
   */
-  syn A A.isA1() = false;
+  syn boolean A.isA1() = false;
   eq A1.isA1() = true;
 
   /** Tests if A is a A2.
   *  @return 'true' if this is a A2, otherwise 'false'
   */
-  syn A A.isA2() = false;
+  syn boolean A.isA2() = false;
   eq A2.isA2() = true;
 
   /** casts a A into a A1 if possible.
    *  @return an Optional of 'this' cast to a A1 or an empty Optional
    */
-  syn A A.asA1();
+  syn A1 A.asA1();
   eq A.asA1() = java.util.Optional.empty();
   eq .asA1() = java.util.Optional.of(this);
 
   /** casts a A into a A2 if possible.
    *  @return an Optional of 'this' cast to a A2 or an empty Optional
    */
-  syn A A.asA2();
+  syn A2 A.asA2();
   eq A.asA2() = java.util.Optional.empty();
   eq .asA2() = java.util.Optional.of(this);