← Back to team overview

zorba-coders team mailing list archive

[Merge] lp:~zorba-coders/zorba/cast-to-simple-type into lp:zorba

 

Markos Zaharioudakis has proposed merging lp:~zorba-coders/zorba/cast-to-simple-type into lp:zorba.

Commit message:
Casting to simple types (as specified by XQuery 3.0)

Requested reviews:
  Markos Zaharioudakis (markos-za)

For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/cast-to-simple-type/+merge/141029

Casting to simple types (as specified by XQuery 3.0)
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~zorba-coders/zorba/cast-to-simple-type/+merge/141029
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'include/zorba/pregenerated/diagnostic_list.h'
--- include/zorba/pregenerated/diagnostic_list.h	2012-12-14 21:50:53 +0000
+++ include/zorba/pregenerated/diagnostic_list.h	2012-12-21 04:50:43 +0000
@@ -98,6 +98,8 @@
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0049;
 
+extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0052;
+
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0054;
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0055;

=== modified file 'modules/w3c/pregenerated/xqt-errors.xq'
--- modules/w3c/pregenerated/xqt-errors.xq	2012-12-03 18:29:05 +0000
+++ modules/w3c/pregenerated/xqt-errors.xq	2012-12-21 04:50:43 +0000
@@ -385,6 +385,15 @@
 
 (:~
  :
+ : The type must be the name of a type defined in the in-scope schema types,
+ : and the {variety} of the type must be simple.
+ : 
+ : @see http://www.w3.org/2005/xqt-errors
+:)
+declare variable $err:XQST0052 as xs:QName := fn:QName($err:NS, "err:XQST0052");
+
+(:~
+ :
  : It is a static error if a variable depends on itself.
  : 
  : @see http://www.w3.org/2005/xqt-errors

=== modified file 'src/api/dynamiccontextimpl.cpp'
--- src/api/dynamiccontextimpl.cpp	2012-11-28 12:32:38 +0000
+++ src/api/dynamiccontextimpl.cpp	2012-12-21 04:50:43 +0000
@@ -294,9 +294,17 @@
 
     // For string items, check that the value is a valid Unicode codepoint sequence
     const char* invalid_char;
-
-    if (value->isStreamable() == false && value->isAtomic())
+<<<<<<< TREE
+
+    if (value->isStreamable() == false && value->isAtomic())
+=======
+    TypeManager* tm = theStaticContext->get_typemanager();
+    RootTypeManager& rtm = GENV_TYPESYSTEM;
+
+    if (value->isStreamable() == false && value->isAtomic())
+>>>>>>> MERGE-SOURCE
     {
+<<<<<<< TREE
       store::SchemaTypeCode itemTypeCode = value->getTypeCode();
 
       if (TypeOps::is_subtype(itemTypeCode, store::XS_STRING) &&
@@ -307,6 +315,18 @@
         BUILD_STRING(std::uppercase << std::hex
                      << (static_cast<unsigned int>(*invalid_char) & 0xFF)) ));
       }
+=======
+      xqtref_t itemType = tm->create_value_type(value);
+
+      if (TypeOps::is_equal(tm, *itemType, *rtm.STRING_TYPE_ONE, QueryLoc::null) &&
+          (invalid_char = utf8::validate(value->getStringValue().c_str())) != NULL)
+      {
+        throw XQUERY_EXCEPTION(err::FOCH0001,
+        ERROR_PARAMS(zstring("#x") +
+        BUILD_STRING(std::uppercase << std::hex
+                     << (static_cast<unsigned int>(*invalid_char) & 0xFF)) ));
+      }
+>>>>>>> MERGE-SOURCE
     }
 
     VarInfo* var = NULL;

=== modified file 'src/compiler/expression/expr_type.cpp'
--- src/compiler/expression/expr_type.cpp	2012-12-06 22:49:35 +0000
+++ src/compiler/expression/expr_type.cpp	2012-12-21 04:50:43 +0000
@@ -367,12 +367,31 @@
     {
       newType = rtm.EMPTY_TYPE;
     }
-    else
+    else if (TypeOps::has_atomic_itemtype(tm, *e->theTargetType))
     {
       TypeConstants::quantifier_t q = TypeOps::intersect_quant(argQuant, targetQuant);
 
       newType = tm->create_type(*e->theTargetType, q);
     }
+    else
+    {
+      ZORBA_ASSERT(e->theTargetType->type_kind() == XQType::USER_DEFINED_KIND);
+
+      const UserDefinedXQType* targetType = 
+      static_cast<const UserDefinedXQType*>(e->theTargetType.getp());
+
+      if (targetType->isList())
+      {
+        newType = NULL;
+      }
+      else
+      {
+        TypeConstants::quantifier_t q = TypeOps::intersect_quant(argQuant, targetQuant);
+
+        newType = tm->create_type(*e->theTargetType, q);
+      }
+    }
+
     break;
   }
 

=== modified file 'src/compiler/parser/xquery_parser.cpp'
--- src/compiler/parser/xquery_parser.cpp	2012-10-08 12:09:36 +0000
+++ src/compiler/parser/xquery_parser.cpp	2012-12-21 04:50:43 +0000
@@ -38,7 +38,7 @@
 /* First part of user declarations.  */
 
 /* Line 311 of lalr1.cc  */
-#line 87 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 87 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 
 
 #include "common/common.h"
@@ -75,7 +75,7 @@
 
 
 /* Line 311 of lalr1.cc  */
-#line 79 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 79 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 
 
 #include "xquery_parser.hpp"
@@ -83,7 +83,7 @@
 /* User implementation prologue.  */
 
 /* Line 317 of lalr1.cc  */
-#line 908 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 909 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 
 // HACK to trigger rchandle release: rchandles are freed when refcount == 0
 // (not <= 0); but Bison never increments the refcount, so we do it manually...
@@ -95,7 +95,7 @@
 }
 
 /* Line 317 of lalr1.cc  */
-#line 1033 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1034 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 
 #include "compiler/parser/xquery_scanner.h"
 
@@ -105,7 +105,7 @@
 
 
 /* Line 317 of lalr1.cc  */
-#line 109 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 109 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 
 #ifndef YY_
 # if YYENABLE_NLS
@@ -174,7 +174,7 @@
 namespace zorba {
 
 /* Line 380 of lalr1.cc  */
-#line 178 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 178 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 #if YYERROR_VERBOSE
 
   /* Return YYSTR after stripping away unnecessary quotes and
@@ -277,2522 +277,2531 @@
         case 110: /* "\"'DECIMAL'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 906 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 907 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->decval); };
 
 /* Line 480 of lalr1.cc  */
-#line 285 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 285 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 124: /* "\"'DOUBLE'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 905 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 906 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->dval); };
 
 /* Line 480 of lalr1.cc  */
-#line 294 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 294 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 149: /* "\"'INTEGER'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 904 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 905 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->ival); };
 
 /* Line 480 of lalr1.cc  */
-#line 303 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 303 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 338: /* "VersionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 312 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 312 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 339: /* "MainModule" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 321 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 321 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 340: /* "LibraryModule" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 330 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 330 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 341: /* "ModuleDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 339 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 339 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 342: /* "SIND_DeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 348 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 348 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 343: /* "SIND_Decl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 357 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 357 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 344: /* "Setter" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 366 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 366 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 345: /* "BoundarySpaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 375 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 375 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 346: /* "DefaultCollationDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 384 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 384 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 347: /* "BaseURIDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 393 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 393 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 348: /* "ConstructionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 402 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 402 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 349: /* "OrderingModeDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 411 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 411 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 350: /* "EmptyOrderDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 420 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 420 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 351: /* "CopyNamespacesDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 429 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 429 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 352: /* "Import" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 438 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 438 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 353: /* "SchemaImport" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 447 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 447 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 354: /* "URILiteralList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 456 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 456 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 355: /* "SchemaPrefix" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 465 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 465 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 356: /* "ModuleImport" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 474 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 474 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 357: /* "NamespaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 483 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 483 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 358: /* "DefaultNamespaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 492 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 492 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 359: /* "VFO_DeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 501 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 501 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 360: /* "VFO_Decl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 510 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 510 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 361: /* "DecimalFormatDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 519 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 519 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 362: /* "DecimalFormatParamList" */
 
 /* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->vstrpair); };
 
 /* Line 480 of lalr1.cc  */
-#line 528 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 528 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 363: /* "DecimalFormatParam" */
 
 /* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->strpair); };
 
 /* Line 480 of lalr1.cc  */
-#line 537 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 537 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 365: /* "OptionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 546 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 546 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 366: /* "FTOptionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 555 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 555 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 367: /* "CtxItemDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 564 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 564 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 368: /* "CtxItemDecl2" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 573 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 573 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 369: /* "CtxItemDecl3" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 582 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 582 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 370: /* "CtxItemDecl4" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 591 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 591 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 371: /* "VarDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 600 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 600 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 372: /* "VarNameAndType" */
 
 /* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->varnametype); };
 
 /* Line 480 of lalr1.cc  */
-#line 609 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 609 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 373: /* "AnnotationList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 618 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 618 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 374: /* "Annotation" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 627 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 627 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 375: /* "AnnotationLiteralList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 636 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 636 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 376: /* "FunctionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 645 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 645 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 377: /* "FunctionDecl2" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 654 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 654 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 378: /* "FunctionDeclSimple" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 663 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 663 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 379: /* "FunctionDeclUpdating" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 672 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 672 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 380: /* "FunctionSig" */
 
 /* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->fnsig); };
 
 /* Line 480 of lalr1.cc  */
-#line 681 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 681 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 381: /* "ParamList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 690 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 690 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 382: /* "Param" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 699 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 699 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 383: /* "CollectionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 708 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 708 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 385: /* "IndexDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 717 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 717 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 386: /* "IndexKeyList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 726 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 726 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 387: /* "IndexKeySpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 735 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 735 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 388: /* "IntegrityConstraintDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 744 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 744 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 389: /* "QueryBody" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 753 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 753 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 390: /* "StatementsAndOptionalExprTop" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 762 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 762 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 391: /* "StatementsAndOptionalExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 771 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 771 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 392: /* "StatementsAndExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 780 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 780 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 393: /* "Statements" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 789 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 789 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 394: /* "Statement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 798 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 798 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 395: /* "BlockStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 807 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 807 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 396: /* "BlockExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 816 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 816 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 397: /* "EnclosedStatementsAndOptionalExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 825 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 825 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 398: /* "VarDeclStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 834 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 834 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 401: /* "AssignStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 843 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 843 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 402: /* "ApplyStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 852 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 852 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 403: /* "ExitStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 861 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 861 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 404: /* "WhileStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 870 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 870 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 405: /* "FlowCtlStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 879 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 879 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 406: /* "FLWORStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 888 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 888 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 407: /* "ReturnStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 897 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 897 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 408: /* "IfStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 906 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 906 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 409: /* "TryStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 915 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 915 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 410: /* "CatchListStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 924 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 411: /* "CatchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 933 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 412: /* "Expr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 942 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 942 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 413: /* "ExprSingle" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 951 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 951 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 414: /* "ExprSimple" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 960 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 960 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 415: /* "FLWORExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 969 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 969 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 416: /* "ReturnExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 978 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 978 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 419: /* "FLWORWinCond" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 987 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 987 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 420: /* "WindowClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 996 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 996 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 421: /* "CountClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1005 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1005 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 422: /* "ForLetWinClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1014 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1014 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 424: /* "FLWORClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1023 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1023 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 425: /* "ForClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1032 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1032 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 426: /* "VarInDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1041 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1041 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 427: /* "VarInDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1050 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1050 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 428: /* "PositionalVar" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1059 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1059 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 429: /* "FTScoreVar" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1068 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1068 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 430: /* "LetClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1077 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1077 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 431: /* "VarGetsDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1086 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1086 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 432: /* "VarGetsDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1095 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1095 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 433: /* "WindowVarDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1104 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1104 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 434: /* "WindowVars" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1113 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1113 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 435: /* "WindowVars3" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1122 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1122 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 436: /* "WindowVars2" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1131 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1131 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 437: /* "WhereClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1140 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1140 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 438: /* "GroupByClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1149 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1149 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 439: /* "GroupSpecList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1158 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1158 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 440: /* "GroupSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1167 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1167 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 441: /* "GroupCollationSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1176 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1176 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 442: /* "OrderByClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1185 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1185 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 443: /* "OrderSpecList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1194 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1194 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 444: /* "OrderSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1203 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1203 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 445: /* "OrderModifier" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1212 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1212 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 446: /* "OrderDirSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1221 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1221 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 447: /* "OrderEmptySpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1230 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1230 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 448: /* "OrderCollationSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1239 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1239 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 449: /* "QuantifiedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1248 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1248 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 450: /* "QVarInDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1257 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1257 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 451: /* "QVarInDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1266 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1266 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 452: /* "SwitchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1275 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1275 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 453: /* "SwitchCaseClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1284 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1284 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 454: /* "SwitchCaseClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1293 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1293 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 455: /* "SwitchCaseOperandList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1302 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1302 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 456: /* "SwitchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1311 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1311 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 459: /* "TypeswitchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1320 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1320 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 460: /* "TypeswitchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1329 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1329 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 461: /* "CaseClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1338 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1338 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 462: /* "CaseClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1347 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1347 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 465: /* "IfExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1356 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1356 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 466: /* "OrExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1365 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1365 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 467: /* "AndExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1374 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1374 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 468: /* "ComparisonExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1383 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1383 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 470: /* "FTContainsExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1392 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1392 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 471: /* "StringConcatExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1401 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1401 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 472: /* "opt_FTIgnoreOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1410 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1410 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 473: /* "RangeExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1419 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1419 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 474: /* "AdditiveExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1428 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1428 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 475: /* "MultiplicativeExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1437 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1437 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 476: /* "UnionExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1446 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1446 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 477: /* "IntersectExceptExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1455 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1455 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 478: /* "InstanceofExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1464 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1464 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 479: /* "TreatExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1473 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1473 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 480: /* "CastableExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1482 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 1482 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 481: /* "CastExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1491 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 482: /* "UnaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1500 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 483: /* "SignList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1509 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 484: /* "ValueExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1518 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 485: /* "SimpleMapExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1527 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 486: /* "ValueComp" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1536 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 487: /* "NodeComp" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1545 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 488: /* "ValidateExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1554 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 489: /* "ExtensionExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1563 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 490: /* "Pragma_list" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1572 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 491: /* "Pragma" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1581 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 492: /* "PathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1590 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 494: /* "RelativePathExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1599 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 495: /* "StepExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1608 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 496: /* "AxisStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1617 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 497: /* "ForwardStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1626 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 498: /* "ForwardAxis" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1635 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 499: /* "AbbrevForwardStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1644 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 500: /* "ReverseStep" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1653 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 501: /* "ReverseAxis" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1662 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 502: /* "NodeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1671 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 503: /* "NameTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1680 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 504: /* "Wildcard" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1689 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 505: /* "FilterExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1698 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 506: /* "PredicateList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1707 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 507: /* "Predicate" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1716 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 508: /* "PrimaryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1725 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 509: /* "Literal" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1734 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 510: /* "NumericLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1743 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 511: /* "VarRef" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1752 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 512: /* "ParenthesizedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1761 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 513: /* "ContextItemExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1770 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 514: /* "OrderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1779 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 515: /* "UnorderedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1788 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 516: /* "FunctionCall" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1797 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 517: /* "ArgList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1806 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 518: /* "Constructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1815 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 519: /* "DirectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1824 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 520: /* "DirElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1833 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 521: /* "DirElemContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1842 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 522: /* "DirAttributeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1851 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 523: /* "DirAttr" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1860 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 525: /* "DirAttributeValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1869 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 526: /* "opt_QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1878 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 527: /* "QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1887 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 528: /* "opt_AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1896 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 529: /* "AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1905 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 530: /* "QuoteAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1914 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 531: /* "AposAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1923 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 532: /* "DirElemContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1932 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 533: /* "CommonContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1941 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 534: /* "DirCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1950 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 535: /* "DirPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1959 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 536: /* "CDataSection" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1968 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 537: /* "ComputedConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1977 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 538: /* "CompDocConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1986 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 539: /* "CompElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1995 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 540: /* "CompAttrConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2004 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 541: /* "CompTextConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2013 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 542: /* "CompCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2022 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 543: /* "CompPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2031 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 544: /* "SingleType" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2040 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1491 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 482: /* "SingleType" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1500 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 483: /* "UnaryExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1509 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 484: /* "SignList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1518 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 485: /* "ValueExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1527 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 486: /* "SimpleMapExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1536 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 487: /* "ValueComp" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1545 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 488: /* "NodeComp" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1554 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 489: /* "ValidateExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1563 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 490: /* "ExtensionExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1572 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 491: /* "Pragma_list" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1581 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 492: /* "Pragma" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1590 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 493: /* "PathExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1599 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 495: /* "RelativePathExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1608 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 496: /* "StepExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1617 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 497: /* "AxisStep" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1626 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 498: /* "ForwardStep" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1635 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 499: /* "ForwardAxis" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1644 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 500: /* "AbbrevForwardStep" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1653 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 501: /* "ReverseStep" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1662 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 502: /* "ReverseAxis" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1671 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 503: /* "NodeTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1680 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 504: /* "NameTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1689 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 505: /* "Wildcard" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1698 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 506: /* "FilterExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1707 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 507: /* "PredicateList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1716 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 508: /* "Predicate" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1725 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 509: /* "PrimaryExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1734 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 510: /* "Literal" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1743 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 511: /* "NumericLiteral" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1752 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 512: /* "VarRef" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1761 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 513: /* "ParenthesizedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1770 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 514: /* "ContextItemExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1779 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 515: /* "OrderedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1788 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 516: /* "UnorderedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1797 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 517: /* "FunctionCall" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1806 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 518: /* "ArgList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1815 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 519: /* "Constructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1824 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 520: /* "DirectConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1833 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 521: /* "DirElemConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1842 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 522: /* "DirElemContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1851 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 523: /* "DirAttributeList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1860 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 524: /* "DirAttr" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1869 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 526: /* "DirAttributeValue" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1878 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 527: /* "opt_QuoteAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1887 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 528: /* "QuoteAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1896 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 529: /* "opt_AposAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1905 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 530: /* "AposAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1914 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 531: /* "QuoteAttrValueContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1923 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 532: /* "AposAttrValueContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1932 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 533: /* "DirElemContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1941 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 534: /* "CommonContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1950 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 535: /* "DirCommentConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1959 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 536: /* "DirPIConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1968 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 537: /* "CDataSection" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1977 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 538: /* "ComputedConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1986 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 539: /* "CompDocConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1995 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 540: /* "CompElemConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2004 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 541: /* "CompAttrConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2013 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 542: /* "CompTextConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2022 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 543: /* "CompCommentConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2031 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 544: /* "CompPIConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2040 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 545: /* "TypeDeclaration" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2049 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 2049 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 546: /* "SequenceType" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2058 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 2058 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 547: /* "OccurrenceIndicator" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2067 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 2067 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 548: /* "ItemType" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2076 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 2076 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 549: /* "TypeList" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2085 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 2085 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 550: /* "AtomicType" */
 
 /* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2094 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 551: /* "KindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2103 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 552: /* "AnyKindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2112 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 553: /* "DocumentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2121 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 554: /* "TextTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2130 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 555: /* "CommentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2139 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 556: /* "PITest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2148 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 557: /* "AttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2157 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 558: /* "SchemaAttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2166 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 559: /* "ElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2175 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 560: /* "SchemaElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2184 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 561: /* "TypeName" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2193 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 562: /* "TypeName_WITH_HOOK" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2202 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 563: /* "StringLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2211 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 568: /* "AnyFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2220 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 569: /* "TypedFunctionTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2229 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 572: /* "InsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2238 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 573: /* "DeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2247 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 574: /* "ReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2256 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 575: /* "RenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2265 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 576: /* "TransformExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2274 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 577: /* "VarNameList" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2283 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 578: /* "VarNameDecl" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2292 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 579: /* "TryExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2301 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 580: /* "CatchListExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2310 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 581: /* "CatchExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2319 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 582: /* "BracedExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2328 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 583: /* "NameTestList" */
-
-/* Line 480 of lalr1.cc  */
-#line 932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2094 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 551: /* "SimpleType" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2103 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 552: /* "KindTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2112 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 553: /* "AnyKindTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2121 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 554: /* "DocumentTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2130 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 555: /* "TextTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2139 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 556: /* "CommentTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2148 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 557: /* "PITest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2157 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 558: /* "AttributeTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2166 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 559: /* "SchemaAttributeTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2175 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 560: /* "ElementTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2184 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 561: /* "SchemaElementTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2193 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 562: /* "TypeName" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2202 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 563: /* "TypeName_WITH_HOOK" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2211 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 564: /* "StringLiteral" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2220 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 569: /* "AnyFunctionTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2229 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 570: /* "TypedFunctionTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 921 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2238 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 573: /* "InsertExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2247 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 574: /* "DeleteExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2256 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 575: /* "ReplaceExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2265 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 576: /* "RenameExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2274 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 577: /* "TransformExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2283 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 578: /* "VarNameList" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2292 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 579: /* "VarNameDecl" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2301 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 580: /* "TryExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2310 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 581: /* "CatchListExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2319 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 582: /* "CatchExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2328 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 583: /* "BracedExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2337 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 584: /* "NameTestList" */
+
+/* Line 480 of lalr1.cc  */
+#line 933 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->name_test_list); };
 
 /* Line 480 of lalr1.cc  */
-#line 2337 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 584: /* "FTSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2346 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 587: /* "FTOr" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2355 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 588: /* "FTAnd" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2364 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 589: /* "FTMildNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2373 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 590: /* "FTUnaryNot" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2382 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 591: /* "FTPrimaryWithOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2391 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 592: /* "opt_FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2400 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 594: /* "FTWeight" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2409 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 595: /* "FTPrimary" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2418 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 596: /* "opt_FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2427 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 597: /* "FTExtensionSelection" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2436 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 599: /* "FTWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2445 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 600: /* "FTWordsValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2454 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 602: /* "FTAnyallOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2463 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 605: /* "FTPosFilter" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2472 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 606: /* "FTOrder" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2481 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 607: /* "FTWindow" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2490 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 608: /* "FTDistance" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2499 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 609: /* "FTUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2508 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 610: /* "FTMatchOptions" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2517 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 611: /* "FTMatchOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2526 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 612: /* "FTCaseOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2535 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 613: /* "FTDiacriticsOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2544 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 614: /* "FTExtensionOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2553 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 615: /* "FTStemOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2562 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 616: /* "FTThesaurusOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2571 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 620: /* "FTThesaurusID" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2580 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 623: /* "FTStopWordOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2589 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 624: /* "FTStopWords" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2598 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 628: /* "FTStopWordsInclExcl" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2607 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 629: /* "FTLanguageOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2616 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 630: /* "FTWildCardOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2625 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 631: /* "FTContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2634 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 632: /* "FTTimes" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2643 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 633: /* "FTRange" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2652 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 634: /* "FTScope" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2661 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 635: /* "FTBigUnit" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2670 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 636: /* "FTIgnoreOption" */
-
-/* Line 480 of lalr1.cc  */
-#line 923 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2679 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 637: /* "JSONArrayConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2688 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 638: /* "JSONSimpleObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2697 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 639: /* "JSONAccumulatorObjectUnion" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2706 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 640: /* "JSONObjectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2715 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 641: /* "JSONPairList" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2724 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 642: /* "JSONInsertExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2733 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 643: /* "JSONAppendExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2742 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 644: /* "JSONDeleteExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2751 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 645: /* "JSONRenameExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2760 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 646: /* "JSONReplaceExpr" */
-
-/* Line 480 of lalr1.cc  */
-#line 926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2769 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 653: /* "QNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2778 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 654: /* "FUNCTION_NAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2787 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 655: /* "EQNAME" */
-
-/* Line 480 of lalr1.cc  */
-#line 929 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2796 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 2346 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 585: /* "FTSelection" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2355 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 588: /* "FTOr" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2364 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 589: /* "FTAnd" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2373 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 590: /* "FTMildNot" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2382 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 591: /* "FTUnaryNot" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2391 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 592: /* "FTPrimaryWithOptions" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2400 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 593: /* "opt_FTMatchOptions" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2409 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 595: /* "FTWeight" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2418 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 596: /* "FTPrimary" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2427 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 597: /* "opt_FTTimes" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2436 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 598: /* "FTExtensionSelection" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2445 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 600: /* "FTWords" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2454 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 601: /* "FTWordsValue" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2463 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 603: /* "FTAnyallOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2472 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 606: /* "FTPosFilter" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2481 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 607: /* "FTOrder" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2490 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 608: /* "FTWindow" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2499 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 609: /* "FTDistance" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2508 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 610: /* "FTUnit" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2517 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 611: /* "FTMatchOptions" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2526 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 612: /* "FTMatchOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2535 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 613: /* "FTCaseOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2544 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 614: /* "FTDiacriticsOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2553 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 615: /* "FTExtensionOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2562 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 616: /* "FTStemOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2571 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 617: /* "FTThesaurusOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2580 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 621: /* "FTThesaurusID" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2589 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 624: /* "FTStopWordOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2598 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 625: /* "FTStopWords" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2607 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 629: /* "FTStopWordsInclExcl" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2616 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 630: /* "FTLanguageOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2625 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 631: /* "FTWildCardOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2634 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 632: /* "FTContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2643 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 633: /* "FTTimes" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2652 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 634: /* "FTRange" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2661 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 635: /* "FTScope" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2670 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 636: /* "FTBigUnit" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2679 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 637: /* "FTIgnoreOption" */
+
+/* Line 480 of lalr1.cc  */
+#line 924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2688 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 638: /* "JSONArrayConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2697 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 639: /* "JSONSimpleObjectUnion" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2706 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 640: /* "JSONAccumulatorObjectUnion" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2715 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 641: /* "JSONObjectConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2724 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 642: /* "JSONPairList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2733 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 643: /* "JSONInsertExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2742 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 644: /* "JSONAppendExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2751 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 645: /* "JSONDeleteExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2760 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 646: /* "JSONRenameExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2769 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 647: /* "JSONReplaceExpr" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2778 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 654: /* "QNAME" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2787 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 655: /* "FUNCTION_NAME" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2796 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 656: /* "EQNAME" */
+
+/* Line 480 of lalr1.cc  */
+#line 930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2805 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 	break;
 
 	default:
@@ -2871,13 +2880,13 @@
     /* User initialization code.  */
     
 /* Line 553 of lalr1.cc  */
-#line 140 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 140 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
 {
     yylloc.begin.filename = yylloc.end.filename = &(driver.theFilename2);
 }
 
 /* Line 553 of lalr1.cc  */
-#line 2881 "/home/markos/zorba/repo/markos-scratch/build/src/compiler/parser/xquery_parser.cpp"
+#line 2890 "/home/markos/zorba/repo/cast-to-simple-type/build/src/compiler/parser/xquery_parser.cpp"
 
     /* Initialize the stacks.  The initial state will be pushed in
        yynewstate, since the latter expects the semantical and the
@@ -2996,7 +3005,7 @@
 	  case 3:
 
 /* Line 678 of lalr1.cc  */
-#line 1051 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1052 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -3005,7 +3014,7 @@
   case 4:
 
 /* Line 678 of lalr1.cc  */
-#line 1055 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1056 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -3014,7 +3023,7 @@
   case 5:
 
 /* Line 678 of lalr1.cc  */
-#line 1059 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1060 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       }
@@ -3023,7 +3032,7 @@
   case 6:
 
 /* Line 678 of lalr1.cc  */
-#line 1070 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1071 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -3032,7 +3041,7 @@
   case 7:
 
 /* Line 678 of lalr1.cc  */
-#line 1079 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1080 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3042,7 +3051,7 @@
   case 8:
 
 /* Line 678 of lalr1.cc  */
-#line 1085 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1086 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       MainModule* mm = dynamic_cast<MainModule*>((yysemantic_stack_[(2) - (2)].node));
       mm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3054,7 +3063,7 @@
   case 9:
 
 /* Line 678 of lalr1.cc  */
-#line 1093 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1094 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3064,7 +3073,7 @@
   case 10:
 
 /* Line 678 of lalr1.cc  */
-#line 1099 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1100 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       LibraryModule* lm = dynamic_cast<LibraryModule*>((yysemantic_stack_[(2) - (2)].node));
       lm->set_version_decl( static_cast<VersionDecl*>((yysemantic_stack_[(2) - (1)].node)) );
@@ -3076,7 +3085,7 @@
   case 11:
 
 /* Line 678 of lalr1.cc  */
-#line 1110 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1111 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8" );
     }
@@ -3085,7 +3094,7 @@
   case 12:
 
 /* Line 678 of lalr1.cc  */
-#line 1115 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1116 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
     }
@@ -3094,7 +3103,7 @@
   case 13:
 
 /* Line 678 of lalr1.cc  */
-#line 1123 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1124 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
 
@@ -3105,7 +3114,7 @@
   case 14:
 
 /* Line 678 of lalr1.cc  */
-#line 1130 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1131 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
 
@@ -3116,7 +3125,7 @@
   case 15:
 
 /* Line 678 of lalr1.cc  */
-#line 1137 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1138 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
@@ -3129,7 +3138,7 @@
   case 16:
 
 /* Line 678 of lalr1.cc  */
-#line 1146 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1147 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
     }
@@ -3138,7 +3147,7 @@
   case 17:
 
 /* Line 678 of lalr1.cc  */
-#line 1153 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1154 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3150,7 +3159,7 @@
   case 18:
 
 /* Line 678 of lalr1.cc  */
-#line 1161 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1162 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3162,7 +3171,7 @@
   case 19:
 
 /* Line 678 of lalr1.cc  */
-#line 1169 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1170 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr); // to prevent the Bison warning
       (yylocation_stack_[(5) - (3)]).step();
@@ -3174,7 +3183,7 @@
   case 20:
 
 /* Line 678 of lalr1.cc  */
-#line 1177 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1178 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(5) - (1)].node); (yyval.node) = (yysemantic_stack_[(5) - (3)].node); (yyval.node) = (yysemantic_stack_[(5) - (5)].expr); // to prevent the Bison warning
       (yylocation_stack_[(5) - (1)]).step();
@@ -3186,7 +3195,7 @@
   case 21:
 
 /* Line 678 of lalr1.cc  */
-#line 1188 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1189 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
     }
@@ -3195,7 +3204,7 @@
   case 22:
 
 /* Line 678 of lalr1.cc  */
-#line 1193 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1194 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
 
@@ -3206,7 +3215,7 @@
   case 23:
 
 /* Line 678 of lalr1.cc  */
-#line 1200 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1201 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
 
@@ -3217,7 +3226,7 @@
   case 24:
 
 /* Line 678 of lalr1.cc  */
-#line 1207 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1208 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
@@ -3230,7 +3239,7 @@
   case 25:
 
 /* Line 678 of lalr1.cc  */
-#line 1219 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1220 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
 
@@ -3241,7 +3250,7 @@
   case 26:
 
 /* Line 678 of lalr1.cc  */
-#line 1229 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1230 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
       sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3252,7 +3261,7 @@
   case 27:
 
 /* Line 678 of lalr1.cc  */
-#line 1236 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1237 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       ((SIND_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3262,7 +3271,7 @@
   case 28:
 
 /* Line 678 of lalr1.cc  */
-#line 1243 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1244 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       // error
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
@@ -3275,7 +3284,7 @@
   case 42:
 
 /* Line 678 of lalr1.cc  */
-#line 1278 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1279 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
     }
@@ -3284,7 +3293,7 @@
   case 43:
 
 /* Line 678 of lalr1.cc  */
-#line 1283 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1284 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
     }
@@ -3293,7 +3302,7 @@
   case 44:
 
 /* Line 678 of lalr1.cc  */
-#line 1291 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1292 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
     }
@@ -3302,7 +3311,7 @@
   case 45:
 
 /* Line 678 of lalr1.cc  */
-#line 1299 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1300 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
@@ -3311,7 +3320,7 @@
   case 46:
 
 /* Line 678 of lalr1.cc  */
-#line 1307 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1308 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
     }
@@ -3320,7 +3329,7 @@
   case 47:
 
 /* Line 678 of lalr1.cc  */
-#line 1312 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1313 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
     }
@@ -3329,7 +3338,7 @@
   case 48:
 
 /* Line 678 of lalr1.cc  */
-#line 1320 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1321 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
     }
@@ -3338,7 +3347,7 @@
   case 49:
 
 /* Line 678 of lalr1.cc  */
-#line 1325 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1326 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
     }
@@ -3347,7 +3356,7 @@
   case 50:
 
 /* Line 678 of lalr1.cc  */
-#line 1333 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1334 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
     }
@@ -3356,7 +3365,7 @@
   case 51:
 
 /* Line 678 of lalr1.cc  */
-#line 1338 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1339 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
     }
@@ -3365,7 +3374,7 @@
   case 52:
 
 /* Line 678 of lalr1.cc  */
-#line 1346 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1347 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
     }
@@ -3374,7 +3383,7 @@
   case 53:
 
 /* Line 678 of lalr1.cc  */
-#line 1351 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1352 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
     }
@@ -3383,7 +3392,7 @@
   case 54:
 
 /* Line 678 of lalr1.cc  */
-#line 1356 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1357 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
     }
@@ -3392,7 +3401,7 @@
   case 55:
 
 /* Line 678 of lalr1.cc  */
-#line 1361 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1362 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
     }
@@ -3401,7 +3410,7 @@
   case 58:
 
 /* Line 678 of lalr1.cc  */
-#line 1374 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1375 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yyval.node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (2)]), "syntax error, \"import\" should be followed by either \"schema\" or \"module\".");
@@ -3412,7 +3421,7 @@
   case 59:
 
 /* Line 678 of lalr1.cc  */
-#line 1384 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1385 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
     }
@@ -3421,7 +3430,7 @@
   case 60:
 
 /* Line 678 of lalr1.cc  */
-#line 1389 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1390 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
@@ -3433,7 +3442,7 @@
   case 61:
 
 /* Line 678 of lalr1.cc  */
-#line 1397 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1398 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             NULL,
@@ -3445,7 +3454,7 @@
   case 62:
 
 /* Line 678 of lalr1.cc  */
-#line 1405 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1406 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
@@ -3457,7 +3466,7 @@
   case 63:
 
 /* Line 678 of lalr1.cc  */
-#line 1416 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1417 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       URILiteralList *ull = new URILiteralList( LOC((yyloc)));
       ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -3468,7 +3477,7 @@
   case 64:
 
 /* Line 678 of lalr1.cc  */
-#line 1423 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1424 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       if ( URILiteralList *ull = dynamic_cast<URILiteralList*>((yysemantic_stack_[(3) - (1)].node)) )
         ull->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -3480,7 +3489,7 @@
   case 65:
 
 /* Line 678 of lalr1.cc  */
-#line 1434 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1435 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
@@ -3489,7 +3498,7 @@
   case 66:
 
 /* Line 678 of lalr1.cc  */
-#line 1439 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1440 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
     }
@@ -3498,7 +3507,7 @@
   case 67:
 
 /* Line 678 of lalr1.cc  */
-#line 1447 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1448 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
 
@@ -3509,7 +3518,7 @@
   case 68:
 
 /* Line 678 of lalr1.cc  */
-#line 1454 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1455 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (4)].sval)), SYMTAB((yysemantic_stack_[(6) - (6)].sval)), NULL);
 
@@ -3520,7 +3529,7 @@
   case 69:
 
 /* Line 678 of lalr1.cc  */
-#line 1461 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1462 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
@@ -3533,7 +3542,7 @@
   case 70:
 
 /* Line 678 of lalr1.cc  */
-#line 1470 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1471 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(8) - (4)].sval)),
@@ -3547,7 +3556,7 @@
   case 71:
 
 /* Line 678 of lalr1.cc  */
-#line 1483 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1484 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new NamespaceDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(5) - (3)].sval)), SYMTAB((yysemantic_stack_[(5) - (5)].sval)) );
     }
@@ -3556,7 +3565,7 @@
   case 72:
 
 /* Line 678 of lalr1.cc  */
-#line 1491 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1492 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_element_default,
@@ -3567,7 +3576,7 @@
   case 73:
 
 /* Line 678 of lalr1.cc  */
-#line 1498 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1499 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_function_default,
@@ -3578,7 +3587,7 @@
   case 74:
 
 /* Line 678 of lalr1.cc  */
-#line 1508 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1509 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
       vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3589,7 +3598,7 @@
   case 75:
 
 /* Line 678 of lalr1.cc  */
-#line 1515 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1516 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       ((VFO_DeclList*)(yysemantic_stack_[(3) - (1)].node))->push_back( (yysemantic_stack_[(3) - (3)].node) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3599,7 +3608,7 @@
   case 76:
 
 /* Line 678 of lalr1.cc  */
-#line 1522 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1523 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
       (yylocation_stack_[(3) - (1)]).step();
@@ -3611,7 +3620,7 @@
   case 85:
 
 /* Line 678 of lalr1.cc  */
-#line 1545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1546 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3621,7 +3630,7 @@
   case 86:
 
 /* Line 678 of lalr1.cc  */
-#line 1551 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1552 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3631,7 +3640,7 @@
   case 87:
 
 /* Line 678 of lalr1.cc  */
-#line 1560 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1561 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.vstrpair) = new vector<string_pair_t>();
       (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
@@ -3642,7 +3651,7 @@
   case 88:
 
 /* Line 678 of lalr1.cc  */
-#line 1567 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1568 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
       delete (yysemantic_stack_[(2) - (2)].strpair);
@@ -3653,7 +3662,7 @@
   case 89:
 
 /* Line 678 of lalr1.cc  */
-#line 1577 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1578 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       StringLiteral *sl = static_cast<StringLiteral*>((yysemantic_stack_[(3) - (3)].expr));
       (yyval.strpair) = new string_pair_t( (yysemantic_stack_[(3) - (1)].strval), sl->get_strval().str() );
@@ -3664,77 +3673,77 @@
   case 90:
 
 /* Line 678 of lalr1.cc  */
-#line 1586 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1587 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "decimal-separator"; }
     break;
 
   case 91:
 
 /* Line 678 of lalr1.cc  */
-#line 1587 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1588 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "digit"; }
     break;
 
   case 92:
 
 /* Line 678 of lalr1.cc  */
-#line 1588 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1589 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "grouping-separator"; }
     break;
 
   case 93:
 
 /* Line 678 of lalr1.cc  */
-#line 1589 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1590 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "infinty"; }
     break;
 
   case 94:
 
 /* Line 678 of lalr1.cc  */
-#line 1590 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1591 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "minus-sign"; }
     break;
 
   case 95:
 
 /* Line 678 of lalr1.cc  */
-#line 1591 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1592 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "NaN"; }
     break;
 
   case 96:
 
 /* Line 678 of lalr1.cc  */
-#line 1592 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1593 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "pattern-separator"; }
     break;
 
   case 97:
 
 /* Line 678 of lalr1.cc  */
-#line 1593 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1594 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "percent"; }
     break;
 
   case 98:
 
 /* Line 678 of lalr1.cc  */
-#line 1594 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1595 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "per-mille"; }
     break;
 
   case 99:
 
 /* Line 678 of lalr1.cc  */
-#line 1595 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1596 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "zero-digit"; }
     break;
 
   case 100:
 
 /* Line 678 of lalr1.cc  */
-#line 1601 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1602 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OptionDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)));
     }
@@ -3743,7 +3752,7 @@
   case 101:
 
 /* Line 678 of lalr1.cc  */
-#line 1609 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1610 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
     }
@@ -3752,7 +3761,7 @@
   case 102:
 
 /* Line 678 of lalr1.cc  */
-#line 1617 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1618 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
     }
@@ -3761,7 +3770,7 @@
   case 103:
 
 /* Line 678 of lalr1.cc  */
-#line 1625 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1626 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
       d->theType = (yysemantic_stack_[(3) - (2)].node);
@@ -3772,7 +3781,7 @@
   case 104:
 
 /* Line 678 of lalr1.cc  */
-#line 1632 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1633 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -3781,7 +3790,7 @@
   case 105:
 
 /* Line 678 of lalr1.cc  */
-#line 1640 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1641 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
       d->theIsExternal = false;
@@ -3792,7 +3801,7 @@
   case 106:
 
 /* Line 678 of lalr1.cc  */
-#line 1647 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1648 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
     }
@@ -3801,7 +3810,7 @@
   case 107:
 
 /* Line 678 of lalr1.cc  */
-#line 1652 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1653 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
@@ -3810,7 +3819,7 @@
   case 108:
 
 /* Line 678 of lalr1.cc  */
-#line 1660 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1661 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
@@ -3819,7 +3828,7 @@
   case 109:
 
 /* Line 678 of lalr1.cc  */
-#line 1668 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1669 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
 
@@ -3837,7 +3846,7 @@
   case 110:
 
 /* Line 678 of lalr1.cc  */
-#line 1682 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1683 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
 
@@ -3855,7 +3864,7 @@
   case 111:
 
 /* Line 678 of lalr1.cc  */
-#line 1696 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1697 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
 
@@ -3873,7 +3882,7 @@
   case 112:
 
 /* Line 678 of lalr1.cc  */
-#line 1713 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1714 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
     }
@@ -3882,7 +3891,7 @@
   case 113:
 
 /* Line 678 of lalr1.cc  */
-#line 1718 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1719 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
@@ -3894,7 +3903,7 @@
   case 114:
 
 /* Line 678 of lalr1.cc  */
-#line 1726 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1727 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -3906,7 +3915,7 @@
   case 115:
 
 /* Line 678 of lalr1.cc  */
-#line 1734 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1735 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
@@ -3918,7 +3927,7 @@
   case 116:
 
 /* Line 678 of lalr1.cc  */
-#line 1745 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1746 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
     }
@@ -3927,7 +3936,7 @@
   case 117:
 
 /* Line 678 of lalr1.cc  */
-#line 1750 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1751 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       static_cast<AnnotationListParsenode*>((yysemantic_stack_[(2) - (1)].node))->push_back(static_cast<AnnotationParsenode*>((yysemantic_stack_[(2) - (2)].node)));
       (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
@@ -3937,7 +3946,7 @@
   case 118:
 
 /* Line 678 of lalr1.cc  */
-#line 1759 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1760 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))), NULL);
     }
@@ -3946,7 +3955,7 @@
   case 119:
 
 /* Line 678 of lalr1.cc  */
-#line 1764 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1765 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
@@ -3957,7 +3966,7 @@
   case 120:
 
 /* Line 678 of lalr1.cc  */
-#line 1771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1772 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true), NULL);
     }
@@ -3966,7 +3975,7 @@
   case 121:
 
 /* Line 678 of lalr1.cc  */
-#line 1776 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1777 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
@@ -3977,7 +3986,7 @@
   case 122:
 
 /* Line 678 of lalr1.cc  */
-#line 1786 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1787 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
     }
@@ -3986,7 +3995,7 @@
   case 123:
 
 /* Line 678 of lalr1.cc  */
-#line 1791 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1792 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       static_cast<AnnotationLiteralListParsenode*>((yysemantic_stack_[(3) - (1)].node))->push_back((yysemantic_stack_[(3) - (3)].expr));
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -3996,7 +4005,7 @@
   case 124:
 
 /* Line 678 of lalr1.cc  */
-#line 1800 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1801 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       static_cast<FunctionDecl*>((yysemantic_stack_[(2) - (2)].node))->setComment( SYMTAB((yysemantic_stack_[(2) - (1)].sval)) );
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
@@ -4006,7 +4015,7 @@
   case 125:
 
 /* Line 678 of lalr1.cc  */
-#line 1806 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1807 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
 
@@ -4020,7 +4029,7 @@
   case 126:
 
 /* Line 678 of lalr1.cc  */
-#line 1819 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1820 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -4029,7 +4038,7 @@
   case 127:
 
 /* Line 678 of lalr1.cc  */
-#line 1824 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1825 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -4038,7 +4047,7 @@
   case 128:
 
 /* Line 678 of lalr1.cc  */
-#line 1832 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1833 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4054,7 +4063,7 @@
   case 129:
 
 /* Line 678 of lalr1.cc  */
-#line 1843 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1844 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4070,7 +4079,7 @@
   case 130:
 
 /* Line 678 of lalr1.cc  */
-#line 1858 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1859 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4086,7 +4095,7 @@
   case 131:
 
 /* Line 678 of lalr1.cc  */
-#line 1870 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1871 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4102,7 +4111,7 @@
   case 132:
 
 /* Line 678 of lalr1.cc  */
-#line 1885 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1886 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL);
     }
@@ -4111,7 +4120,7 @@
   case 133:
 
 /* Line 678 of lalr1.cc  */
-#line 1890 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1891 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
     }
@@ -4120,7 +4129,7 @@
   case 134:
 
 /* Line 678 of lalr1.cc  */
-#line 1895 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1896 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
     }
@@ -4129,7 +4138,7 @@
   case 135:
 
 /* Line 678 of lalr1.cc  */
-#line 1900 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1901 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(5) - (2)].node)), dynamic_cast<SequenceType*>((yysemantic_stack_[(5) - (5)].node)));
     }
@@ -4138,7 +4147,7 @@
   case 136:
 
 /* Line 678 of lalr1.cc  */
-#line 1908 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1909 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       ParamList *pl = new ParamList( LOC((yyloc)) );
       pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4149,7 +4158,7 @@
   case 137:
 
 /* Line 678 of lalr1.cc  */
-#line 1915 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1916 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       if ( ParamList *pl = dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (1)].node)) )
         pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -4161,7 +4170,7 @@
   case 138:
 
 /* Line 678 of lalr1.cc  */
-#line 1926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1927 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
     }
@@ -4170,7 +4179,7 @@
   case 139:
 
 /* Line 678 of lalr1.cc  */
-#line 1931 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1932 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)),
                      static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4181,7 +4190,7 @@
   case 140:
 
 /* Line 678 of lalr1.cc  */
-#line 1941 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1942 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
@@ -4195,7 +4204,7 @@
   case 141:
 
 /* Line 678 of lalr1.cc  */
-#line 1950 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1951 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4209,7 +4218,7 @@
   case 142:
 
 /* Line 678 of lalr1.cc  */
-#line 1959 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1960 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -4223,7 +4232,7 @@
   case 143:
 
 /* Line 678 of lalr1.cc  */
-#line 1968 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1969 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
@@ -4237,7 +4246,7 @@
   case 144:
 
 /* Line 678 of lalr1.cc  */
-#line 1980 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1981 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -4246,7 +4255,7 @@
   case 145:
 
 /* Line 678 of lalr1.cc  */
-#line 1984 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1985 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4257,7 +4266,7 @@
   case 146:
 
 /* Line 678 of lalr1.cc  */
-#line 1990 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1991 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -4266,7 +4275,7 @@
   case 147:
 
 /* Line 678 of lalr1.cc  */
-#line 1994 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 1995 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4278,7 +4287,7 @@
   case 148:
 
 /* Line 678 of lalr1.cc  */
-#line 2004 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2005 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
@@ -4293,7 +4302,7 @@
   case 149:
 
 /* Line 678 of lalr1.cc  */
-#line 2014 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2015 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
@@ -4308,7 +4317,7 @@
   case 150:
 
 /* Line 678 of lalr1.cc  */
-#line 2027 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2028 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
       keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -4319,7 +4328,7 @@
   case 151:
 
 /* Line 678 of lalr1.cc  */
-#line 2033 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2034 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       dynamic_cast<IndexKeyList*>((yysemantic_stack_[(3) - (1)].node))->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(3) - (3)].node)));
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
@@ -4329,7 +4338,7 @@
   case 152:
 
 /* Line 678 of lalr1.cc  */
-#line 2042 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2043 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
     }
@@ -4338,7 +4347,7 @@
   case 153:
 
 /* Line 678 of lalr1.cc  */
-#line 2047 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2048 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4350,7 +4359,7 @@
   case 154:
 
 /* Line 678 of lalr1.cc  */
-#line 2054 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2055 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4362,7 +4371,7 @@
   case 155:
 
 /* Line 678 of lalr1.cc  */
-#line 2061 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2062 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(3) - (1)].expr),
@@ -4374,7 +4383,7 @@
   case 156:
 
 /* Line 678 of lalr1.cc  */
-#line 2073 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2074 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
@@ -4387,7 +4396,7 @@
   case 157:
 
 /* Line 678 of lalr1.cc  */
-#line 2083 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2084 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
                                     static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
@@ -4400,7 +4409,7 @@
   case 158:
 
 /* Line 678 of lalr1.cc  */
-#line 2093 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2094 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
@@ -4413,7 +4422,7 @@
   case 159:
 
 /* Line 678 of lalr1.cc  */
-#line 2104 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2105 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICForeignKey( LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
@@ -4429,7 +4438,7 @@
   case 160:
 
 /* Line 678 of lalr1.cc  */
-#line 2120 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2121 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
       {
@@ -4450,7 +4459,7 @@
   case 161:
 
 /* Line 678 of lalr1.cc  */
-#line 2140 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2141 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4459,7 +4468,7 @@
   case 162:
 
 /* Line 678 of lalr1.cc  */
-#line 2144 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2145 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4468,7 +4477,7 @@
   case 163:
 
 /* Line 678 of lalr1.cc  */
-#line 2148 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2149 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) =  NULL;
     }
@@ -4477,7 +4486,7 @@
   case 164:
 
 /* Line 678 of lalr1.cc  */
-#line 2156 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2157 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4486,7 +4495,7 @@
   case 165:
 
 /* Line 678 of lalr1.cc  */
-#line 2160 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2161 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4495,7 +4504,7 @@
   case 166:
 
 /* Line 678 of lalr1.cc  */
-#line 2164 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2165 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) =  new BlockBody(LOC((yyloc)));
     }
@@ -4504,7 +4513,7 @@
   case 167:
 
 /* Line 678 of lalr1.cc  */
-#line 2172 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2173 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4513,7 +4522,7 @@
   case 168:
 
 /* Line 678 of lalr1.cc  */
-#line 2177 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2178 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4526,7 +4535,7 @@
   case 169:
 
 /* Line 678 of lalr1.cc  */
-#line 2189 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2190 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = new BlockBody(LOC((yyloc)));
       blk->add((yysemantic_stack_[(1) - (1)].expr));
@@ -4537,7 +4546,7 @@
   case 170:
 
 /* Line 678 of lalr1.cc  */
-#line 2196 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2197 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4550,7 +4559,7 @@
   case 183:
 
 /* Line 678 of lalr1.cc  */
-#line 2225 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2226 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -4559,7 +4568,7 @@
   case 184:
 
 /* Line 678 of lalr1.cc  */
-#line 2230 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2231 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new BlockBody(LOC((yyloc)));
     }
@@ -4568,7 +4577,7 @@
   case 185:
 
 /* Line 678 of lalr1.cc  */
-#line 2238 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2239 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       if (dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr)) == NULL)
       {
@@ -4586,7 +4595,7 @@
   case 186:
 
 /* Line 678 of lalr1.cc  */
-#line 2255 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2256 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -4595,7 +4604,7 @@
   case 187:
 
 /* Line 678 of lalr1.cc  */
-#line 2263 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2264 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
     }
@@ -4604,7 +4613,7 @@
   case 188:
 
 /* Line 678 of lalr1.cc  */
-#line 2271 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2272 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
       vdecl->add((yysemantic_stack_[(3) - (3)].node));
@@ -4615,7 +4624,7 @@
   case 189:
 
 /* Line 678 of lalr1.cc  */
-#line 2278 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2279 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
       vdecl->add((yysemantic_stack_[(2) - (2)].node));
@@ -4626,7 +4635,7 @@
   case 190:
 
 /* Line 678 of lalr1.cc  */
-#line 2285 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2286 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
                                            static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
@@ -4638,7 +4647,7 @@
   case 191:
 
 /* Line 678 of lalr1.cc  */
-#line 2296 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2297 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
@@ -4652,7 +4661,7 @@
   case 192:
 
 /* Line 678 of lalr1.cc  */
-#line 2305 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2306 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4666,7 +4675,7 @@
   case 193:
 
 /* Line 678 of lalr1.cc  */
-#line 2314 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2315 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4680,7 +4689,7 @@
   case 194:
 
 /* Line 678 of lalr1.cc  */
-#line 2323 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2324 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4694,7 +4703,7 @@
   case 195:
 
 /* Line 678 of lalr1.cc  */
-#line 2336 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2337 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new AssignExpr(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)), (yysemantic_stack_[(5) - (4)].expr));
     }
@@ -4703,7 +4712,7 @@
   case 196:
 
 /* Line 678 of lalr1.cc  */
-#line 2344 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2345 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
     }
@@ -4712,7 +4721,7 @@
   case 197:
 
 /* Line 678 of lalr1.cc  */
-#line 2352 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2353 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
     }
@@ -4721,7 +4730,7 @@
   case 198:
 
 /* Line 678 of lalr1.cc  */
-#line 2360 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2361 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
       if (bb == NULL)
@@ -4737,7 +4746,7 @@
   case 199:
 
 /* Line 678 of lalr1.cc  */
-#line 2375 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2376 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
     }
@@ -4746,7 +4755,7 @@
   case 200:
 
 /* Line 678 of lalr1.cc  */
-#line 2380 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2381 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
     }
@@ -4755,7 +4764,7 @@
   case 201:
 
 /* Line 678 of lalr1.cc  */
-#line 2388 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2389 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4770,7 +4779,7 @@
   case 202:
 
 /* Line 678 of lalr1.cc  */
-#line 2402 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2403 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
 
@@ -4788,7 +4797,7 @@
   case 203:
 
 /* Line 678 of lalr1.cc  */
-#line 2419 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2420 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
       exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
@@ -4814,7 +4823,7 @@
   case 204:
 
 /* Line 678 of lalr1.cc  */
-#line 2444 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2445 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
     }
@@ -4823,7 +4832,7 @@
   case 205:
 
 /* Line 678 of lalr1.cc  */
-#line 2452 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2453 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
       cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -4834,7 +4843,7 @@
   case 206:
 
 /* Line 678 of lalr1.cc  */
-#line 2459 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2460 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
       if ( cle )
@@ -4846,7 +4855,7 @@
   case 207:
 
 /* Line 678 of lalr1.cc  */
-#line 2470 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2471 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
        delete (yysemantic_stack_[(3) - (2)].name_test_list);
@@ -4856,7 +4865,7 @@
   case 208:
 
 /* Line 678 of lalr1.cc  */
-#line 2480 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2481 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4865,7 +4874,7 @@
   case 209:
 
 /* Line 678 of lalr1.cc  */
-#line 2485 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2486 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
       if ( !expr )
@@ -4881,7 +4890,7 @@
   case 210:
 
 /* Line 678 of lalr1.cc  */
-#line 2497 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2498 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(4) - (3)].expr); // to prevent the Bison warning
@@ -4895,7 +4904,7 @@
   case 211:
 
 /* Line 678 of lalr1.cc  */
-#line 2506 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2507 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       // This rule will never be reached, as the ERROR rule will stop the parser,
       // but it is nevertheless needed to fix a testcase with an unterminated comment which
@@ -4909,7 +4918,7 @@
   case 230:
 
 /* Line 678 of lalr1.cc  */
-#line 2549 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2550 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4924,7 +4933,7 @@
   case 231:
 
 /* Line 678 of lalr1.cc  */
-#line 2563 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2564 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
     }
@@ -4933,7 +4942,7 @@
   case 232:
 
 /* Line 678 of lalr1.cc  */
-#line 2571 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2572 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_sliding;
     }
@@ -4942,7 +4951,7 @@
   case 233:
 
 /* Line 678 of lalr1.cc  */
-#line 2576 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2577 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_tumbling;
     }
@@ -4951,7 +4960,7 @@
   case 234:
 
 /* Line 678 of lalr1.cc  */
-#line 2584 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2585 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_start;
     }
@@ -4960,7 +4969,7 @@
   case 235:
 
 /* Line 678 of lalr1.cc  */
-#line 2589 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2590 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_end;
     }
@@ -4969,7 +4978,7 @@
   case 236:
 
 /* Line 678 of lalr1.cc  */
-#line 2594 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2595 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
     (yyval.strval) = parser::the_only_end;
   }
@@ -4978,7 +4987,7 @@
   case 237:
 
 /* Line 678 of lalr1.cc  */
-#line 2602 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2603 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
@@ -4991,7 +5000,7 @@
   case 238:
 
 /* Line 678 of lalr1.cc  */
-#line 2611 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2612 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             NULL,
@@ -5004,7 +5013,7 @@
   case 239:
 
 /* Line 678 of lalr1.cc  */
-#line 2623 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2624 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
@@ -5019,7 +5028,7 @@
   case 240:
 
 /* Line 678 of lalr1.cc  */
-#line 2633 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2634 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
@@ -5033,7 +5042,7 @@
   case 241:
 
 /* Line 678 of lalr1.cc  */
-#line 2646 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2647 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5042,7 +5051,7 @@
   case 250:
 
 /* Line 678 of lalr1.cc  */
-#line 2670 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2671 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5053,7 +5062,7 @@
   case 251:
 
 /* Line 678 of lalr1.cc  */
-#line 2677 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2678 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       FLWORClauseList *fcl = dynamic_cast<FLWORClauseList*>((yysemantic_stack_[(2) - (1)].node));
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -5064,7 +5073,7 @@
   case 252:
 
 /* Line 678 of lalr1.cc  */
-#line 2687 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2688 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
     }
@@ -5073,7 +5082,7 @@
   case 253:
 
 /* Line 678 of lalr1.cc  */
-#line 2693 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2694 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (2)]), "syntax error, unexpected QName \""
@@ -5086,7 +5095,7 @@
   case 254:
 
 /* Line 678 of lalr1.cc  */
-#line 2702 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2703 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = NULL; // to prevent the Bison warning
       error((yylocation_stack_[(2) - (2)]), ""); // the error message is already set in the driver's parseError member
@@ -5097,7 +5106,7 @@
   case 255:
 
 /* Line 678 of lalr1.cc  */
-#line 2712 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2713 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
       vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5108,7 +5117,7 @@
   case 256:
 
 /* Line 678 of lalr1.cc  */
-#line 2719 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2720 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       if ( VarInDeclList* vdl = dynamic_cast<VarInDeclList*>((yysemantic_stack_[(4) - (1)].node)) )
         vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5119,7 +5128,7 @@
   case 257:
 
 /* Line 678 of lalr1.cc  */
-#line 2727 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2728 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node); // to prevent the Bison warning
       error((yylocation_stack_[(3) - (3)]), "syntax error, unexpected QName \""
@@ -5132,7 +5141,7 @@
   case 258:
 
 /* Line 678 of lalr1.cc  */
-#line 2739 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2740 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
@@ -5147,7 +5156,7 @@
   case 259:
 
 /* Line 678 of lalr1.cc  */
-#line 2749 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2750 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5162,7 +5171,7 @@
   case 260:
 
 /* Line 678 of lalr1.cc  */
-#line 2759 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2760 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5177,7 +5186,7 @@
   case 261:
 
 /* Line 678 of lalr1.cc  */
-#line 2769 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2770 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5192,7 +5201,7 @@
   case 262:
 
 /* Line 678 of lalr1.cc  */
-#line 2779 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2780 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5207,7 +5216,7 @@
   case 263:
 
 /* Line 678 of lalr1.cc  */
-#line 2789 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2790 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5222,7 +5231,7 @@
   case 264:
 
 /* Line 678 of lalr1.cc  */
-#line 2799 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2800 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5237,7 +5246,7 @@
   case 265:
 
 /* Line 678 of lalr1.cc  */
-#line 2809 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2810 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
@@ -5252,7 +5261,7 @@
   case 266:
 
 /* Line 678 of lalr1.cc  */
-#line 2820 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2821 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5266,7 +5275,7 @@
   case 267:
 
 /* Line 678 of lalr1.cc  */
-#line 2829 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2830 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5281,7 +5290,7 @@
   case 268:
 
 /* Line 678 of lalr1.cc  */
-#line 2839 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2840 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5296,7 +5305,7 @@
   case 269:
 
 /* Line 678 of lalr1.cc  */
-#line 2849 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2850 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5311,7 +5320,7 @@
   case 270:
 
 /* Line 678 of lalr1.cc  */
-#line 2865 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2866 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5320,7 +5329,7 @@
   case 271:
 
 /* Line 678 of lalr1.cc  */
-#line 2874 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2875 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5329,7 +5338,7 @@
   case 272:
 
 /* Line 678 of lalr1.cc  */
-#line 2883 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2884 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
         }
@@ -5338,7 +5347,7 @@
   case 273:
 
 /* Line 678 of lalr1.cc  */
-#line 2891 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2892 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
             vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5349,7 +5358,7 @@
   case 274:
 
 /* Line 678 of lalr1.cc  */
-#line 2897 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2898 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if( VarGetsDeclList *vgdl = dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(3) - (1)].node)) )
                 vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5360,7 +5369,7 @@
   case 275:
 
 /* Line 678 of lalr1.cc  */
-#line 2909 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2910 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5373,7 +5382,7 @@
   case 276:
 
 /* Line 678 of lalr1.cc  */
-#line 2917 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2918 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5386,7 +5395,7 @@
   case 277:
 
 /* Line 678 of lalr1.cc  */
-#line 2927 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2928 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
@@ -5399,7 +5408,7 @@
   case 278:
 
 /* Line 678 of lalr1.cc  */
-#line 2935 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2936 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5412,7 +5421,7 @@
   case 279:
 
 /* Line 678 of lalr1.cc  */
-#line 2947 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2948 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5423,7 +5432,7 @@
   case 280:
 
 /* Line 678 of lalr1.cc  */
-#line 2953 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2954 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5435,7 +5444,7 @@
   case 282:
 
 /* Line 678 of lalr1.cc  */
-#line 2966 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2967 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL);
     }
@@ -5444,7 +5453,7 @@
   case 283:
 
 /* Line 678 of lalr1.cc  */
-#line 2970 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2971 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_curr(static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)));
@@ -5454,7 +5463,7 @@
   case 284:
 
 /* Line 678 of lalr1.cc  */
-#line 2978 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2979 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), dynamic_cast<PositionalVar*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL, NULL);
     }
@@ -5463,7 +5472,7 @@
   case 285:
 
 /* Line 678 of lalr1.cc  */
-#line 2982 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2983 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       dynamic_cast<WindowVars *>((yyval.node))->set_posvar(dynamic_cast<PositionalVar*>((yysemantic_stack_[(2) - (1)].node)));
@@ -5473,7 +5482,7 @@
   case 287:
 
 /* Line 678 of lalr1.cc  */
-#line 2991 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2992 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), static_cast<QName*>((yysemantic_stack_[(6) - (6)].expr)));
     }
@@ -5482,7 +5491,7 @@
   case 288:
 
 /* Line 678 of lalr1.cc  */
-#line 2995 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 2996 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5491,7 +5500,7 @@
   case 289:
 
 /* Line 678 of lalr1.cc  */
-#line 2999 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3000 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL);
     }
@@ -5500,7 +5509,7 @@
   case 290:
 
 /* Line 678 of lalr1.cc  */
-#line 3009 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3010 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
@@ -5509,7 +5518,7 @@
   case 291:
 
 /* Line 678 of lalr1.cc  */
-#line 3017 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3018 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
     }
@@ -5518,7 +5527,7 @@
   case 292:
 
 /* Line 678 of lalr1.cc  */
-#line 3024 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3025 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5529,7 +5538,7 @@
   case 293:
 
 /* Line 678 of lalr1.cc  */
-#line 3030 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3031 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       GroupSpecList* gsl = static_cast<GroupSpecList*>((yysemantic_stack_[(3) - (1)].node));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(3) - (3)].node)));
@@ -5540,7 +5549,7 @@
   case 294:
 
 /* Line 678 of lalr1.cc  */
-#line 3040 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3041 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL, NULL);
     }
@@ -5549,7 +5558,7 @@
   case 295:
 
 /* Line 678 of lalr1.cc  */
-#line 3044 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3045 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)), NULL, (yysemantic_stack_[(4) - (4)].expr), NULL);
     }
@@ -5558,7 +5567,7 @@
   case 296:
 
 /* Line 678 of lalr1.cc  */
-#line 3048 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3049 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5571,7 +5580,7 @@
   case 297:
 
 /* Line 678 of lalr1.cc  */
-#line 3056 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3057 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5584,7 +5593,7 @@
   case 298:
 
 /* Line 678 of lalr1.cc  */
-#line 3064 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3065 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5597,7 +5606,7 @@
   case 299:
 
 /* Line 678 of lalr1.cc  */
-#line 3072 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3073 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -5610,7 +5619,7 @@
   case 300:
 
 /* Line 678 of lalr1.cc  */
-#line 3084 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3085 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
@@ -5619,7 +5628,7 @@
   case 301:
 
 /* Line 678 of lalr1.cc  */
-#line 3092 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3093 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
@@ -5630,7 +5639,7 @@
   case 302:
 
 /* Line 678 of lalr1.cc  */
-#line 3098 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3099 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
@@ -5641,7 +5650,7 @@
   case 303:
 
 /* Line 678 of lalr1.cc  */
-#line 3108 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3109 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
             osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5652,7 +5661,7 @@
   case 304:
 
 /* Line 678 of lalr1.cc  */
-#line 3114 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3115 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if ( OrderSpecList* osl = dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (1)].node)) )
                 osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -5663,7 +5672,7 @@
   case 305:
 
 /* Line 678 of lalr1.cc  */
-#line 3124 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3125 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
         }
@@ -5672,7 +5681,7 @@
   case 306:
 
 /* Line 678 of lalr1.cc  */
-#line 3128 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3129 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderSpec(
                 LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<OrderModifierPN*>((yysemantic_stack_[(2) - (2)].node))
@@ -5683,7 +5692,7 @@
   case 307:
 
 /* Line 678 of lalr1.cc  */
-#line 3138 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3139 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
@@ -5694,7 +5703,7 @@
   case 308:
 
 /* Line 678 of lalr1.cc  */
-#line 3144 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3145 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -5705,7 +5714,7 @@
   case 309:
 
 /* Line 678 of lalr1.cc  */
-#line 3150 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3151 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
@@ -5716,7 +5725,7 @@
   case 310:
 
 /* Line 678 of lalr1.cc  */
-#line 3156 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3157 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5730,7 +5739,7 @@
   case 311:
 
 /* Line 678 of lalr1.cc  */
-#line 3165 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3166 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5744,7 +5753,7 @@
   case 312:
 
 /* Line 678 of lalr1.cc  */
-#line 3174 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3175 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5758,7 +5767,7 @@
   case 313:
 
 /* Line 678 of lalr1.cc  */
-#line 3183 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3184 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5772,7 +5781,7 @@
   case 314:
 
 /* Line 678 of lalr1.cc  */
-#line 3196 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3197 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
         }
@@ -5781,7 +5790,7 @@
   case 315:
 
 /* Line 678 of lalr1.cc  */
-#line 3200 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3201 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
         }
@@ -5790,7 +5799,7 @@
   case 316:
 
 /* Line 678 of lalr1.cc  */
-#line 3208 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3209 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_greatest
@@ -5801,7 +5810,7 @@
   case 317:
 
 /* Line 678 of lalr1.cc  */
-#line 3214 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3215 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_least
@@ -5812,7 +5821,7 @@
   case 318:
 
 /* Line 678 of lalr1.cc  */
-#line 3224 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3225 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
@@ -5821,7 +5830,7 @@
   case 319:
 
 /* Line 678 of lalr1.cc  */
-#line 3232 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3233 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5835,7 +5844,7 @@
   case 320:
 
 /* Line 678 of lalr1.cc  */
-#line 3241 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3242 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5849,7 +5858,7 @@
   case 321:
 
 /* Line 678 of lalr1.cc  */
-#line 3254 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3255 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5861,7 +5870,7 @@
   case 322:
 
 /* Line 678 of lalr1.cc  */
-#line 3261 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3262 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       QVarInDeclList *qvidl = dynamic_cast<QVarInDeclList*>((yysemantic_stack_[(4) - (1)].node));
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(4) - (4)].node)) );
@@ -5872,7 +5881,7 @@
   case 323:
 
 /* Line 678 of lalr1.cc  */
-#line 3273 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3274 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
@@ -5881,7 +5890,7 @@
   case 324:
 
 /* Line 678 of lalr1.cc  */
-#line 3277 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3278 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5893,7 +5902,7 @@
   case 325:
 
 /* Line 678 of lalr1.cc  */
-#line 3289 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3290 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
     }
@@ -5902,7 +5911,7 @@
   case 326:
 
 /* Line 678 of lalr1.cc  */
-#line 3296 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3297 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5913,7 +5922,7 @@
   case 327:
 
 /* Line 678 of lalr1.cc  */
-#line 3302 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3303 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -5924,7 +5933,7 @@
   case 328:
 
 /* Line 678 of lalr1.cc  */
-#line 3311 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3312 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
@@ -5933,7 +5942,7 @@
   case 329:
 
 /* Line 678 of lalr1.cc  */
-#line 3318 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3319 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
       sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
@@ -5944,7 +5953,7 @@
   case 330:
 
 /* Line 678 of lalr1.cc  */
-#line 3324 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3325 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = static_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node));
       sco_list_p->push_back((yysemantic_stack_[(3) - (3)].expr));
@@ -5955,7 +5964,7 @@
   case 331:
 
 /* Line 678 of lalr1.cc  */
-#line 3335 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3336 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new SwitchExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(8) - (5)].node)), (yysemantic_stack_[(8) - (8)].expr));
     }
@@ -5964,7 +5973,7 @@
   case 332:
 
 /* Line 678 of lalr1.cc  */
-#line 3342 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3343 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = new SwitchCaseClauseList(LOC((yyloc)));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5975,7 +5984,7 @@
   case 333:
 
 /* Line 678 of lalr1.cc  */
-#line 3348 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3349 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseClauseList* scc_list_p = static_cast<SwitchCaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       scc_list_p->push_back(static_cast<SwitchCaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -5986,7 +5995,7 @@
   case 334:
 
 /* Line 678 of lalr1.cc  */
-#line 3357 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3358 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SwitchCaseClause(LOC((yyloc)), dynamic_cast<SwitchCaseOperandList*>((yysemantic_stack_[(3) - (1)].node)), (yysemantic_stack_[(3) - (3)].expr));
     }
@@ -5995,7 +6004,7 @@
   case 335:
 
 /* Line 678 of lalr1.cc  */
-#line 3366 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3367 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -6007,7 +6016,7 @@
   case 336:
 
 /* Line 678 of lalr1.cc  */
-#line 3373 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3374 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -6020,7 +6029,7 @@
   case 337:
 
 /* Line 678 of lalr1.cc  */
-#line 3384 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3385 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -6032,7 +6041,7 @@
   case 338:
 
 /* Line 678 of lalr1.cc  */
-#line 3391 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3392 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -6045,7 +6054,7 @@
   case 339:
 
 /* Line 678 of lalr1.cc  */
-#line 3403 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3404 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6056,7 +6065,7 @@
   case 340:
 
 /* Line 678 of lalr1.cc  */
-#line 3409 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3410 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -6067,7 +6076,7 @@
   case 341:
 
 /* Line 678 of lalr1.cc  */
-#line 3421 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3422 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (2)].node)),
@@ -6078,7 +6087,7 @@
   case 342:
 
 /* Line 678 of lalr1.cc  */
-#line 3427 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3428 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -6090,7 +6099,7 @@
   case 343:
 
 /* Line 678 of lalr1.cc  */
-#line 3438 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3439 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6101,7 +6110,7 @@
   case 344:
 
 /* Line 678 of lalr1.cc  */
-#line 3444 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3445 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       cc_list_p->push_back(dynamic_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -6112,7 +6121,7 @@
   case 345:
 
 /* Line 678 of lalr1.cc  */
-#line 3455 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3456 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (2)].node)),
@@ -6123,7 +6132,7 @@
   case 346:
 
 /* Line 678 of lalr1.cc  */
-#line 3461 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3462 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -6135,7 +6144,7 @@
   case 347:
 
 /* Line 678 of lalr1.cc  */
-#line 3472 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3473 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new IfExpr(LOC ((yyloc)), (yysemantic_stack_[(8) - (3)].expr), (yysemantic_stack_[(8) - (6)].expr), (yysemantic_stack_[(8) - (8)].expr));
     }
@@ -6144,7 +6153,7 @@
   case 348:
 
 /* Line 678 of lalr1.cc  */
-#line 3481 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3482 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -6153,7 +6162,7 @@
   case 349:
 
 /* Line 678 of lalr1.cc  */
-#line 3485 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3486 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
     }
@@ -6162,7 +6171,7 @@
   case 350:
 
 /* Line 678 of lalr1.cc  */
-#line 3494 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3495 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6171,7 +6180,7 @@
   case 351:
 
 /* Line 678 of lalr1.cc  */
-#line 3498 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3499 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6180,7 +6189,7 @@
   case 352:
 
 /* Line 678 of lalr1.cc  */
-#line 3506 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3507 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6189,7 +6198,7 @@
   case 353:
 
 /* Line 678 of lalr1.cc  */
-#line 3510 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3511 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             /*  ::=  "eq" | "ne" | "lt" | "le" | "gt" | "ge" */
             (yyval.expr) = new ComparisonExpr(
@@ -6204,7 +6213,7 @@
   case 354:
 
 /* Line 678 of lalr1.cc  */
-#line 3520 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3521 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             /*  ::=  "is" | "<<" | ">>" */
             (yyval.expr) = new ComparisonExpr(
@@ -6216,7 +6225,7 @@
   case 355:
 
 /* Line 678 of lalr1.cc  */
-#line 3527 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3528 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6230,7 +6239,7 @@
   case 356:
 
 /* Line 678 of lalr1.cc  */
-#line 3536 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3537 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6244,7 +6253,7 @@
   case 357:
 
 /* Line 678 of lalr1.cc  */
-#line 3545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3546 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             /* this call is needed */
             driver.lexer->interpretAsLessThan();
@@ -6254,7 +6263,7 @@
   case 358:
 
 /* Line 678 of lalr1.cc  */
-#line 3550 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3551 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6268,7 +6277,7 @@
   case 359:
 
 /* Line 678 of lalr1.cc  */
-#line 3559 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3560 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6282,7 +6291,7 @@
   case 360:
 
 /* Line 678 of lalr1.cc  */
-#line 3568 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3569 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6296,7 +6305,7 @@
   case 361:
 
 /* Line 678 of lalr1.cc  */
-#line 3577 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3578 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6310,7 +6319,7 @@
   case 362:
 
 /* Line 678 of lalr1.cc  */
-#line 3590 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3591 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6319,7 +6328,7 @@
   case 363:
 
 /* Line 678 of lalr1.cc  */
-#line 3594 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3595 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new FTContainsExpr(
                 LOC((yyloc)),
@@ -6333,7 +6342,7 @@
   case 364:
 
 /* Line 678 of lalr1.cc  */
-#line 3606 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3607 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6342,7 +6351,7 @@
   case 365:
 
 /* Line 678 of lalr1.cc  */
-#line 3610 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3611 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
         }
@@ -6351,7 +6360,7 @@
   case 366:
 
 /* Line 678 of lalr1.cc  */
-#line 3617 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3618 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -6360,7 +6369,7 @@
   case 367:
 
 /* Line 678 of lalr1.cc  */
-#line 3621 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3622 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -6369,7 +6378,7 @@
   case 368:
 
 /* Line 678 of lalr1.cc  */
-#line 3628 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3629 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6378,7 +6387,7 @@
   case 369:
 
 /* Line 678 of lalr1.cc  */
-#line 3632 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3633 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6387,7 +6396,7 @@
   case 370:
 
 /* Line 678 of lalr1.cc  */
-#line 3641 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3642 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6396,7 +6405,7 @@
   case 371:
 
 /* Line 678 of lalr1.cc  */
-#line 3645 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3646 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_plus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6405,7 +6414,7 @@
   case 372:
 
 /* Line 678 of lalr1.cc  */
-#line 3649 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3650 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AdditiveExpr( LOC((yyloc)), ParseConstants::op_minus, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6414,7 +6423,7 @@
   case 373:
 
 /* Line 678 of lalr1.cc  */
-#line 3657 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3658 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6423,7 +6432,7 @@
   case 374:
 
 /* Line 678 of lalr1.cc  */
-#line 3661 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3662 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_mul, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6434,7 +6443,7 @@
   case 375:
 
 /* Line 678 of lalr1.cc  */
-#line 3667 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3668 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_div, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6445,7 +6454,7 @@
   case 376:
 
 /* Line 678 of lalr1.cc  */
-#line 3673 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3674 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_idiv, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6456,7 +6465,7 @@
   case 377:
 
 /* Line 678 of lalr1.cc  */
-#line 3679 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3680 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new MultiplicativeExpr(
                 LOC((yyloc)), ParseConstants::op_mod, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6467,7 +6476,7 @@
   case 378:
 
 /* Line 678 of lalr1.cc  */
-#line 3689 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3690 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6476,7 +6485,7 @@
   case 379:
 
 /* Line 678 of lalr1.cc  */
-#line 3693 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3694 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6485,7 +6494,7 @@
   case 380:
 
 /* Line 678 of lalr1.cc  */
-#line 3697 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3698 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6494,7 +6503,7 @@
   case 381:
 
 /* Line 678 of lalr1.cc  */
-#line 3705 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3706 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6503,7 +6512,7 @@
   case 382:
 
 /* Line 678 of lalr1.cc  */
-#line 3709 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3710 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new IntersectExceptExpr(
                 LOC((yyloc)), ParseConstants::op_intersect, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6514,7 +6523,7 @@
   case 383:
 
 /* Line 678 of lalr1.cc  */
-#line 3715 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3716 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new IntersectExceptExpr(
                 LOC((yyloc)), ParseConstants::op_except, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)
@@ -6525,7 +6534,7 @@
   case 384:
 
 /* Line 678 of lalr1.cc  */
-#line 3725 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3726 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6534,7 +6543,7 @@
   case 385:
 
 /* Line 678 of lalr1.cc  */
-#line 3729 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3730 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InstanceofExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6545,7 +6554,7 @@
   case 386:
 
 /* Line 678 of lalr1.cc  */
-#line 3739 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3740 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6554,7 +6563,7 @@
   case 387:
 
 /* Line 678 of lalr1.cc  */
-#line 3743 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3744 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new TreatExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6565,7 +6574,7 @@
   case 388:
 
 /* Line 678 of lalr1.cc  */
-#line 3753 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3754 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6574,7 +6583,7 @@
   case 389:
 
 /* Line 678 of lalr1.cc  */
-#line 3757 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3758 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CastableExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6585,7 +6594,7 @@
   case 390:
 
 /* Line 678 of lalr1.cc  */
-#line 3767 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3768 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6594,7 +6603,7 @@
   case 391:
 
 /* Line 678 of lalr1.cc  */
-#line 3771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3772 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CastExpr(
                 LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<SingleType*>((yysemantic_stack_[(4) - (4)].node))
@@ -6605,52 +6614,70 @@
   case 392:
 
 /* Line 678 of lalr1.cc  */
-#line 3781 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3782 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
+      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
+    }
     break;
 
   case 393:
 
 /* Line 678 of lalr1.cc  */
-#line 3785 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3786 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new UnaryExpr( LOC((yyloc)), dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].expr) );
-        }
+      (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
+    }
     break;
 
   case 394:
 
 /* Line 678 of lalr1.cc  */
-#line 3793 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3795 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SignList( LOC((yyloc)), true );
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 395:
 
 /* Line 678 of lalr1.cc  */
-#line 3797 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3799 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SignList( LOC((yyloc)), false );
+            (yyval.expr) = new UnaryExpr( LOC((yyloc)), dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
   case 396:
 
 /* Line 678 of lalr1.cc  */
-#line 3801 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3807 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            (yyval.node) = new SignList( LOC((yyloc)), true );
         }
     break;
 
   case 397:
 
 /* Line 678 of lalr1.cc  */
-#line 3805 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3811 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new SignList( LOC((yyloc)), false );
+        }
+    break;
+
+  case 398:
+
+/* Line 678 of lalr1.cc  */
+#line 3815 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
+
+  case 399:
+
+/* Line 678 of lalr1.cc  */
+#line 3819 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
                 sl->negate();
@@ -6658,28 +6685,10 @@
         }
     break;
 
-  case 398:
-
-/* Line 678 of lalr1.cc  */
-#line 3815 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 399:
-
-/* Line 678 of lalr1.cc  */
-#line 3819 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 400:
 
 /* Line 678 of lalr1.cc  */
-#line 3823 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3829 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6688,133 +6697,151 @@
   case 401:
 
 /* Line 678 of lalr1.cc  */
-#line 3830 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3833 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 402:
+
+/* Line 678 of lalr1.cc  */
+#line 3837 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 403:
+
+/* Line 678 of lalr1.cc  */
+#line 3844 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
         (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
       }
     break;
 
-  case 402:
+  case 404:
 
 /* Line 678 of lalr1.cc  */
-#line 3835 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3849 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
         (yyval.expr) = new SimpleMapExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
       }
     break;
 
-  case 403:
+  case 405:
 
 /* Line 678 of lalr1.cc  */
-#line 3843 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3857 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_eq );
         }
     break;
 
-  case 404:
+  case 406:
 
 /* Line 678 of lalr1.cc  */
-#line 3847 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3861 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ne );
         }
     break;
 
-  case 405:
+  case 407:
 
 /* Line 678 of lalr1.cc  */
-#line 3851 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3865 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_lt );
         }
     break;
 
-  case 406:
+  case 408:
 
 /* Line 678 of lalr1.cc  */
-#line 3855 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3869 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_le );
         }
     break;
 
-  case 407:
+  case 409:
 
 /* Line 678 of lalr1.cc  */
-#line 3859 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3873 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_gt );
         }
     break;
 
-  case 408:
+  case 410:
 
 /* Line 678 of lalr1.cc  */
-#line 3863 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3877 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ge );
         }
     break;
 
-  case 409:
+  case 411:
 
 /* Line 678 of lalr1.cc  */
-#line 3871 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3885 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_is );
         }
     break;
 
-  case 410:
+  case 412:
 
 /* Line 678 of lalr1.cc  */
-#line 3875 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3889 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_precedes );
         }
     break;
 
-  case 411:
+  case 413:
 
 /* Line 678 of lalr1.cc  */
-#line 3879 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3893 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_follows );
         }
     break;
 
-  case 412:
+  case 414:
 
 /* Line 678 of lalr1.cc  */
-#line 3887 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3901 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 413:
+  case 415:
 
 /* Line 678 of lalr1.cc  */
-#line 3891 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3905 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "lax", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 414:
+  case 416:
 
 /* Line 678 of lalr1.cc  */
-#line 3895 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3909 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(5) - (4)].expr) );
         }
     break;
 
-  case 415:
+  case 417:
 
 /* Line 678 of lalr1.cc  */
-#line 3899 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3913 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr(
                 LOC((yyloc)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (3)].node))->get_name(), (yysemantic_stack_[(6) - (5)].expr)
@@ -6823,10 +6850,10 @@
         }
     break;
 
-  case 416:
+  case 418:
 
 /* Line 678 of lalr1.cc  */
-#line 3910 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(3) - (1)].node)), NULL
@@ -6834,10 +6861,10 @@
         }
     break;
 
-  case 417:
+  case 419:
 
 /* Line 678 of lalr1.cc  */
-#line 3916 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3930 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(4) - (1)].node)), (yysemantic_stack_[(4) - (3)].expr)
@@ -6845,10 +6872,10 @@
         }
     break;
 
-  case 418:
+  case 420:
 
 /* Line 678 of lalr1.cc  */
-#line 3926 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3940 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             PragmaList *pl = new PragmaList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -6856,10 +6883,10 @@
         }
     break;
 
-  case 419:
+  case 421:
 
 /* Line 678 of lalr1.cc  */
-#line 3932 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3946 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if ( PragmaList *pl = dynamic_cast<PragmaList*>((yysemantic_stack_[(2) - (1)].node)) )
                 pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -6867,46 +6894,46 @@
         }
     break;
 
-  case 420:
+  case 422:
 
 /* Line 678 of lalr1.cc  */
-#line 3942 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3956 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
         }
     break;
 
-  case 421:
+  case 423:
 
 /* Line 678 of lalr1.cc  */
-#line 3946 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3960 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) ), "" );
         }
     break;
 
-  case 422:
+  case 424:
 
 /* Line 678 of lalr1.cc  */
-#line 3950 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 3964 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), true ), "" );
         }
     break;
 
-  case 423:
+  case 425:
 
 /* Line 678 of lalr1.cc  */
-#line 3988 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4002 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new PathExpr(LOC((yyloc)), ParseConstants::path_leading_lone_slash, NULL);
     }
     break;
 
-  case 424:
+  case 426:
 
 /* Line 678 of lalr1.cc  */
-#line 3992 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4006 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -6918,10 +6945,10 @@
     }
     break;
 
-  case 425:
+  case 427:
 
 /* Line 678 of lalr1.cc  */
-#line 4002 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4016 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -6933,10 +6960,10 @@
     }
     break;
 
-  case 426:
+  case 428:
 
 /* Line 678 of lalr1.cc  */
-#line 4012 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4026 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe = dynamic_cast<RelativePathExpr*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (!rpe ?
@@ -6945,19 +6972,19 @@
     }
     break;
 
-  case 427:
+  case 429:
 
 /* Line 678 of lalr1.cc  */
-#line 4025 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4039 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = NULL;
     }
     break;
 
-  case 428:
+  case 430:
 
 /* Line 678 of lalr1.cc  */
-#line 4034 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4048 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       AxisStep* as = dynamic_cast<AxisStep*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (as ?
@@ -6969,46 +6996,46 @@
     }
     break;
 
-  case 429:
+  case 431:
 
 /* Line 678 of lalr1.cc  */
-#line 4044 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4058 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slash, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr), false);
     }
     break;
 
-  case 430:
+  case 432:
 
 /* Line 678 of lalr1.cc  */
-#line 4048 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4062 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new RelativePathExpr(LOC((yyloc)), ParseConstants::st_slashslash, (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr), false);
     }
     break;
 
-  case 431:
-
-/* Line 678 of lalr1.cc  */
-#line 4057 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 432:
-
-/* Line 678 of lalr1.cc  */
-#line 4061 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 433:
 
 /* Line 678 of lalr1.cc  */
-#line 4070 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4071 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 434:
+
+/* Line 678 of lalr1.cc  */
+#line 4075 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 435:
+
+/* Line 678 of lalr1.cc  */
+#line 4084 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ForwardStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7016,10 +7043,10 @@
         }
     break;
 
-  case 434:
+  case 436:
 
 /* Line 678 of lalr1.cc  */
-#line 4076 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4090 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7029,10 +7056,10 @@
         }
     break;
 
-  case 435:
+  case 437:
 
 /* Line 678 of lalr1.cc  */
-#line 4084 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4098 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ReverseStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7040,10 +7067,10 @@
         }
     break;
 
-  case 436:
+  case 438:
 
 /* Line 678 of lalr1.cc  */
-#line 4090 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4104 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7053,10 +7080,10 @@
         }
     break;
 
-  case 437:
+  case 439:
 
 /* Line 678 of lalr1.cc  */
-#line 4102 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4116 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<ForwardAxis*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].node)
@@ -7064,10 +7091,10 @@
         }
     break;
 
-  case 438:
+  case 440:
 
 /* Line 678 of lalr1.cc  */
-#line 4108 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4122 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<AbbrevForwardStep*>((yysemantic_stack_[(1) - (1)].node))
@@ -7075,46 +7102,46 @@
         }
     break;
 
-  case 439:
+  case 441:
 
 /* Line 678 of lalr1.cc  */
-#line 4118 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4132 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_child );
         }
     break;
 
-  case 440:
+  case 442:
 
 /* Line 678 of lalr1.cc  */
-#line 4122 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4136 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_descendant);
         }
     break;
 
-  case 441:
+  case 443:
 
 /* Line 678 of lalr1.cc  */
-#line 4126 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4140 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_attribute );
         }
     break;
 
-  case 442:
+  case 444:
 
 /* Line 678 of lalr1.cc  */
-#line 4130 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4144 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_self );
         }
     break;
 
-  case 443:
+  case 445:
 
 /* Line 678 of lalr1.cc  */
-#line 4134 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4148 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_descendant_or_self
@@ -7122,10 +7149,10 @@
         }
     break;
 
-  case 444:
+  case 446:
 
 /* Line 678 of lalr1.cc  */
-#line 4140 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4154 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_following_sibling
@@ -7133,46 +7160,46 @@
         }
     break;
 
-  case 445:
+  case 447:
 
 /* Line 678 of lalr1.cc  */
-#line 4146 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4160 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_following );
         }
     break;
 
-  case 446:
+  case 448:
 
 /* Line 678 of lalr1.cc  */
-#line 4154 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4168 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), false );
         }
     break;
 
-  case 447:
+  case 449:
 
 /* Line 678 of lalr1.cc  */
-#line 4158 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4172 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].node), true );
         }
     break;
 
-  case 448:
+  case 450:
 
 /* Line 678 of lalr1.cc  */
-#line 4166 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4180 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseStep( LOC((yyloc)), dynamic_cast<ReverseAxis*>((yysemantic_stack_[(2) - (1)].node)), (yysemantic_stack_[(2) - (2)].node) );
         }
     break;
 
-  case 449:
+  case 451:
 
 /* Line 678 of lalr1.cc  */
-#line 4170 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4184 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             ReverseAxis *ra = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_parent
@@ -7181,28 +7208,28 @@
         }
     break;
 
-  case 450:
+  case 452:
 
 /* Line 678 of lalr1.cc  */
-#line 4181 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4195 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_parent );
         }
     break;
 
-  case 451:
+  case 453:
 
 /* Line 678 of lalr1.cc  */
-#line 4185 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4199 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_ancestor );
         }
     break;
 
-  case 452:
+  case 454:
 
 /* Line 678 of lalr1.cc  */
-#line 4189 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4203 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_preceding_sibling
@@ -7210,19 +7237,19 @@
         }
     break;
 
-  case 453:
+  case 455:
 
 /* Line 678 of lalr1.cc  */
-#line 4195 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4209 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_preceding );
         }
     break;
 
-  case 454:
+  case 456:
 
 /* Line 678 of lalr1.cc  */
-#line 4199 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4213 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_ancestor_or_self
@@ -7230,118 +7257,118 @@
         }
     break;
 
-  case 455:
-
-/* Line 678 of lalr1.cc  */
-#line 4213 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 456:
-
-/* Line 678 of lalr1.cc  */
-#line 4217 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 457:
 
 /* Line 678 of lalr1.cc  */
-#line 4225 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4227 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 458:
+
+/* Line 678 of lalr1.cc  */
+#line 4231 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 459:
+
+/* Line 678 of lalr1.cc  */
+#line 4239 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
-  case 458:
+  case 460:
 
 /* Line 678 of lalr1.cc  */
-#line 4229 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4243 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 459:
+  case 461:
 
 /* Line 678 of lalr1.cc  */
-#line 4239 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4253 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
     }
     break;
 
-  case 460:
+  case 462:
 
 /* Line 678 of lalr1.cc  */
-#line 4243 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4257 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
     }
     break;
 
-  case 461:
+  case 463:
 
 /* Line 678 of lalr1.cc  */
-#line 4247 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4261 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
     }
     break;
 
-  case 462:
+  case 464:
 
 /* Line 678 of lalr1.cc  */
-#line 4251 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4265 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
     }
     break;
 
-  case 463:
+  case 465:
 
 /* Line 678 of lalr1.cc  */
-#line 4260 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4274 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
      }
     break;
 
-  case 464:
+  case 466:
 
 /* Line 678 of lalr1.cc  */
-#line 4264 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4278 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new FilterExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr), dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (2)].node)));
      }
     break;
 
-  case 465:
+  case 467:
 
 /* Line 678 of lalr1.cc  */
-#line 4268 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4282 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
      }
     break;
 
-  case 466:
+  case 468:
 
 /* Line 678 of lalr1.cc  */
-#line 4272 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4286 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)));
      }
     break;
 
-  case 467:
+  case 469:
 
 /* Line 678 of lalr1.cc  */
-#line 4280 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4294 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             PredicateList *pl = new PredicateList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7349,10 +7376,10 @@
         }
     break;
 
-  case 468:
+  case 470:
 
 /* Line 678 of lalr1.cc  */
-#line 4286 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4300 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if ( PredicateList *pl = dynamic_cast<PredicateList*>((yysemantic_stack_[(2) - (1)].node)) )
                 pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(2) - (2)].expr)) );
@@ -7360,37 +7387,19 @@
         }
     break;
 
-  case 469:
+  case 471:
 
 /* Line 678 of lalr1.cc  */
-#line 4296 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4310 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
         }
     break;
 
-  case 470:
-
-/* Line 678 of lalr1.cc  */
-#line 4304 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 471:
-
-/* Line 678 of lalr1.cc  */
-#line 4308 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 472:
 
 /* Line 678 of lalr1.cc  */
-#line 4312 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4318 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7399,7 +7408,7 @@
   case 473:
 
 /* Line 678 of lalr1.cc  */
-#line 4316 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4322 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7408,7 +7417,7 @@
   case 474:
 
 /* Line 678 of lalr1.cc  */
-#line 4320 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4326 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7417,7 +7426,7 @@
   case 475:
 
 /* Line 678 of lalr1.cc  */
-#line 4324 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4330 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7426,7 +7435,7 @@
   case 476:
 
 /* Line 678 of lalr1.cc  */
-#line 4328 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4334 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7435,7 +7444,7 @@
   case 477:
 
 /* Line 678 of lalr1.cc  */
-#line 4332 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4338 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7444,7 +7453,7 @@
   case 478:
 
 /* Line 678 of lalr1.cc  */
-#line 4336 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4342 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7453,7 +7462,7 @@
   case 479:
 
 /* Line 678 of lalr1.cc  */
-#line 4340 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4346 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7462,7 +7471,7 @@
   case 480:
 
 /* Line 678 of lalr1.cc  */
-#line 4345 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4350 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7471,7 +7480,7 @@
   case 481:
 
 /* Line 678 of lalr1.cc  */
-#line 4349 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4354 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7480,7 +7489,7 @@
   case 482:
 
 /* Line 678 of lalr1.cc  */
-#line 4353 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4359 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7489,7 +7498,7 @@
   case 483:
 
 /* Line 678 of lalr1.cc  */
-#line 4357 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4363 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7498,25 +7507,43 @@
   case 484:
 
 /* Line 678 of lalr1.cc  */
-#line 4365 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4367 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 485:
 
 /* Line 678 of lalr1.cc  */
-#line 4369 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4371 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+          (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
     break;
 
   case 486:
 
 /* Line 678 of lalr1.cc  */
-#line 4377 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4379 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 487:
+
+/* Line 678 of lalr1.cc  */
+#line 4383 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 488:
+
+/* Line 678 of lalr1.cc  */
+#line 4391 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_decimal, *(yysemantic_stack_[(1) - (1)].decval)
@@ -7525,10 +7552,10 @@
         }
     break;
 
-  case 487:
+  case 489:
 
 /* Line 678 of lalr1.cc  */
-#line 4384 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4398 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_integer, *(yysemantic_stack_[(1) - (1)].ival)
@@ -7537,10 +7564,10 @@
         }
     break;
 
-  case 488:
+  case 490:
 
 /* Line 678 of lalr1.cc  */
-#line 4391 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4405 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_double, *(yysemantic_stack_[(1) - (1)].dval)
@@ -7549,73 +7576,73 @@
         }
     break;
 
-  case 489:
+  case 491:
 
 /* Line 678 of lalr1.cc  */
-#line 4402 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4416 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new VarRef(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)));
         }
     break;
 
-  case 490:
+  case 492:
 
 /* Line 678 of lalr1.cc  */
-#line 4410 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4424 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), NULL);
         }
     break;
 
-  case 491:
+  case 493:
 
 /* Line 678 of lalr1.cc  */
-#line 4414 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4428 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 492:
+  case 494:
 
 /* Line 678 of lalr1.cc  */
-#line 4422 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4436 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ContextItemExpr( LOC((yyloc)) );
         }
     break;
 
-  case 493:
+  case 495:
 
 /* Line 678 of lalr1.cc  */
-#line 4430 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4444 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new OrderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 494:
+  case 496:
 
 /* Line 678 of lalr1.cc  */
-#line 4438 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4452 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnorderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
-  case 495:
+  case 497:
 
 /* Line 678 of lalr1.cc  */
-#line 4492 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4506 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new FunctionCall( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), NULL );
         }
     break;
 
-  case 496:
+  case 498:
 
 /* Line 678 of lalr1.cc  */
-#line 4496 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4510 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new FunctionCall(
                 LOC((yyloc)),
@@ -7625,10 +7652,10 @@
         }
     break;
 
-  case 497:
+  case 499:
 
 /* Line 678 of lalr1.cc  */
-#line 4509 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4523 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             ArgList *al = new ArgList( LOC((yyloc)) );
             al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
@@ -7636,10 +7663,10 @@
         }
     break;
 
-  case 498:
+  case 500:
 
 /* Line 678 of lalr1.cc  */
-#line 4515 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4529 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
                 al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
@@ -7647,28 +7674,10 @@
         }
     break;
 
-  case 499:
-
-/* Line 678 of lalr1.cc  */
-#line 4525 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
-  case 500:
-
-/* Line 678 of lalr1.cc  */
-#line 4529 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-        }
-    break;
-
   case 501:
 
 /* Line 678 of lalr1.cc  */
-#line 4537 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4539 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7677,7 +7686,7 @@
   case 502:
 
 /* Line 678 of lalr1.cc  */
-#line 4541 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4543 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7686,7 +7695,7 @@
   case 503:
 
 /* Line 678 of lalr1.cc  */
-#line 4545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4551 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7695,7 +7704,25 @@
   case 504:
 
 /* Line 678 of lalr1.cc  */
-#line 4553 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4555 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 505:
+
+/* Line 678 of lalr1.cc  */
+#line 4559 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+        }
+    break;
+
+  case 506:
+
+/* Line 678 of lalr1.cc  */
+#line 4567 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemConstructor(
                 LOC((yyloc)),
@@ -7707,10 +7734,10 @@
         }
     break;
 
-  case 505:
+  case 507:
 
 /* Line 678 of lalr1.cc  */
-#line 4563 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4577 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemConstructor(
                 LOC((yyloc)),
@@ -7722,10 +7749,10 @@
         }
     break;
 
-  case 506:
+  case 508:
 
 /* Line 678 of lalr1.cc  */
-#line 4573 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4587 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(8) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(8) - (6)].expr))->get_qname())
             {
@@ -7744,10 +7771,10 @@
         }
     break;
 
-  case 507:
+  case 509:
 
 /* Line 678 of lalr1.cc  */
-#line 4590 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4604 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
             {
@@ -7766,10 +7793,10 @@
         }
     break;
 
-  case 508:
+  case 510:
 
 /* Line 678 of lalr1.cc  */
-#line 4607 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4621 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(9) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(9) - (7)].expr))->get_qname())
             {
@@ -7788,10 +7815,10 @@
         }
     break;
 
-  case 509:
+  case 511:
 
 /* Line 678 of lalr1.cc  */
-#line 4624 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4638 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if (static_cast<QName*>((yysemantic_stack_[(10) - (2)].expr))->get_qname() != static_cast<QName*>((yysemantic_stack_[(10) - (8)].expr))->get_qname())
             {
@@ -7810,10 +7837,10 @@
         }
     break;
 
-  case 510:
+  case 512:
 
 /* Line 678 of lalr1.cc  */
-#line 4646 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4660 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             DirElemContentList *decl = new DirElemContentList( LOC((yyloc)) );
             decl->push_back( dynamic_cast<DirElemContent*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7821,10 +7848,10 @@
         }
     break;
 
-  case 511:
+  case 513:
 
 /* Line 678 of lalr1.cc  */
-#line 4652 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4666 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             DirElemContentList *decl = dynamic_cast<DirElemContentList*>((yysemantic_stack_[(2) - (1)].node));
             if ( decl )
@@ -7833,10 +7860,10 @@
         }
     break;
 
-  case 512:
+  case 514:
 
 /* Line 678 of lalr1.cc  */
-#line 4663 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4677 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             DirAttributeList *dal = new DirAttributeList( LOC((yyloc)) );
             dal->push_back( dynamic_cast<DirAttr*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7844,10 +7871,10 @@
         }
     break;
 
-  case 513:
+  case 515:
 
 /* Line 678 of lalr1.cc  */
-#line 4669 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4683 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             DirAttributeList *dal = dynamic_cast<DirAttributeList*>((yysemantic_stack_[(2) - (1)].node));
             if ( dal )
@@ -7856,10 +7883,10 @@
         }
     break;
 
-  case 514:
+  case 516:
 
 /* Line 678 of lalr1.cc  */
-#line 4680 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4694 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DirAttr(
                 LOC((yyloc)),
@@ -7869,114 +7896,114 @@
         }
     break;
 
-  case 517:
+  case 519:
 
 /* Line 678 of lalr1.cc  */
-#line 4697 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4711 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                 dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 518:
+  case 520:
 
 /* Line 678 of lalr1.cc  */
-#line 4702 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4716 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                 dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 519:
+  case 521:
 
 /* Line 678 of lalr1.cc  */
-#line 4711 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4725 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new QuoteAttrContentList( LOC((yyloc)) );
         }
     break;
 
-  case 520:
-
-/* Line 678 of lalr1.cc  */
-#line 4715 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 521:
-
-/* Line 678 of lalr1.cc  */
-#line 4722 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
-            qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
-            (yyval.node) = qacl;
-        }
-    break;
-
   case 522:
 
 /* Line 678 of lalr1.cc  */
-#line 4728 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4729 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
-            qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
-            (yyval.node) = qacl;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 523:
 
 /* Line 678 of lalr1.cc  */
-#line 4734 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4736 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            QuoteAttrContentList *qacl =
-                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
-            if ( qacl )
-                qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
+            qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
+            (yyval.node) = qacl;
         }
     break;
 
   case 524:
 
 /* Line 678 of lalr1.cc  */
-#line 4742 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4742 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            QuoteAttrContentList *qacl =
-                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
-            if ( qacl )
-                qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(2) - (2)].node)) );
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
+            qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
+            (yyval.node) = qacl;
         }
     break;
 
   case 525:
 
 /* Line 678 of lalr1.cc  */
-#line 4754 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4748 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
+            QuoteAttrContentList *qacl =
+                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
+            if ( qacl )
+                qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
   case 526:
 
 /* Line 678 of lalr1.cc  */
-#line 4758 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4756 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            QuoteAttrContentList *qacl =
+                dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
+            if ( qacl )
+                qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(2) - (2)].node)) );
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
     break;
 
   case 527:
 
 /* Line 678 of lalr1.cc  */
-#line 4765 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4768 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
+        }
+    break;
+
+  case 528:
+
+/* Line 678 of lalr1.cc  */
+#line 4772 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 529:
+
+/* Line 678 of lalr1.cc  */
+#line 4779 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
             aacl->push_back( new AposAttrValueContent( LOC((yyloc)),"'") );
@@ -7984,10 +8011,10 @@
         }
     break;
 
-  case 528:
+  case 530:
 
 /* Line 678 of lalr1.cc  */
-#line 4771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4785 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
             aacl->push_back( dynamic_cast<AposAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7995,10 +8022,10 @@
         }
     break;
 
-  case 529:
+  case 531:
 
 /* Line 678 of lalr1.cc  */
-#line 4777 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4791 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
             if (aacl)
@@ -8007,10 +8034,10 @@
         }
     break;
 
-  case 530:
+  case 532:
 
 /* Line 678 of lalr1.cc  */
-#line 4784 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4798 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
             if ( aacl )
@@ -8019,19 +8046,19 @@
         }
     break;
 
-  case 531:
+  case 533:
 
 /* Line 678 of lalr1.cc  */
-#line 4795 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4809 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new QuoteAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 532:
+  case 534:
 
 /* Line 678 of lalr1.cc  */
-#line 4799 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4813 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new QuoteAttrValueContent(
                 LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr))
@@ -8039,19 +8066,19 @@
         }
     break;
 
-  case 533:
+  case 535:
 
 /* Line 678 of lalr1.cc  */
-#line 4809 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4823 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AposAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 534:
+  case 536:
 
 /* Line 678 of lalr1.cc  */
-#line 4813 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4827 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AposAttrValueContent(
                 LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr))
@@ -8059,48 +8086,48 @@
         }
     break;
 
-  case 535:
+  case 537:
 
 /* Line 678 of lalr1.cc  */
-#line 4823 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4837 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemContent( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr) );
         }
     break;
 
-  case 536:
+  case 538:
 
 /* Line 678 of lalr1.cc  */
-#line 4827 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4841 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DirElemContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 537:
+  case 539:
 
 /* Line 678 of lalr1.cc  */
-#line 4831 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4845 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             rchandle<CDataSection> cdata_h = dynamic_cast<CDataSection*>((yysemantic_stack_[(1) - (1)].expr));
             (yyval.expr) = new DirElemContent( LOC((yyloc)), cdata_h );
         }
     break;
 
-  case 538:
+  case 540:
 
 /* Line 678 of lalr1.cc  */
-#line 4836 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4850 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             rchandle<CommonContent> cont_h = dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr));
             (yyval.expr) = new DirElemContent( LOC((yyloc)), cont_h );
         }
     break;
 
-  case 539:
+  case 541:
 
 /* Line 678 of lalr1.cc  */
-#line 4845 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4859 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(
                 LOC((yyloc)), ParseConstants::cont_charref, SYMTAB((yysemantic_stack_[(1) - (1)].sval))
@@ -8108,10 +8135,10 @@
         }
     break;
 
-  case 540:
+  case 542:
 
 /* Line 678 of lalr1.cc  */
-#line 4851 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4865 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(
                 LOC((yyloc)), ParseConstants::cont_escape_lbrace
@@ -8119,10 +8146,10 @@
         }
     break;
 
-  case 541:
+  case 543:
 
 /* Line 678 of lalr1.cc  */
-#line 4857 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4871 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(
                 LOC((yyloc)), ParseConstants::cont_escape_rbrace
@@ -8130,82 +8157,64 @@
         }
     break;
 
-  case 542:
+  case 544:
 
 /* Line 678 of lalr1.cc  */
-#line 4863 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4877 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new CommonContent(LOC((yyloc)), new EnclosedExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr)));
         }
     break;
 
-  case 543:
+  case 545:
 
 /* Line 678 of lalr1.cc  */
-#line 4871 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4885 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 544:
+  case 546:
 
 /* Line 678 of lalr1.cc  */
-#line 4876 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4890 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), "" );
     }
     break;
 
-  case 545:
+  case 547:
 
 /* Line 678 of lalr1.cc  */
-#line 4884 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4898 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 546:
+  case 548:
 
 /* Line 678 of lalr1.cc  */
-#line 4889 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4903 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
     break;
 
-  case 547:
+  case 549:
 
 /* Line 678 of lalr1.cc  */
-#line 4897 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4911 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 548:
-
-/* Line 678 of lalr1.cc  */
-#line 4905 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 549:
-
-/* Line 678 of lalr1.cc  */
-#line 4910 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 550:
 
 /* Line 678 of lalr1.cc  */
-#line 4915 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4919 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -8214,7 +8223,7 @@
   case 551:
 
 /* Line 678 of lalr1.cc  */
-#line 4920 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4924 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -8223,7 +8232,7 @@
   case 552:
 
 /* Line 678 of lalr1.cc  */
-#line 4925 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4929 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -8232,7 +8241,7 @@
   case 553:
 
 /* Line 678 of lalr1.cc  */
-#line 4930 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4934 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -8241,119 +8250,115 @@
   case 554:
 
 /* Line 678 of lalr1.cc  */
-#line 4939 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4939 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 555:
 
 /* Line 678 of lalr1.cc  */
-#line 4947 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4944 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
-        }
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
     break;
 
   case 556:
 
 /* Line 678 of lalr1.cc  */
-#line 4951 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4953 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+            (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 557:
 
 /* Line 678 of lalr1.cc  */
-#line 4968 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4961 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-          (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
+            (yyval.expr) = new CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
         }
     break;
 
   case 558:
 
 /* Line 678 of lalr1.cc  */
-#line 4972 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4965 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+            (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
         }
     break;
 
   case 559:
 
 /* Line 678 of lalr1.cc  */
-#line 4980 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4982 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+          (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
   case 560:
 
 /* Line 678 of lalr1.cc  */
-#line 4988 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4986 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+            (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
         }
     break;
 
   case 561:
 
 /* Line 678 of lalr1.cc  */
-#line 4996 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 4994 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr) );
+            (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 562:
 
 /* Line 678 of lalr1.cc  */
-#line 5000 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5002 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+            (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
     break;
 
   case 563:
 
 /* Line 678 of lalr1.cc  */
-#line 5008 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5010 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SingleType(
-                LOC((yyloc)), dynamic_cast<AtomicType*>((yysemantic_stack_[(1) - (1)].node)), false
-            );
+            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
   case 564:
 
 /* Line 678 of lalr1.cc  */
-#line 5014 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5014 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SingleType(
-                LOC((yyloc)), dynamic_cast<AtomicType*>((yysemantic_stack_[(2) - (1)].node)), true
-            );
+            (yyval.expr) = new CompPIConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
         }
     break;
 
   case 565:
 
 /* Line 678 of lalr1.cc  */
-#line 5024 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5022 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
-        }
+      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+    }
     break;
 
   case 566:
 
 /* Line 678 of lalr1.cc  */
-#line 5032 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5030 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
         }
@@ -8362,7 +8367,7 @@
   case 567:
 
 /* Line 678 of lalr1.cc  */
-#line 5036 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5034 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
         }
@@ -8371,7 +8376,7 @@
   case 568:
 
 /* Line 678 of lalr1.cc  */
-#line 5040 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5038 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
         }
@@ -8380,7 +8385,7 @@
   case 569:
 
 /* Line 678 of lalr1.cc  */
-#line 5075 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5073 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_optionally
@@ -8391,7 +8396,7 @@
   case 570:
 
 /* Line 678 of lalr1.cc  */
-#line 5081 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5079 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_zero_or_more
@@ -8402,7 +8407,7 @@
   case 571:
 
 /* Line 678 of lalr1.cc  */
-#line 5087 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5085 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OccurrenceIndicator(
                 LOC((yyloc)), ParseConstants::occurs_one_or_more
@@ -8413,7 +8418,7 @@
   case 572:
 
 /* Line 678 of lalr1.cc  */
-#line 5097 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5095 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8422,7 +8427,7 @@
   case 573:
 
 /* Line 678 of lalr1.cc  */
-#line 5101 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5099 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8431,7 +8436,7 @@
   case 574:
 
 /* Line 678 of lalr1.cc  */
-#line 5105 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5103 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ItemType( LOC((yyloc)), true );
         }
@@ -8440,7 +8445,7 @@
   case 575:
 
 /* Line 678 of lalr1.cc  */
-#line 5109 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5107 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new StructuredItemType(LOC((yyloc)));
         }
@@ -8449,7 +8454,7 @@
   case 576:
 
 /* Line 678 of lalr1.cc  */
-#line 5113 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5111 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8458,7 +8463,7 @@
   case 577:
 
 /* Line 678 of lalr1.cc  */
-#line 5117 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5115 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8467,7 +8472,7 @@
   case 578:
 
 /* Line 678 of lalr1.cc  */
-#line 5121 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5119 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8476,7 +8481,7 @@
   case 579:
 
 /* Line 678 of lalr1.cc  */
-#line 5128 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5126 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           TypeList* aTypeList = new TypeList(LOC ((yyloc)));
           aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
@@ -8487,7 +8492,7 @@
   case 580:
 
 /* Line 678 of lalr1.cc  */
-#line 5134 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5132 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           TypeList* aTypeList = dynamic_cast<TypeList *>((yysemantic_stack_[(3) - (1)].node));
           aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(3) - (3)].node)));
@@ -8498,25 +8503,25 @@
   case 581:
 
 /* Line 678 of lalr1.cc  */
-#line 5144 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5142 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-        }
+      (yyval.node) = new AtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+    }
     break;
 
   case 582:
 
 /* Line 678 of lalr1.cc  */
-#line 5152 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5150 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
+      (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+    }
     break;
 
   case 583:
 
 /* Line 678 of lalr1.cc  */
-#line 5156 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5158 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8525,7 +8530,7 @@
   case 584:
 
 /* Line 678 of lalr1.cc  */
-#line 5160 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5162 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8534,7 +8539,7 @@
   case 585:
 
 /* Line 678 of lalr1.cc  */
-#line 5164 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5166 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8543,7 +8548,7 @@
   case 586:
 
 /* Line 678 of lalr1.cc  */
-#line 5168 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5170 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8552,7 +8557,7 @@
   case 587:
 
 /* Line 678 of lalr1.cc  */
-#line 5172 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5174 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8561,7 +8566,7 @@
   case 588:
 
 /* Line 678 of lalr1.cc  */
-#line 5176 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5178 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8570,7 +8575,7 @@
   case 589:
 
 /* Line 678 of lalr1.cc  */
-#line 5180 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5182 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8579,7 +8584,7 @@
   case 590:
 
 /* Line 678 of lalr1.cc  */
-#line 5184 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5186 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8588,34 +8593,43 @@
   case 591:
 
 /* Line 678 of lalr1.cc  */
-#line 5192 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5190 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 592:
+
+/* Line 678 of lalr1.cc  */
+#line 5198 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AnyKindTest( LOC((yyloc)) );
         }
     break;
 
-  case 592:
+  case 593:
 
 /* Line 678 of lalr1.cc  */
-#line 5200 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5206 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DocumentTest( LOC((yyloc)) );
         }
     break;
 
-  case 593:
+  case 594:
 
 /* Line 678 of lalr1.cc  */
-#line 5204 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5210 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DocumentTest( LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)) );
         }
     break;
 
-  case 594:
+  case 595:
 
 /* Line 678 of lalr1.cc  */
-#line 5208 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5214 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new DocumentTest(
                 LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node))
@@ -8623,46 +8637,37 @@
         }
     break;
 
-  case 595:
+  case 596:
 
 /* Line 678 of lalr1.cc  */
-#line 5218 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5224 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new TextTest( LOC((yyloc)) );
         }
     break;
 
-  case 596:
+  case 597:
 
 /* Line 678 of lalr1.cc  */
-#line 5226 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5232 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new CommentTest( LOC((yyloc)));
         }
     break;
 
-  case 597:
+  case 598:
 
 /* Line 678 of lalr1.cc  */
-#line 5234 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5240 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new PITest( LOC((yyloc)), "" );
         }
     break;
 
-  case 598:
-
-/* Line 678 of lalr1.cc  */
-#line 5238 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
-    break;
-
   case 599:
 
 /* Line 678 of lalr1.cc  */
-#line 5242 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5244 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
@@ -8671,16 +8676,25 @@
   case 600:
 
 /* Line 678 of lalr1.cc  */
-#line 5250 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5248 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 601:
 
 /* Line 678 of lalr1.cc  */
-#line 5254 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5256 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+        }
+    break;
+
+  case 602:
+
+/* Line 678 of lalr1.cc  */
+#line 5260 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AttributeTest(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
@@ -8688,10 +8702,10 @@
         }
     break;
 
-  case 602:
+  case 603:
 
 /* Line 678 of lalr1.cc  */
-#line 5260 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5266 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AttributeTest(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
@@ -8699,19 +8713,19 @@
         }
     break;
 
-  case 603:
-
-/* Line 678 of lalr1.cc  */
-#line 5266 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
-    break;
-
   case 604:
 
 /* Line 678 of lalr1.cc  */
-#line 5270 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5272 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+        }
+    break;
+
+  case 605:
+
+/* Line 678 of lalr1.cc  */
+#line 5276 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AttributeTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
@@ -8719,28 +8733,28 @@
         }
     break;
 
-  case 605:
+  case 606:
 
 /* Line 678 of lalr1.cc  */
-#line 5280 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5286 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 606:
+  case 607:
 
 /* Line 678 of lalr1.cc  */
-#line 5288 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5294 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
         }
     break;
 
-  case 607:
+  case 608:
 
 /* Line 678 of lalr1.cc  */
-#line 5292 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5298 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
@@ -8748,10 +8762,10 @@
         }
     break;
 
-  case 608:
+  case 609:
 
 /* Line 678 of lalr1.cc  */
-#line 5298 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5304 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)),
@@ -8762,10 +8776,10 @@
         }
     break;
 
-  case 609:
+  case 610:
 
 /* Line 678 of lalr1.cc  */
-#line 5307 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5313 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)),
@@ -8776,10 +8790,10 @@
         }
     break;
 
-  case 610:
+  case 611:
 
 /* Line 678 of lalr1.cc  */
-#line 5316 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5322 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, NULL, true
@@ -8787,10 +8801,10 @@
         }
     break;
 
-  case 611:
+  case 612:
 
 /* Line 678 of lalr1.cc  */
-#line 5322 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5328 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
@@ -8798,10 +8812,10 @@
         }
     break;
 
-  case 612:
+  case 613:
 
 /* Line 678 of lalr1.cc  */
-#line 5328 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5334 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ElementTest(
                 LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
@@ -8809,55 +8823,46 @@
         }
     break;
 
-  case 613:
+  case 614:
 
 /* Line 678 of lalr1.cc  */
-#line 5338 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5344 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 614:
+  case 615:
 
 /* Line 678 of lalr1.cc  */
-#line 5355 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5361 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
     break;
 
-  case 615:
+  case 616:
 
 /* Line 678 of lalr1.cc  */
-#line 5362 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5368 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
         }
     break;
 
-  case 616:
+  case 617:
 
 /* Line 678 of lalr1.cc  */
-#line 5377 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5383 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
         }
     break;
 
-  case 617:
-
-/* Line 678 of lalr1.cc  */
-#line 5413 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
   case 618:
 
 /* Line 678 of lalr1.cc  */
-#line 5417 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5419 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -8866,16 +8871,25 @@
   case 619:
 
 /* Line 678 of lalr1.cc  */
-#line 5425 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5423 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 620:
+
+/* Line 678 of lalr1.cc  */
+#line 5431 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new LiteralFunctionItem(LOC ((yyloc)), dynamic_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].ival));
     }
     break;
 
-  case 620:
+  case 621:
 
 /* Line 678 of lalr1.cc  */
-#line 5433 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5439 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new InlineFunction(LOC((yyloc)),
                               &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
@@ -8885,19 +8899,10 @@
     }
     break;
 
-  case 621:
-
-/* Line 678 of lalr1.cc  */
-#line 5445 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
-    break;
-
   case 622:
 
 /* Line 678 of lalr1.cc  */
-#line 5449 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5451 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -8906,25 +8911,34 @@
   case 623:
 
 /* Line 678 of lalr1.cc  */
-#line 5457 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5455 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
+
+  case 624:
+
+/* Line 678 of lalr1.cc  */
+#line 5463 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
     }
     break;
 
-  case 624:
+  case 625:
 
 /* Line 678 of lalr1.cc  */
-#line 5465 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5471 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
         }
     break;
 
-  case 625:
+  case 626:
 
 /* Line 678 of lalr1.cc  */
-#line 5469 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5475 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
               dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
@@ -8932,19 +8946,19 @@
         }
     break;
 
-  case 626:
+  case 627:
 
 /* Line 678 of lalr1.cc  */
-#line 5480 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5486 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
            (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 627:
+  case 628:
 
 /* Line 678 of lalr1.cc  */
-#line 5497 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5503 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::strict_validation
@@ -8952,10 +8966,10 @@
         }
     break;
 
-  case 628:
+  case 629:
 
 /* Line 678 of lalr1.cc  */
-#line 5503 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5509 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::lax_validation
@@ -8963,10 +8977,10 @@
         }
     break;
 
-  case 629:
+  case 630:
 
 /* Line 678 of lalr1.cc  */
-#line 5509 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5515 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::skip_validation
@@ -8974,30 +8988,30 @@
         }
     break;
 
-  case 630:
-
-/* Line 678 of lalr1.cc  */
-#line 5519 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
-        }
-    break;
-
   case 631:
 
 /* Line 678 of lalr1.cc  */
-#line 5523 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5525 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 632:
 
 /* Line 678 of lalr1.cc  */
-#line 5529 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5529 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 633:
+
+/* Line 678 of lalr1.cc  */
+#line 5535 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                 LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
@@ -9005,50 +9019,50 @@
         }
     break;
 
-  case 633:
+  case 634:
 
 /* Line 678 of lalr1.cc  */
-#line 5535 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5541 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 634:
-
-/* Line 678 of lalr1.cc  */
-#line 5539 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
-            );
-        }
-    break;
-
   case 635:
 
 /* Line 678 of lalr1.cc  */
-#line 5545 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5545 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
         }
     break;
 
   case 636:
 
 /* Line 678 of lalr1.cc  */
-#line 5549 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5551 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new InsertExpr(
-                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
-            );
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 637:
 
 /* Line 678 of lalr1.cc  */
-#line 5555 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5555 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
+        }
+    break;
+
+  case 638:
+
+/* Line 678 of lalr1.cc  */
+#line 5561 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                   LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
@@ -9056,10 +9070,10 @@
         }
     break;
 
-  case 638:
+  case 639:
 
 /* Line 678 of lalr1.cc  */
-#line 5561 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5567 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                 LOC ((yyloc)),
@@ -9068,30 +9082,21 @@
         }
     break;
 
-  case 639:
-
-/* Line 678 of lalr1.cc  */
-#line 5568 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new InsertExpr(
-                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
-            );
-        }
-    break;
-
   case 640:
 
 /* Line 678 of lalr1.cc  */
-#line 5578 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5574 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+            (yyval.expr) = new InsertExpr(
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
+            );
         }
     break;
 
   case 641:
 
 /* Line 678 of lalr1.cc  */
-#line 5583 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5584 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -9100,7 +9105,16 @@
   case 642:
 
 /* Line 678 of lalr1.cc  */
-#line 5591 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5589 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 643:
+
+/* Line 678 of lalr1.cc  */
+#line 5597 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::NODE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
@@ -9108,10 +9122,10 @@
         }
     break;
 
-  case 643:
+  case 644:
 
 /* Line 678 of lalr1.cc  */
-#line 5597 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5603 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ReplaceExpr(
                 LOC((yyloc)), store::UpdateConsts::VALUE_OF_NODE, (yysemantic_stack_[(7) - (5)].expr), (yysemantic_stack_[(7) - (7)].expr)
@@ -9119,29 +9133,29 @@
         }
     break;
 
-  case 644:
+  case 645:
 
 /* Line 678 of lalr1.cc  */
-#line 5607 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5613 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new RenameExpr( LOC ((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 645:
+  case 646:
 
 /* Line 678 of lalr1.cc  */
-#line 5629 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5635 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CopyVarList *cvl = dynamic_cast<CopyVarList*>((yysemantic_stack_[(7) - (3)].expr));
       (yyval.expr) = new TransformExpr( LOC((yyloc)), cvl, (yysemantic_stack_[(7) - (5)].expr), (yysemantic_stack_[(7) - (7)].expr) );
     }
     break;
 
-  case 646:
+  case 647:
 
 /* Line 678 of lalr1.cc  */
-#line 5638 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5644 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CopyVarList* lList = new CopyVarList(LOC((yyloc)));
       lList->push_back (dynamic_cast<VarBinding*> ((yysemantic_stack_[(1) - (1)].expr)));
@@ -9149,10 +9163,10 @@
     }
     break;
 
-  case 647:
+  case 648:
 
 /* Line 678 of lalr1.cc  */
-#line 5644 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5650 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
       CopyVarList* lList = dynamic_cast<CopyVarList*>((yysemantic_stack_[(4) - (1)].expr));
       VarBinding* lBinding = dynamic_cast<VarBinding*>((yysemantic_stack_[(4) - (4)].expr));
@@ -9161,28 +9175,28 @@
     }
     break;
 
-  case 648:
+  case 649:
 
 /* Line 678 of lalr1.cc  */
-#line 5657 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5663 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = new VarBinding(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].expr));
     }
     break;
 
-  case 649:
+  case 650:
 
 /* Line 678 of lalr1.cc  */
-#line 5671 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5677 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new TryExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 650:
+  case 651:
 
 /* Line 678 of lalr1.cc  */
-#line 5678 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5684 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             CatchListExpr *cle = new CatchListExpr( LOC((yyloc)) );
             cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -9190,10 +9204,10 @@
         }
     break;
 
-  case 651:
+  case 652:
 
 /* Line 678 of lalr1.cc  */
-#line 5684 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5690 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
             if ( cle )
@@ -9202,29 +9216,29 @@
         }
     break;
 
-  case 652:
-
-/* Line 678 of lalr1.cc  */
-#line 5694 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-       (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
-       delete (yysemantic_stack_[(3) - (2)].name_test_list);
-    }
-    break;
-
   case 653:
 
 /* Line 678 of lalr1.cc  */
-#line 5703 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5700 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
+       (yyval.expr) = new CatchExpr(LOC((yyloc)), *(yysemantic_stack_[(3) - (2)].name_test_list), (yysemantic_stack_[(3) - (3)].expr));
+       delete (yysemantic_stack_[(3) - (2)].name_test_list);
     }
     break;
 
   case 654:
 
 /* Line 678 of lalr1.cc  */
-#line 5711 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5709 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
+    }
+    break;
+
+  case 655:
+
+/* Line 678 of lalr1.cc  */
+#line 5717 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             CatchExpr::NameTestList *ntl = new CatchExpr::NameTestList;
             ntl->push_back( static_cast<NameTest*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -9232,10 +9246,10 @@
         }
     break;
 
-  case 655:
+  case 656:
 
 /* Line 678 of lalr1.cc  */
-#line 5717 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5723 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             CatchExpr::NameTestList *ntl =
                 static_cast<CatchExpr::NameTestList*>((yysemantic_stack_[(3) - (1)].name_test_list));
@@ -9244,121 +9258,121 @@
         }
     break;
 
-  case 656:
+  case 657:
 
 /* Line 678 of lalr1.cc  */
-#line 5735 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5741 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTSelection( LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), (yysemantic_stack_[(2) - (2)].pos_filter_list) );
             delete (yysemantic_stack_[(2) - (2)].pos_filter_list);
         }
     break;
 
-  case 657:
+  case 658:
 
 /* Line 678 of lalr1.cc  */
-#line 5743 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5749 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = NULL;
         }
     break;
 
-  case 658:
+  case 659:
 
 /* Line 678 of lalr1.cc  */
-#line 5747 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5753 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = (yysemantic_stack_[(1) - (1)].pos_filter_list);
         }
     break;
 
-  case 659:
+  case 660:
 
 /* Line 678 of lalr1.cc  */
-#line 5754 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5760 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = new FTSelection::pos_filter_list_t;
             (yyval.pos_filter_list)->push_back( dynamic_cast<FTPosFilter*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 660:
+  case 661:
 
 /* Line 678 of lalr1.cc  */
-#line 5759 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5765 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yysemantic_stack_[(2) - (1)].pos_filter_list)->push_back( dynamic_cast<FTPosFilter*>((yysemantic_stack_[(2) - (2)].node)) );
             (yyval.pos_filter_list) = (yysemantic_stack_[(2) - (1)].pos_filter_list);
         }
     break;
 
-  case 661:
-
-/* Line 678 of lalr1.cc  */
-#line 5767 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 662:
 
 /* Line 678 of lalr1.cc  */
-#line 5771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5773 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 663:
+
+/* Line 678 of lalr1.cc  */
+#line 5777 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 663:
-
-/* Line 678 of lalr1.cc  */
-#line 5778 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 664:
 
 /* Line 678 of lalr1.cc  */
-#line 5782 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5784 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 665:
+
+/* Line 678 of lalr1.cc  */
+#line 5788 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
-  case 665:
-
-/* Line 678 of lalr1.cc  */
-#line 5789 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 666:
 
 /* Line 678 of lalr1.cc  */
-#line 5793 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5795 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 667:
+
+/* Line 678 of lalr1.cc  */
+#line 5799 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
         }
     break;
 
-  case 667:
-
-/* Line 678 of lalr1.cc  */
-#line 5800 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 668:
 
 /* Line 678 of lalr1.cc  */
-#line 5804 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5806 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 669:
+
+/* Line 678 of lalr1.cc  */
+#line 5810 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnaryNot(
                 LOC((yyloc)), dynamic_cast<FTPrimaryWithOptions*>((yysemantic_stack_[(2) - (2)].node))
@@ -9366,10 +9380,10 @@
         }
     break;
 
-  case 669:
+  case 670:
 
 /* Line 678 of lalr1.cc  */
-#line 5813 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5819 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTPrimaryWithOptions(
                 LOC((yyloc)),
@@ -9380,55 +9394,55 @@
         }
     break;
 
-  case 670:
-
-/* Line 678 of lalr1.cc  */
-#line 5825 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 671:
 
 /* Line 678 of lalr1.cc  */
-#line 5829 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5831 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 672:
 
 /* Line 678 of lalr1.cc  */
-#line 5836 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5835 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = NULL;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 673:
 
 /* Line 678 of lalr1.cc  */
-#line 5840 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5842 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 674:
 
 /* Line 678 of lalr1.cc  */
-#line 5848 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5846 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 675:
+
+/* Line 678 of lalr1.cc  */
+#line 5854 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 675:
+  case 676:
 
 /* Line 678 of lalr1.cc  */
-#line 5856 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5862 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsTimes(
                 LOC((yyloc)),
@@ -9438,46 +9452,46 @@
         }
     break;
 
-  case 676:
+  case 677:
 
 /* Line 678 of lalr1.cc  */
-#line 5864 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5870 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 677:
-
-/* Line 678 of lalr1.cc  */
-#line 5868 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 678:
 
 /* Line 678 of lalr1.cc  */
-#line 5875 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5874 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = NULL;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 679:
 
 /* Line 678 of lalr1.cc  */
-#line 5879 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5881 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 680:
 
 /* Line 678 of lalr1.cc  */
-#line 5887 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5885 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 681:
+
+/* Line 678 of lalr1.cc  */
+#line 5893 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTExtensionSelection(
                 LOC((yyloc)),
@@ -9487,28 +9501,28 @@
         }
     break;
 
-  case 681:
-
-/* Line 678 of lalr1.cc  */
-#line 5898 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 682:
 
 /* Line 678 of lalr1.cc  */
-#line 5902 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5904 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 683:
 
 /* Line 678 of lalr1.cc  */
-#line 5910 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5908 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 684:
+
+/* Line 678 of lalr1.cc  */
+#line 5916 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWords(
                 LOC((yyloc)),
@@ -9518,10 +9532,10 @@
         }
     break;
 
-  case 684:
+  case 685:
 
 /* Line 678 of lalr1.cc  */
-#line 5922 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5928 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
@@ -9529,10 +9543,10 @@
         }
     break;
 
-  case 685:
+  case 686:
 
 /* Line 678 of lalr1.cc  */
-#line 5928 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5934 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
@@ -9540,37 +9554,28 @@
         }
     break;
 
-  case 686:
+  case 687:
 
 /* Line 678 of lalr1.cc  */
-#line 5937 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5943 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
         }
     break;
 
-  case 687:
-
-/* Line 678 of lalr1.cc  */
-#line 5941 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 688:
 
 /* Line 678 of lalr1.cc  */
-#line 5949 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5947 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 689:
 
 /* Line 678 of lalr1.cc  */
-#line 5953 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5955 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
@@ -9579,61 +9584,61 @@
   case 690:
 
 /* Line 678 of lalr1.cc  */
-#line 5957 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5959 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
+        }
+    break;
+
+  case 691:
+
+/* Line 678 of lalr1.cc  */
+#line 5963 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
         }
     break;
 
-  case 691:
+  case 692:
 
 /* Line 678 of lalr1.cc  */
-#line 5964 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5970 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any;
         }
     break;
 
-  case 692:
+  case 693:
 
 /* Line 678 of lalr1.cc  */
-#line 5968 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5974 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
         }
     break;
 
-  case 693:
+  case 694:
 
 /* Line 678 of lalr1.cc  */
-#line 5975 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5981 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all;
         }
     break;
 
-  case 694:
+  case 695:
 
 /* Line 678 of lalr1.cc  */
-#line 5979 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5985 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
         }
     break;
 
-  case 695:
-
-/* Line 678 of lalr1.cc  */
-#line 5987 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 696:
 
 /* Line 678 of lalr1.cc  */
-#line 5991 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5993 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9642,7 +9647,7 @@
   case 697:
 
 /* Line 678 of lalr1.cc  */
-#line 5995 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 5997 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9651,7 +9656,7 @@
   case 698:
 
 /* Line 678 of lalr1.cc  */
-#line 5999 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6001 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9660,7 +9665,7 @@
   case 699:
 
 /* Line 678 of lalr1.cc  */
-#line 6003 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6005 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9669,16 +9674,25 @@
   case 700:
 
 /* Line 678 of lalr1.cc  */
-#line 6011 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6009 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 701:
+
+/* Line 678 of lalr1.cc  */
+#line 6017 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTOrder( LOC((yyloc)) );
         }
     break;
 
-  case 701:
+  case 702:
 
 /* Line 678 of lalr1.cc  */
-#line 6019 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6025 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWindow(
                 LOC((yyloc)),
@@ -9688,10 +9702,10 @@
         }
     break;
 
-  case 702:
+  case 703:
 
 /* Line 678 of lalr1.cc  */
-#line 6031 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6037 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDistance(
                 LOC((yyloc)),
@@ -9701,37 +9715,37 @@
         }
     break;
 
-  case 703:
+  case 704:
 
 /* Line 678 of lalr1.cc  */
-#line 6043 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6049 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
         }
     break;
 
-  case 704:
+  case 705:
 
 /* Line 678 of lalr1.cc  */
-#line 6047 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6053 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
         }
     break;
 
-  case 705:
+  case 706:
 
 /* Line 678 of lalr1.cc  */
-#line 6051 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6057 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
         }
     break;
 
-  case 706:
+  case 707:
 
 /* Line 678 of lalr1.cc  */
-#line 6059 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6065 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -9739,10 +9753,10 @@
         }
     break;
 
-  case 707:
+  case 708:
 
 /* Line 678 of lalr1.cc  */
-#line 6065 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6071 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             FTMatchOptions *mo = dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (1)].node));
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(3) - (3)].node)) );
@@ -9750,19 +9764,10 @@
         }
     break;
 
-  case 708:
-
-/* Line 678 of lalr1.cc  */
-#line 6075 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 709:
 
 /* Line 678 of lalr1.cc  */
-#line 6079 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6081 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9771,7 +9776,7 @@
   case 710:
 
 /* Line 678 of lalr1.cc  */
-#line 6083 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6085 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9780,7 +9785,7 @@
   case 711:
 
 /* Line 678 of lalr1.cc  */
-#line 6087 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6089 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9789,7 +9794,7 @@
   case 712:
 
 /* Line 678 of lalr1.cc  */
-#line 6091 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6093 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9798,7 +9803,7 @@
   case 713:
 
 /* Line 678 of lalr1.cc  */
-#line 6095 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6097 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9807,7 +9812,7 @@
   case 714:
 
 /* Line 678 of lalr1.cc  */
-#line 6099 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6101 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9816,7 +9821,7 @@
   case 715:
 
 /* Line 678 of lalr1.cc  */
-#line 6103 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6105 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9825,43 +9830,52 @@
   case 716:
 
 /* Line 678 of lalr1.cc  */
-#line 6111 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6109 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 717:
+
+/* Line 678 of lalr1.cc  */
+#line 6117 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::sensitive );
         }
     break;
 
-  case 717:
+  case 718:
 
 /* Line 678 of lalr1.cc  */
-#line 6115 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6121 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::insensitive );
         }
     break;
 
-  case 718:
+  case 719:
 
 /* Line 678 of lalr1.cc  */
-#line 6119 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6125 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::lower );
         }
     break;
 
-  case 719:
+  case 720:
 
 /* Line 678 of lalr1.cc  */
-#line 6123 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6129 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::upper );
         }
     break;
 
-  case 720:
+  case 721:
 
 /* Line 678 of lalr1.cc  */
-#line 6131 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6137 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::sensitive
@@ -9869,10 +9883,10 @@
         }
     break;
 
-  case 721:
+  case 722:
 
 /* Line 678 of lalr1.cc  */
-#line 6137 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6143 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::insensitive
@@ -9880,10 +9894,10 @@
         }
     break;
 
-  case 722:
+  case 723:
 
 /* Line 678 of lalr1.cc  */
-#line 6147 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6153 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTExtensionOption(
                 LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)), SYMTAB((yysemantic_stack_[(3) - (3)].sval))
@@ -9891,28 +9905,28 @@
         }
     break;
 
-  case 723:
+  case 724:
 
 /* Line 678 of lalr1.cc  */
-#line 6157 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6163 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::stemming );
         }
     break;
 
-  case 724:
+  case 725:
 
 /* Line 678 of lalr1.cc  */
-#line 6161 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6167 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::no_stemming );
         }
     break;
 
-  case 725:
+  case 726:
 
 /* Line 678 of lalr1.cc  */
-#line 6169 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6175 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = NULL;
             if ( (yysemantic_stack_[(2) - (2)].node) ) {
@@ -9924,10 +9938,10 @@
         }
     break;
 
-  case 726:
+  case 727:
 
 /* Line 678 of lalr1.cc  */
-#line 6179 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6185 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = (yysemantic_stack_[(5) - (4)].thesaurus_id_list);
             if ( (yysemantic_stack_[(5) - (3)].node) ) {
@@ -9940,75 +9954,75 @@
         }
     break;
 
-  case 727:
+  case 728:
 
 /* Line 678 of lalr1.cc  */
-#line 6190 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6196 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTThesaurusOption( LOC((yyloc)), NULL, false, true );
         }
     break;
 
-  case 728:
-
-/* Line 678 of lalr1.cc  */
-#line 6197 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 729:
 
 /* Line 678 of lalr1.cc  */
-#line 6201 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6203 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = NULL;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 730:
 
 /* Line 678 of lalr1.cc  */
-#line 6208 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6207 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 731:
+
+/* Line 678 of lalr1.cc  */
+#line 6214 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = NULL;
         }
     break;
 
-  case 731:
+  case 732:
 
 /* Line 678 of lalr1.cc  */
-#line 6212 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6218 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(2) - (2)].thesaurus_id_list);
         }
     break;
 
-  case 732:
+  case 733:
 
 /* Line 678 of lalr1.cc  */
-#line 6219 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6225 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = new FTThesaurusOption::thesaurus_id_list_t;
             (yyval.thesaurus_id_list)->push_back( dynamic_cast<FTThesaurusID*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 733:
+  case 734:
 
 /* Line 678 of lalr1.cc  */
-#line 6224 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6230 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yysemantic_stack_[(3) - (1)].thesaurus_id_list)->push_back( dynamic_cast<FTThesaurusID*>((yysemantic_stack_[(3) - (3)].node)) );
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(3) - (1)].thesaurus_id_list);
         }
     break;
 
-  case 734:
+  case 735:
 
 /* Line 678 of lalr1.cc  */
-#line 6233 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6239 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTThesaurusID(
                 LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (2)].sval)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), dynamic_cast<FTRange*>((yysemantic_stack_[(4) - (4)].node))
@@ -10016,46 +10030,46 @@
         }
     break;
 
-  case 735:
+  case 736:
 
 /* Line 678 of lalr1.cc  */
-#line 6242 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6248 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.sval) = 0;
         }
     break;
 
-  case 736:
+  case 737:
 
 /* Line 678 of lalr1.cc  */
-#line 6246 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6252 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.sval) = (yysemantic_stack_[(2) - (2)].sval);
         }
     break;
 
-  case 737:
-
-/* Line 678 of lalr1.cc  */
-#line 6253 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 738:
 
 /* Line 678 of lalr1.cc  */
-#line 6257 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6259 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+            (yyval.node) = NULL;
         }
     break;
 
   case 739:
 
 /* Line 678 of lalr1.cc  */
-#line 6265 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6263 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
+
+  case 740:
+
+/* Line 678 of lalr1.cc  */
+#line 6271 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)),
@@ -10066,10 +10080,10 @@
         }
     break;
 
-  case 740:
+  case 741:
 
 /* Line 678 of lalr1.cc  */
-#line 6274 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6280 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, (yysemantic_stack_[(4) - (4)].incl_excl_list), ft_stop_words_mode::with_default
@@ -10078,10 +10092,10 @@
         }
     break;
 
-  case 741:
+  case 742:
 
 /* Line 678 of lalr1.cc  */
-#line 6281 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6287 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, NULL, ft_stop_words_mode::without
@@ -10089,28 +10103,28 @@
         }
     break;
 
-  case 742:
+  case 743:
 
 /* Line 678 of lalr1.cc  */
-#line 6291 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6297 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), NULL );
         }
     break;
 
-  case 743:
+  case 744:
 
 /* Line 678 of lalr1.cc  */
-#line 6295 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6301 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), "", (yysemantic_stack_[(3) - (2)].strlist) );
         }
     break;
 
-  case 744:
+  case 745:
 
 /* Line 678 of lalr1.cc  */
-#line 6302 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6308 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             string_list_t *sl = new string_list_t;
             sl->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -10118,10 +10132,10 @@
         }
     break;
 
-  case 745:
+  case 746:
 
 /* Line 678 of lalr1.cc  */
-#line 6308 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6314 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             if ( (yysemantic_stack_[(3) - (1)].strlist) )
                 (yysemantic_stack_[(3) - (1)].strlist)->push_back( SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
@@ -10129,38 +10143,38 @@
         }
     break;
 
-  case 746:
+  case 747:
 
 /* Line 678 of lalr1.cc  */
-#line 6317 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6323 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = NULL;
         }
     break;
 
-  case 747:
+  case 748:
 
 /* Line 678 of lalr1.cc  */
-#line 6321 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6327 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = (yysemantic_stack_[(1) - (1)].incl_excl_list);
         }
     break;
 
-  case 748:
+  case 749:
 
 /* Line 678 of lalr1.cc  */
-#line 6328 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6334 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = new FTStopWordOption::incl_excl_list_t;
             (yyval.incl_excl_list)->push_back( dynamic_cast<FTStopWordsInclExcl*>((yysemantic_stack_[(1) - (1)].node)) );
         }
     break;
 
-  case 749:
+  case 750:
 
 /* Line 678 of lalr1.cc  */
-#line 6333 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6339 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             FTStopWordOption::incl_excl_list_t *iel = (yysemantic_stack_[(2) - (1)].incl_excl_list);
             if ( !iel )
@@ -10170,10 +10184,10 @@
         }
     break;
 
-  case 750:
+  case 751:
 
 /* Line 678 of lalr1.cc  */
-#line 6345 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6351 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10183,10 +10197,10 @@
         }
     break;
 
-  case 751:
+  case 752:
 
 /* Line 678 of lalr1.cc  */
-#line 6353 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6359 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10196,109 +10210,109 @@
         }
     break;
 
-  case 752:
+  case 753:
 
 /* Line 678 of lalr1.cc  */
-#line 6365 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6371 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTLanguageOption( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 753:
+  case 754:
 
 /* Line 678 of lalr1.cc  */
-#line 6373 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6379 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::with );
         }
     break;
 
-  case 754:
+  case 755:
 
 /* Line 678 of lalr1.cc  */
-#line 6377 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6383 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::without );
         }
     break;
 
-  case 755:
+  case 756:
 
 /* Line 678 of lalr1.cc  */
-#line 6385 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6391 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_start );
         }
     break;
 
-  case 756:
+  case 757:
 
 /* Line 678 of lalr1.cc  */
-#line 6389 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6395 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_end );
         }
     break;
 
-  case 757:
+  case 758:
 
 /* Line 678 of lalr1.cc  */
-#line 6393 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6399 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::entire );
         }
     break;
 
-  case 758:
+  case 759:
 
 /* Line 678 of lalr1.cc  */
-#line 6401 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6407 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTTimes( LOC((yyloc)), dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)) );
         }
     break;
 
-  case 759:
+  case 760:
 
 /* Line 678 of lalr1.cc  */
-#line 6409 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6415 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::exactly, (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
-  case 760:
+  case 761:
 
 /* Line 678 of lalr1.cc  */
-#line 6413 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6419 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_least, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 761:
+  case 762:
 
 /* Line 678 of lalr1.cc  */
-#line 6417 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6423 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_most, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 762:
+  case 763:
 
 /* Line 678 of lalr1.cc  */
-#line 6421 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6427 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::from_to, (yysemantic_stack_[(4) - (2)].expr), (yysemantic_stack_[(4) - (4)].expr) );
         }
     break;
 
-  case 763:
+  case 764:
 
 /* Line 678 of lalr1.cc  */
-#line 6429 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6435 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10308,10 +10322,10 @@
         }
     break;
 
-  case 764:
+  case 765:
 
 /* Line 678 of lalr1.cc  */
-#line 6437 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6443 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10321,105 +10335,105 @@
         }
     break;
 
-  case 765:
+  case 766:
 
 /* Line 678 of lalr1.cc  */
-#line 6449 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6455 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::sentence );
         }
     break;
 
-  case 766:
+  case 767:
 
 /* Line 678 of lalr1.cc  */
-#line 6453 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6459 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::paragraph );
         }
     break;
 
-  case 767:
+  case 768:
 
 /* Line 678 of lalr1.cc  */
-#line 6461 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6467 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTIgnoreOption( LOC((yyloc)), static_cast<UnionExpr*>((yysemantic_stack_[(3) - (3)].expr)) );
         }
     break;
 
-  case 768:
+  case 769:
 
 /* Line 678 of lalr1.cc  */
-#line 6475 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6481 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), NULL );
         }
     break;
 
-  case 769:
+  case 770:
 
 /* Line 678 of lalr1.cc  */
-#line 6479 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6485 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 770:
+  case 771:
 
 /* Line 678 of lalr1.cc  */
-#line 6486 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6492 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, false);
         }
     break;
 
-  case 771:
+  case 772:
 
 /* Line 678 of lalr1.cc  */
-#line 6491 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6497 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), false);
         }
     break;
 
-  case 772:
+  case 773:
 
 /* Line 678 of lalr1.cc  */
-#line 6499 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6505 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, true);
         }
     break;
 
-  case 773:
+  case 774:
 
 /* Line 678 of lalr1.cc  */
-#line 6504 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6510 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), true);
         }
     break;
 
-  case 774:
+  case 775:
 
 /* Line 678 of lalr1.cc  */
-#line 6513 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6519 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)),
                                                dynamic_cast<JSONPairList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 775:
+  case 776:
 
 /* Line 678 of lalr1.cc  */
-#line 6521 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6527 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = new JSONPairList(LOC((yyloc)));
           jpl->push_back(new JSONPairConstructor(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr)));
@@ -10427,10 +10441,10 @@
         }
     break;
 
-  case 776:
+  case 777:
 
 /* Line 678 of lalr1.cc  */
-#line 6527 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6533 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
           assert(jpl);
@@ -10439,10 +10453,10 @@
         }
     break;
 
-  case 777:
+  case 778:
 
 /* Line 678 of lalr1.cc  */
-#line 6537 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6543 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
                                         (yysemantic_stack_[(5) - (3)].expr),
@@ -10450,10 +10464,10 @@
         }
     break;
 
-  case 778:
+  case 779:
 
 /* Line 678 of lalr1.cc  */
-#line 6543 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6549 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (3)].node));
           (yyval.expr) = new JSONObjectInsertExpr(
@@ -10465,28 +10479,28 @@
         }
     break;
 
-  case 779:
+  case 780:
 
 /* Line 678 of lalr1.cc  */
-#line 6553 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6559 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayInsertExpr(LOC((yyloc)), (yysemantic_stack_[(8) - (3)].expr), (yysemantic_stack_[(8) - (5)].expr), (yysemantic_stack_[(8) - (8)].expr));
         }
     break;
 
-  case 780:
+  case 781:
 
 /* Line 678 of lalr1.cc  */
-#line 6560 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6566 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
-  case 781:
+  case 782:
 
 /* Line 678 of lalr1.cc  */
-#line 6567 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6573 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(3) - (3)].expr));
@@ -10510,10 +10524,10 @@
         }
     break;
 
-  case 782:
+  case 783:
 
 /* Line 678 of lalr1.cc  */
-#line 6592 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6598 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(5) - (3)].expr));
@@ -10540,10 +10554,10 @@
         }
     break;
 
-  case 783:
+  case 784:
 
 /* Line 678 of lalr1.cc  */
-#line 6620 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6626 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(7) - (5)].expr));
@@ -10570,19 +10584,10 @@
         }
     break;
 
-  case 784:
-
-/* Line 678 of lalr1.cc  */
-#line 6648 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 785:
 
 /* Line 678 of lalr1.cc  */
-#line 6652 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6654 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -10591,7 +10596,7 @@
   case 786:
 
 /* Line 678 of lalr1.cc  */
-#line 6656 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6658 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -10600,34 +10605,43 @@
   case 787:
 
 /* Line 678 of lalr1.cc  */
-#line 6663 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6662 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 788:
+
+/* Line 678 of lalr1.cc  */
+#line 6669 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
         }
     break;
 
-  case 788:
+  case 789:
 
 /* Line 678 of lalr1.cc  */
-#line 6670 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6676 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
         }
     break;
 
-  case 789:
+  case 790:
 
 /* Line 678 of lalr1.cc  */
-#line 6677 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6683 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
         }
     break;
 
-  case 792:
+  case 793:
 
 /* Line 678 of lalr1.cc  */
-#line 6694 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6700 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     {
           auto_ptr<QName> lQName( static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
           zstring const &tmp = lQName->get_qname();
@@ -10639,1557 +10653,1557 @@
         }
     break;
 
-  case 794:
+  case 795:
 
 /* Line 678 of lalr1.cc  */
-#line 6707 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6713 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("attribute"))); }
     break;
 
-  case 795:
+  case 796:
 
 /* Line 678 of lalr1.cc  */
-#line 6708 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6714 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("comment"))); }
     break;
 
-  case 796:
+  case 797:
 
 /* Line 678 of lalr1.cc  */
-#line 6709 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6715 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document-node"))); }
     break;
 
-  case 797:
+  case 798:
 
 /* Line 678 of lalr1.cc  */
-#line 6710 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6716 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("element"))); }
     break;
 
-  case 798:
+  case 799:
 
 /* Line 678 of lalr1.cc  */
-#line 6711 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6717 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("item"))); }
     break;
 
-  case 799:
+  case 800:
 
 /* Line 678 of lalr1.cc  */
-#line 6712 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6718 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("if"))); }
     break;
 
-  case 800:
+  case 801:
 
 /* Line 678 of lalr1.cc  */
-#line 6713 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6719 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("node"))); }
     break;
 
-  case 801:
+  case 802:
 
 /* Line 678 of lalr1.cc  */
-#line 6714 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6720 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("processing-instruction"))); }
     break;
 
-  case 802:
+  case 803:
 
 /* Line 678 of lalr1.cc  */
-#line 6715 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6721 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-attribute"))); }
     break;
 
-  case 803:
+  case 804:
 
 /* Line 678 of lalr1.cc  */
-#line 6716 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6722 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-element"))); }
     break;
 
-  case 804:
+  case 805:
 
 /* Line 678 of lalr1.cc  */
-#line 6717 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6723 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("text"))); }
     break;
 
-  case 805:
+  case 806:
 
 /* Line 678 of lalr1.cc  */
-#line 6718 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6724 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("typeswitch"))); }
     break;
 
-  case 806:
+  case 807:
 
 /* Line 678 of lalr1.cc  */
-#line 6719 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6725 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("switch"))); }
     break;
 
-  case 807:
+  case 808:
 
 /* Line 678 of lalr1.cc  */
-#line 6720 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6726 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty-sequence"))); }
     break;
 
-  case 808:
+  case 809:
 
 /* Line 678 of lalr1.cc  */
-#line 6721 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6727 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("while"))); }
     break;
 
-  case 810:
+  case 811:
 
 /* Line 678 of lalr1.cc  */
-#line 6726 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6732 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
     break;
 
-  case 811:
+  case 812:
 
 /* Line 678 of lalr1.cc  */
-#line 6727 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6733 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("xquery"))); }
     break;
 
-  case 812:
+  case 813:
 
 /* Line 678 of lalr1.cc  */
-#line 6728 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6734 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty"))); }
     break;
 
-  case 813:
+  case 814:
 
 /* Line 678 of lalr1.cc  */
-#line 6729 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6735 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("boundary-space"))); }
     break;
 
-  case 814:
+  case 815:
 
 /* Line 678 of lalr1.cc  */
-#line 6730 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6736 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ft-option"))); }
     break;
 
-  case 815:
+  case 816:
 
 /* Line 678 of lalr1.cc  */
-#line 6731 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6737 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("base-uri"))); }
     break;
 
-  case 816:
+  case 817:
 
 /* Line 678 of lalr1.cc  */
-#line 6732 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6738 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lax"))); }
     break;
 
-  case 817:
+  case 818:
 
 /* Line 678 of lalr1.cc  */
-#line 6733 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6739 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strict"))); }
     break;
 
-  case 818:
+  case 819:
 
 /* Line 678 of lalr1.cc  */
-#line 6734 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6740 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("idiv"))); }
     break;
 
-  case 819:
+  case 820:
 
 /* Line 678 of lalr1.cc  */
-#line 6735 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6741 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document"))); }
     break;
 
-  case 820:
+  case 821:
 
 /* Line 678 of lalr1.cc  */
-#line 6736 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6742 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ftnot"))); }
     break;
 
-  case 821:
+  case 822:
 
 /* Line 678 of lalr1.cc  */
-#line 6737 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6743 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("not"))); }
     break;
 
-  case 822:
+  case 823:
 
 /* Line 678 of lalr1.cc  */
-#line 6738 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6744 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sensitive"))); }
     break;
 
-  case 823:
+  case 824:
 
 /* Line 678 of lalr1.cc  */
-#line 6739 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6745 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insensitive"))); }
     break;
 
-  case 824:
+  case 825:
 
 /* Line 678 of lalr1.cc  */
-#line 6740 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6746 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("diacritics"))); }
     break;
 
-  case 825:
+  case 826:
 
 /* Line 678 of lalr1.cc  */
-#line 6741 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6747 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("without"))); }
     break;
 
-  case 826:
+  case 827:
 
 /* Line 678 of lalr1.cc  */
-#line 6742 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6748 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stemming"))); }
     break;
 
-  case 827:
+  case 828:
 
 /* Line 678 of lalr1.cc  */
-#line 6743 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6749 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("thesaurus"))); }
     break;
 
-  case 828:
+  case 829:
 
 /* Line 678 of lalr1.cc  */
-#line 6744 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6750 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stop"))); }
     break;
 
-  case 829:
+  case 830:
 
 /* Line 678 of lalr1.cc  */
-#line 6745 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6751 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("wildcards"))); }
     break;
 
-  case 830:
+  case 831:
 
 /* Line 678 of lalr1.cc  */
-#line 6746 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6752 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("entire"))); }
     break;
 
-  case 831:
+  case 832:
 
 /* Line 678 of lalr1.cc  */
-#line 6747 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6753 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("content"))); }
     break;
 
-  case 832:
+  case 833:
 
 /* Line 678 of lalr1.cc  */
-#line 6748 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6754 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("word"))); }
     break;
 
-  case 833:
+  case 834:
 
 /* Line 678 of lalr1.cc  */
-#line 6749 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6755 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("start"))); }
     break;
 
-  case 834:
+  case 835:
 
 /* Line 678 of lalr1.cc  */
-#line 6750 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6756 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("end"))); }
     break;
 
-  case 835:
+  case 836:
 
 /* Line 678 of lalr1.cc  */
-#line 6751 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6757 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("most"))); }
     break;
 
-  case 836:
+  case 837:
 
 /* Line 678 of lalr1.cc  */
-#line 6752 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6758 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("skip"))); }
     break;
 
-  case 837:
+  case 838:
 
 /* Line 678 of lalr1.cc  */
-#line 6753 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6759 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy"))); }
     break;
 
-  case 838:
+  case 839:
 
 /* Line 678 of lalr1.cc  */
-#line 6754 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6760 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("general"))); }
     break;
 
-  case 839:
+  case 840:
 
 /* Line 678 of lalr1.cc  */
-#line 6755 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6761 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("value"))); }
     break;
 
-  case 840:
+  case 841:
 
 /* Line 678 of lalr1.cc  */
-#line 6756 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6762 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("eq"))); }
     break;
 
-  case 841:
+  case 842:
 
 /* Line 678 of lalr1.cc  */
-#line 6757 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6763 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ne"))); }
     break;
 
-  case 842:
+  case 843:
 
 /* Line 678 of lalr1.cc  */
-#line 6758 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6764 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lt"))); }
     break;
 
-  case 843:
+  case 844:
 
 /* Line 678 of lalr1.cc  */
-#line 6759 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6765 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("le"))); }
     break;
 
-  case 844:
+  case 845:
 
 /* Line 678 of lalr1.cc  */
-#line 6760 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6766 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("gt"))); }
     break;
 
-  case 845:
+  case 846:
 
 /* Line 678 of lalr1.cc  */
-#line 6761 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6767 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ge"))); }
     break;
 
-  case 846:
+  case 847:
 
 /* Line 678 of lalr1.cc  */
-#line 6762 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6768 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("at"))); }
     break;
 
-  case 847:
+  case 848:
 
 /* Line 678 of lalr1.cc  */
-#line 6763 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6769 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("context"))); }
     break;
 
-  case 848:
+  case 849:
 
 /* Line 678 of lalr1.cc  */
-#line 6764 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6770 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("variable"))); }
     break;
 
-  case 849:
+  case 850:
 
 /* Line 678 of lalr1.cc  */
-#line 6765 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6771 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("return"))); }
     break;
 
-  case 850:
+  case 851:
 
 /* Line 678 of lalr1.cc  */
-#line 6766 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6772 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("for"))); }
     break;
 
-  case 851:
+  case 852:
 
 /* Line 678 of lalr1.cc  */
-#line 6767 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6773 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("allowing"))); }
     break;
 
-  case 852:
+  case 853:
 
 /* Line 678 of lalr1.cc  */
-#line 6768 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6774 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sliding"))); }
     break;
 
-  case 853:
+  case 854:
 
 /* Line 678 of lalr1.cc  */
-#line 6769 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6775 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("tumbling"))); }
     break;
 
-  case 854:
+  case 855:
 
 /* Line 678 of lalr1.cc  */
-#line 6770 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6776 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("previous"))); }
     break;
 
-  case 855:
+  case 856:
 
 /* Line 678 of lalr1.cc  */
-#line 6771 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6777 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("next"))); }
     break;
 
-  case 856:
+  case 857:
 
 /* Line 678 of lalr1.cc  */
-#line 6772 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6778 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("only"))); }
     break;
 
-  case 857:
+  case 858:
 
 /* Line 678 of lalr1.cc  */
-#line 6773 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6779 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("when"))); }
     break;
 
-  case 858:
+  case 859:
 
 /* Line 678 of lalr1.cc  */
-#line 6774 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6780 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("count"))); }
     break;
 
-  case 859:
+  case 860:
 
 /* Line 678 of lalr1.cc  */
-#line 6775 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6781 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("in"))); }
     break;
 
-  case 860:
+  case 861:
 
 /* Line 678 of lalr1.cc  */
-#line 6776 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6782 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("let"))); }
     break;
 
-  case 861:
+  case 862:
 
 /* Line 678 of lalr1.cc  */
-#line 6777 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6783 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("where"))); }
     break;
 
-  case 862:
+  case 863:
 
 /* Line 678 of lalr1.cc  */
-#line 6778 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6784 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("by"))); }
     break;
 
-  case 863:
+  case 864:
 
 /* Line 678 of lalr1.cc  */
-#line 6779 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6785 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("group"))); }
     break;
 
-  case 864:
+  case 865:
 
 /* Line 678 of lalr1.cc  */
-#line 6780 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6786 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("order"))); }
     break;
 
-  case 865:
+  case 866:
 
 /* Line 678 of lalr1.cc  */
-#line 6781 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6787 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stable"))); }
     break;
 
-  case 866:
+  case 867:
 
 /* Line 678 of lalr1.cc  */
-#line 6782 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6788 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ascending"))); }
     break;
 
-  case 867:
+  case 868:
 
 /* Line 678 of lalr1.cc  */
-#line 6783 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6789 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descending"))); }
     break;
 
-  case 868:
+  case 869:
 
 /* Line 678 of lalr1.cc  */
-#line 6784 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6790 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("greatest"))); }
     break;
 
-  case 869:
+  case 870:
 
 /* Line 678 of lalr1.cc  */
-#line 6785 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6791 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("least"))); }
     break;
 
-  case 870:
+  case 871:
 
 /* Line 678 of lalr1.cc  */
-#line 6786 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6792 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("collation"))); }
     break;
 
-  case 871:
+  case 872:
 
 /* Line 678 of lalr1.cc  */
-#line 6787 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6793 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("some"))); }
     break;
 
-  case 872:
+  case 873:
 
 /* Line 678 of lalr1.cc  */
-#line 6788 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6794 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("every"))); }
     break;
 
-  case 873:
+  case 874:
 
 /* Line 678 of lalr1.cc  */
-#line 6789 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6795 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("satisfies"))); }
     break;
 
-  case 874:
+  case 875:
 
 /* Line 678 of lalr1.cc  */
-#line 6790 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6796 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("case"))); }
     break;
 
-  case 875:
+  case 876:
 
 /* Line 678 of lalr1.cc  */
-#line 6791 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6797 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("as"))); }
     break;
 
-  case 876:
+  case 877:
 
 /* Line 678 of lalr1.cc  */
-#line 6792 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6798 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("then"))); }
     break;
 
-  case 877:
+  case 878:
 
 /* Line 678 of lalr1.cc  */
-#line 6793 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6799 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("else"))); }
     break;
 
-  case 878:
+  case 879:
 
 /* Line 678 of lalr1.cc  */
-#line 6794 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6800 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("or"))); }
     break;
 
-  case 879:
+  case 880:
 
 /* Line 678 of lalr1.cc  */
-#line 6795 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6801 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("and"))); }
     break;
 
-  case 880:
+  case 881:
 
 /* Line 678 of lalr1.cc  */
-#line 6796 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6802 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("instance"))); }
     break;
 
-  case 881:
+  case 882:
 
 /* Line 678 of lalr1.cc  */
-#line 6797 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6803 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("of"))); }
     break;
 
-  case 882:
+  case 883:
 
 /* Line 678 of lalr1.cc  */
-#line 6798 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6804 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("castable"))); }
     break;
 
-  case 883:
+  case 884:
 
 /* Line 678 of lalr1.cc  */
-#line 6799 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6805 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("to"))); }
     break;
 
-  case 884:
+  case 885:
 
 /* Line 678 of lalr1.cc  */
-#line 6800 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6806 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("div"))); }
     break;
 
-  case 885:
+  case 886:
 
 /* Line 678 of lalr1.cc  */
-#line 6801 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6807 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("mod"))); }
     break;
 
-  case 886:
+  case 887:
 
 /* Line 678 of lalr1.cc  */
-#line 6802 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6808 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("union"))); }
     break;
 
-  case 887:
+  case 888:
 
 /* Line 678 of lalr1.cc  */
-#line 6803 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6809 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("intersect"))); }
     break;
 
-  case 888:
+  case 889:
 
 /* Line 678 of lalr1.cc  */
-#line 6804 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6810 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("except"))); }
     break;
 
-  case 889:
+  case 890:
 
 /* Line 678 of lalr1.cc  */
-#line 6805 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6811 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("validate"))); }
     break;
 
-  case 890:
+  case 891:
 
 /* Line 678 of lalr1.cc  */
-#line 6806 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6812 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("type"))); }
     break;
 
-  case 891:
+  case 892:
 
 /* Line 678 of lalr1.cc  */
-#line 6807 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6813 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("cast"))); }
     break;
 
-  case 892:
+  case 893:
 
 /* Line 678 of lalr1.cc  */
-#line 6808 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6814 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("treat"))); }
     break;
 
-  case 893:
+  case 894:
 
 /* Line 678 of lalr1.cc  */
-#line 6809 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6815 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("is"))); }
     break;
 
-  case 894:
+  case 895:
 
 /* Line 678 of lalr1.cc  */
-#line 6810 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6816 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preserve"))); }
     break;
 
-  case 895:
+  case 896:
 
 /* Line 678 of lalr1.cc  */
-#line 6811 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6817 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strip"))); }
     break;
 
-  case 896:
+  case 897:
 
 /* Line 678 of lalr1.cc  */
-#line 6812 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6818 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace"))); }
     break;
 
-  case 897:
+  case 898:
 
 /* Line 678 of lalr1.cc  */
-#line 6813 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6819 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("external"))); }
     break;
 
-  case 898:
+  case 899:
 
 /* Line 678 of lalr1.cc  */
-#line 6814 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6820 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("encoding"))); }
     break;
 
-  case 899:
+  case 900:
 
 /* Line 678 of lalr1.cc  */
-#line 6815 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6821 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-preserve"))); }
     break;
 
-  case 900:
+  case 901:
 
 /* Line 678 of lalr1.cc  */
-#line 6816 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6822 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("inherit"))); }
     break;
 
-  case 901:
+  case 902:
 
 /* Line 678 of lalr1.cc  */
-#line 6817 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6823 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-inherit"))); }
     break;
 
-  case 902:
+  case 903:
 
 /* Line 678 of lalr1.cc  */
-#line 6818 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6824 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("declare"))); }
     break;
 
-  case 903:
+  case 904:
 
 /* Line 678 of lalr1.cc  */
-#line 6819 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6825 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("construction"))); }
     break;
 
-  case 904:
+  case 905:
 
 /* Line 678 of lalr1.cc  */
-#line 6820 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6826 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ordering"))); }
     break;
 
-  case 905:
+  case 906:
 
 /* Line 678 of lalr1.cc  */
-#line 6821 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6827 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("default"))); }
     break;
 
-  case 906:
+  case 907:
 
 /* Line 678 of lalr1.cc  */
-#line 6822 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6828 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy-namespaces"))); }
     break;
 
-  case 907:
+  case 908:
 
 /* Line 678 of lalr1.cc  */
-#line 6823 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6829 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("option"))); }
     break;
 
-  case 908:
+  case 909:
 
 /* Line 678 of lalr1.cc  */
-#line 6824 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6830 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("version"))); }
     break;
 
-  case 909:
+  case 910:
 
 /* Line 678 of lalr1.cc  */
-#line 6825 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6831 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("import"))); }
     break;
 
-  case 910:
+  case 911:
 
 /* Line 678 of lalr1.cc  */
-#line 6826 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6832 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema"))); }
     break;
 
-  case 911:
+  case 912:
 
 /* Line 678 of lalr1.cc  */
-#line 6827 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6833 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("module"))); }
     break;
 
-  case 912:
+  case 913:
 
 /* Line 678 of lalr1.cc  */
-#line 6828 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6834 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("function"))); }
     break;
 
-  case 913:
+  case 914:
 
 /* Line 678 of lalr1.cc  */
-#line 6829 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6835 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("score"))); }
     break;
 
-  case 914:
+  case 915:
 
 /* Line 678 of lalr1.cc  */
-#line 6830 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6836 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("contains"))); }
     break;
 
-  case 915:
+  case 916:
 
 /* Line 678 of lalr1.cc  */
-#line 6831 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6837 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("weight"))); }
     break;
 
-  case 916:
+  case 917:
 
 /* Line 678 of lalr1.cc  */
-#line 6832 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6838 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("window"))); }
     break;
 
-  case 917:
+  case 918:
 
 /* Line 678 of lalr1.cc  */
-#line 6833 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6839 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("distance"))); }
     break;
 
-  case 918:
+  case 919:
 
 /* Line 678 of lalr1.cc  */
-#line 6834 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6840 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("occurs"))); }
     break;
 
-  case 919:
+  case 920:
 
 /* Line 678 of lalr1.cc  */
-#line 6835 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6841 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("times"))); }
     break;
 
-  case 920:
+  case 921:
 
 /* Line 678 of lalr1.cc  */
-#line 6836 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6842 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("same"))); }
     break;
 
-  case 921:
+  case 922:
 
 /* Line 678 of lalr1.cc  */
-#line 6837 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6843 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("different"))); }
     break;
 
-  case 922:
+  case 923:
 
 /* Line 678 of lalr1.cc  */
-#line 6838 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6844 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lowercase"))); }
     break;
 
-  case 923:
+  case 924:
 
 /* Line 678 of lalr1.cc  */
-#line 6839 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6845 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("uppercase"))); }
     break;
 
-  case 924:
+  case 925:
 
 /* Line 678 of lalr1.cc  */
-#line 6840 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6846 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("relationship"))); }
     break;
 
-  case 925:
+  case 926:
 
 /* Line 678 of lalr1.cc  */
-#line 6841 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6847 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("levels"))); }
     break;
 
-  case 926:
+  case 927:
 
 /* Line 678 of lalr1.cc  */
-#line 6842 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6848 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("language"))); }
     break;
 
-  case 927:
+  case 928:
 
 /* Line 678 of lalr1.cc  */
-#line 6843 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6849 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("any"))); }
     break;
 
-  case 928:
+  case 929:
 
 /* Line 678 of lalr1.cc  */
-#line 6844 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6850 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("all"))); }
     break;
 
-  case 929:
+  case 930:
 
 /* Line 678 of lalr1.cc  */
-#line 6845 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6851 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("exactly"))); }
     break;
 
-  case 930:
+  case 931:
 
 /* Line 678 of lalr1.cc  */
-#line 6846 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6852 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("from"))); }
     break;
 
-  case 931:
+  case 932:
 
 /* Line 678 of lalr1.cc  */
-#line 6847 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6853 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("words"))); }
     break;
 
-  case 932:
+  case 933:
 
 /* Line 678 of lalr1.cc  */
-#line 6848 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6854 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentences"))); }
     break;
 
-  case 933:
+  case 934:
 
 /* Line 678 of lalr1.cc  */
-#line 6849 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6855 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentence"))); }
     break;
 
-  case 934:
+  case 935:
 
 /* Line 678 of lalr1.cc  */
-#line 6850 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6856 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("phrase"))); }
     break;
 
-  case 935:
+  case 936:
 
 /* Line 678 of lalr1.cc  */
-#line 6851 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6857 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraph"))); }
     break;
 
-  case 936:
+  case 937:
 
 /* Line 678 of lalr1.cc  */
-#line 6852 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6858 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraphs"))); }
     break;
 
-  case 937:
+  case 938:
 
 /* Line 678 of lalr1.cc  */
-#line 6853 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6859 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("replace"))); }
     break;
 
-  case 938:
+  case 939:
 
 /* Line 678 of lalr1.cc  */
-#line 6854 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6860 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("modify"))); }
     break;
 
-  case 939:
+  case 940:
 
 /* Line 678 of lalr1.cc  */
-#line 6855 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6861 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("first"))); }
     break;
 
-  case 940:
+  case 941:
 
 /* Line 678 of lalr1.cc  */
-#line 6856 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6862 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insert"))); }
     break;
 
-  case 941:
+  case 942:
 
 /* Line 678 of lalr1.cc  */
-#line 6857 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6863 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("before"))); }
     break;
 
-  case 942:
+  case 943:
 
 /* Line 678 of lalr1.cc  */
-#line 6858 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6864 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("after"))); }
     break;
 
-  case 943:
+  case 944:
 
 /* Line 678 of lalr1.cc  */
-#line 6859 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6865 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("revalidation"))); }
     break;
 
-  case 944:
+  case 945:
 
 /* Line 678 of lalr1.cc  */
-#line 6860 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6866 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("with"))); }
     break;
 
-  case 945:
+  case 946:
 
 /* Line 678 of lalr1.cc  */
-#line 6861 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6867 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("nodes"))); }
     break;
 
-  case 946:
+  case 947:
 
 /* Line 678 of lalr1.cc  */
-#line 6862 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6868 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("rename"))); }
     break;
 
-  case 947:
+  case 948:
 
 /* Line 678 of lalr1.cc  */
-#line 6863 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6869 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("last"))); }
     break;
 
-  case 948:
+  case 949:
 
 /* Line 678 of lalr1.cc  */
-#line 6864 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6870 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("delete"))); }
     break;
 
-  case 949:
+  case 950:
 
 /* Line 678 of lalr1.cc  */
-#line 6865 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6871 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("into"))); }
     break;
 
-  case 950:
+  case 951:
 
 /* Line 678 of lalr1.cc  */
-#line 6866 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6872 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("simple"))); }
     break;
 
-  case 951:
+  case 952:
 
 /* Line 678 of lalr1.cc  */
-#line 6867 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6873 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sequential"))); }
     break;
 
-  case 952:
+  case 953:
 
 /* Line 678 of lalr1.cc  */
-#line 6868 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6874 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("updating"))); }
     break;
 
-  case 953:
+  case 954:
 
 /* Line 678 of lalr1.cc  */
-#line 6869 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6875 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ordered"))); }
     break;
 
-  case 954:
+  case 955:
 
 /* Line 678 of lalr1.cc  */
-#line 6870 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6876 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("unordered"))); }
     break;
 
-  case 955:
+  case 956:
 
 /* Line 678 of lalr1.cc  */
-#line 6871 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6877 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("returning"))); }
     break;
 
-  case 956:
+  case 957:
 
 /* Line 678 of lalr1.cc  */
-#line 6872 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6878 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("exit"))); }
     break;
 
-  case 957:
+  case 958:
 
 /* Line 678 of lalr1.cc  */
-#line 6873 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6879 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("loop"))); }
     break;
 
-  case 958:
+  case 959:
 
 /* Line 678 of lalr1.cc  */
-#line 6874 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6880 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("break"))); }
     break;
 
-  case 959:
+  case 960:
 
 /* Line 678 of lalr1.cc  */
-#line 6875 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6881 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("continue"))); }
     break;
 
-  case 960:
+  case 961:
 
 /* Line 678 of lalr1.cc  */
-#line 6876 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6882 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("try"))); }
     break;
 
-  case 961:
+  case 962:
 
 /* Line 678 of lalr1.cc  */
-#line 6877 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6883 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("catch"))); }
     break;
 
-  case 962:
+  case 963:
 
 /* Line 678 of lalr1.cc  */
-#line 6878 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6884 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("using"))); }
     break;
 
-  case 963:
+  case 964:
 
 /* Line 678 of lalr1.cc  */
-#line 6879 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6885 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("set"))); }
     break;
 
-  case 964:
+  case 965:
 
 /* Line 678 of lalr1.cc  */
-#line 6880 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6886 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("index"))); }
     break;
 
-  case 965:
+  case 966:
 
 /* Line 678 of lalr1.cc  */
-#line 6881 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6887 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("unique"))); }
     break;
 
-  case 966:
+  case 967:
 
 /* Line 678 of lalr1.cc  */
-#line 6882 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6888 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("non"))); }
     break;
 
-  case 967:
+  case 968:
 
 /* Line 678 of lalr1.cc  */
-#line 6883 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6889 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("on"))); }
     break;
 
-  case 968:
+  case 969:
 
 /* Line 678 of lalr1.cc  */
-#line 6884 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6890 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("range"))); }
     break;
 
-  case 969:
+  case 970:
 
 /* Line 678 of lalr1.cc  */
-#line 6885 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6891 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("equality"))); }
     break;
 
-  case 970:
+  case 971:
 
 /* Line 678 of lalr1.cc  */
-#line 6886 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6892 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("manually"))); }
     break;
 
-  case 971:
+  case 972:
 
 /* Line 678 of lalr1.cc  */
-#line 6887 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6893 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("automatically"))); }
     break;
 
-  case 972:
+  case 973:
 
 /* Line 678 of lalr1.cc  */
-#line 6888 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6894 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("maintained"))); }
     break;
 
-  case 973:
+  case 974:
 
 /* Line 678 of lalr1.cc  */
-#line 6889 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6895 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("decimal-format"))); }
     break;
 
-  case 974:
+  case 975:
 
 /* Line 678 of lalr1.cc  */
-#line 6890 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6896 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("decimal-separator"))); }
     break;
 
-  case 975:
+  case 976:
 
 /* Line 678 of lalr1.cc  */
-#line 6891 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6897 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("grouping-separator"))); }
     break;
 
-  case 976:
+  case 977:
 
 /* Line 678 of lalr1.cc  */
-#line 6892 "/home/markos/zorba/repo/markos-scratch/src/compiler/parser/xquery_parser.y"
+#line 6898 "/home/markos/zorba/repo/cast-to-simple-type/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("infinity"))); }
     break;
 
-  case 977:
+  case 978:
 
 /* Line 678 of lalr1.cc  */
-#line 6

Follow ups