← Back to team overview

zorba-coders team mailing list archive

[Merge] lp:~zorba-coders/zorba/hof-merge into lp:zorba

 

Nicolae Brinza has proposed merging lp:~zorba-coders/zorba/hof-merge into lp:zorba.

Commit message:
Implementation of higher order functions.

Requested reviews:
  Nicolae Brinza (nbrinza)
  Markos Zaharioudakis (markos-za)
  Matthias Brantner (matthias-brantner)

For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/hof-merge/+merge/153199

Implementation of higher order functions.
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~zorba-coders/zorba/hof-merge/+merge/153199
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'include/zorba/pregenerated/diagnostic_list.h'
--- include/zorba/pregenerated/diagnostic_list.h	2013-03-06 10:37:33 +0000
+++ include/zorba/pregenerated/diagnostic_list.h	2013-03-13 17:19:33 +0000
@@ -64,6 +64,8 @@
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQTY0086;
 
+extern ZORBA_DLL_PUBLIC XQueryErrorCode XQTY0105;
+
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0009;
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XQST0012;
@@ -304,6 +306,8 @@
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode FOUT1190;
 
+extern ZORBA_DLL_PUBLIC XQueryErrorCode FOFL0001;
+
 extern ZORBA_DLL_PUBLIC XQueryErrorCode FOCZ0001;
 
 extern ZORBA_DLL_PUBLIC XQueryErrorCode XUST0001;

=== modified file 'modules/w3c/pregenerated/xqt-errors.xq'
--- modules/w3c/pregenerated/xqt-errors.xq	2013-03-06 10:37:33 +0000
+++ modules/w3c/pregenerated/xqt-errors.xq	2013-03-13 17:19:33 +0000
@@ -203,6 +203,14 @@
 
 (:~
  :
+ : It is a type error if the content sequence in an element constructor contains a function item.
+ : 
+ : @see http://www.w3.org/2005/xqt-errors
+:)
+declare variable $err:XQTY0105 as xs:QName := fn:QName($err:NS, "err:XQTY0105");
+
+(:~
+ :
  : An implementation that does not support the Schema Import Feature must
  : raise a static error if a Prolog contains a schema import.
  : 
@@ -1319,6 +1327,14 @@
 
 (:~
  :
+ : This error is raised if the fn:function-lookup returns a context-dependent function and the context-dependent function is then called.
+ : 
+ : @see http://www.w3.org/2005/xqt-errors
+:)
+declare variable $err:FOFL0001 as xs:QName := fn:QName($err:NS, "err:FOFL0001");
+
+(:~
+ :
  : Invalid content passed to \c x:canonicalize().
  : 
  : @see http://www.w3.org/2005/xqt-errors

=== modified file 'modules/xqxq/xqxq.xq'
--- modules/xqxq/xqxq.xq	2013-02-15 06:11:20 +0000
+++ modules/xqxq/xqxq.xq	2013-03-13 17:19:33 +0000
@@ -31,7 +31,6 @@
 declare namespace f = "http://www.zorba-xquery.com/features";;
 
 declare option ver:module-version "1.0";
-declare option op:enable "f:hof";
 
 (:~
  : The function prepares a given XQuery program for execution.

=== modified file 'src/api/serialization/serializer.cpp'
--- src/api/serialization/serializer.cpp	2013-03-11 15:00:50 +0000
+++ src/api/serialization/serializer.cpp	2013-03-13 17:19:33 +0000
@@ -463,6 +463,11 @@
     ERROR_PARAMS(lMethod, item->getType()->getStringValue()));
   }
 #endif
+  else if (item->isFunction())
+  {
+    throw XQUERY_EXCEPTION(err::SENR0001,
+    ERROR_PARAMS(item->show(), "function item node"));
+  }
 }
 
 

=== modified file 'src/compiler/codegen/plan_visitor.cpp'
--- src/compiler/codegen/plan_visitor.cpp	2013-03-08 00:09:46 +0000
+++ src/compiler/codegen/plan_visitor.cpp	2013-03-13 17:19:33 +0000
@@ -466,29 +466,90 @@
 void end_visit(function_item_expr& v)
 {
   CODEGEN_TRACE_OUT("");
-  store::Item_t lQName = v.get_qname();
-  store::Item_t lFItem;
-
-  bool isInline = (lQName == 0);
-
-  if (!isInline)
+
+  DynamicFunctionInfo* fnInfo = v.get_dynamic_fn_info();
+  fnInfo->theCCB = theCCB;
+  fnInfo->theMustDeleteCCB = false;
+  fnInfo->theLoc = qloc;
+  fnInfo->theFunction = v.get_function();
+  fnInfo->theQName = v.get_qname();
+  fnInfo->theArity = v.get_arity();
+
+  if (v.is_inline())
   {
-    // literal function item
-    lFItem = new FunctionItem(theCCB, sctx, &v);
+    for (csize i = 0; i < v.get_subst_vars_values().size(); ++i)
+    {      
+      if (!v.get_is_global_var()[i])     
+        fnInfo->theScopedVarsIterators.push_back(pop_itstack());
+    }
+
+    std::reverse(fnInfo->theScopedVarsIterators.begin(), fnInfo->theScopedVarsIterators.end());
   }
-  else
-  {
-    // inline function
-    std::vector<PlanIter_t> lVariableValues;
-    size_t lSize = v.get_vars().size();
-    for (size_t i = 0; i < lSize; ++i)
+
+
+  // This portion is similar to the eval iterator
+  { 
+    csize curChild = -1;
+    csize numOuterVars = fnInfo->theScopedVarsNames.size();
+    for (csize i = 0; i < numOuterVars; ++i)
     {
-      lVariableValues.push_back(pop_itstack());
-    }
-    lFItem = new FunctionItem(theCCB, sctx, &v, lVariableValues);
+      var_expr* ve = theCCB->theEM->create_var_expr(fnInfo->theClosureSctx,
+                                                            NULL,
+                                                            qloc,
+                                                            var_expr::hof_var,
+                                                            fnInfo->theScopedVarsNames[i].getp());
+
+      if (!fnInfo->theIsGlobalVar[i])
+      {
+        ++curChild;
+
+        if (fnInfo->theSubstVarsValues[i] != NULL
+            &&
+            fnInfo->theSubstVarsValues[i]->get_unique_id() == 0)
+        {
+          fnInfo->theSubstVarsValues[i]->set_var_info(NULL);
+          fnInfo->theSubstVarsValues[i]->set_unique_id(theNextDynamicVarId++);
+        }
+
+        ve->set_unique_id(fnInfo->theSubstVarsValues[i]->get_unique_id());
+        fnInfo->theVarId[i] = fnInfo->theSubstVarsValues[i]->get_unique_id();
+      }
+      else
+      {
+        static_context* outerSctx = fnInfo->theClosureSctx->get_parent();
+
+        VarInfo* outerGlobalVar = outerSctx->lookup_var(fnInfo->theScopedVarsNames[i]);
+
+        ulong outerGlobalVarId = 0;
+
+        if (outerGlobalVar)
+        {
+          outerGlobalVarId = outerGlobalVar->getId();
+        }
+        else
+        {
+          for (csize j=0; j<fnInfo->theSubstVarsValues.size(); j++)
+          {
+            if (fnInfo->theSubstVarsValues[j]->get_name()->equals(fnInfo->theScopedVarsNames[i].getp()))
+              outerGlobalVarId = fnInfo->theSubstVarsValues[j]->get_unique_id();
+          }
+        }
+
+        if (fnInfo->theSubstVarsValues[i] != NULL
+            &&
+            fnInfo->theSubstVarsValues[i]->get_unique_id() == 0)
+        {
+          fnInfo->theSubstVarsValues[i]->set_unique_id(outerGlobalVarId);
+        }
+
+        ve->set_unique_id(outerGlobalVarId);
+
+        fnInfo->theVarId[i] = outerGlobalVarId;
+      }
+    } // for
   }
 
-  push_itstack(new SingletonIterator (sctx, qloc, lFItem));
+  push_itstack(new DynamicFunctionIterator(sctx, qloc, fnInfo));
 }
 
 
@@ -507,18 +568,48 @@
 
   ulong numArgs = (ulong)v.get_args().size() + 1;
 
-  std::vector<PlanIter_t> argIters(numArgs);
-
-  for (size_t i = 1; i < numArgs; ++i)
-  {
-    argIters[i] = pop_itstack();
-  }
-
-  argIters[0] = pop_itstack();
-
-  push_itstack(new DynamicFnCallIterator(sctx, qloc, argIters));
-}
-
+  std::vector<PlanIter_t> argIters;
+  
+  bool isPartialApply = false;
+  
+  // the arguments are reversed on the stack
+  for (csize i=0; i<v.get_dot_vars().size(); i++)
+  {
+    PlanIter_t iter = pop_itstack();
+    argIters.push_back(iter);
+  }
+
+  for (size_t i = 0; i < numArgs-1; ++i)
+  {
+    if (v.get_args()[i]->get_expr_kind() == argument_placeholder_expr_kind)
+      isPartialApply = true;
+
+    argIters.push_back(pop_itstack());
+  }
+
+  argIters.push_back(pop_itstack());
+
+  std::reverse(argIters.begin(), argIters.end());
+
+  push_itstack(new DynamicFnCallIterator(sctx, qloc, argIters, v.get_dot_vars().size(), isPartialApply));
+}
+
+
+/***************************************************************************//**
+
+********************************************************************************/
+bool begin_visit(argument_placeholder_expr& v)
+{
+  CODEGEN_TRACE_IN("");
+  return true;
+}
+
+void end_visit(argument_placeholder_expr& v)
+{
+  CODEGEN_TRACE_OUT("");
+  PlanIter_t it = new ArgumentPlaceholderIterator(sctx, qloc);
+  push_itstack(it);
+}
 
 /***************************************************************************//**
 
@@ -836,6 +927,7 @@
 
   case var_expr::arg_var:
   {
+    ZORBA_ASSERT(arg_var_iter_map != NULL);
     PlanIter_t iter = base_var_codegen(var, *arg_var_iter_map);
     push_itstack(iter);
     break;
@@ -856,6 +948,7 @@
   }
 
   case var_expr::prolog_var:
+  case var_expr::hof_var:
   {
     push_itstack(new CtxVarIterator(sctx,
                                     qloc,
@@ -3712,6 +3805,7 @@
     hash64map<std::vector<LetVarIter_t> *>* arg_var_map)
 {
   plan_visitor c(ccb, nextDynamicVarId, arg_var_map);
+
   root->accept(c);
   PlanIter_t result = c.result();
 

=== modified file 'src/compiler/expression/abstract_expr_visitor.h'
--- src/compiler/expression/abstract_expr_visitor.h	2013-02-07 17:24:36 +0000
+++ src/compiler/expression/abstract_expr_visitor.h	2013-03-13 17:19:33 +0000
@@ -1,12 +1,12 @@
 /*
  * Copyright 2006-2008 The FLWOR Foundation.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,18 +22,18 @@
 #include "compiler/expression/expr_visitor.h"
 
 /*______________________________________________________________________
-|  
+|
 |  Design note: Visitor pattern.  See, for example:
 |  "Modern C++ Design" by Andrei Alexandrescu,
 |  Addison Wesley (2001), Chapter 10.
 |_______________________________________________________________________*/
 
-namespace zorba 
+namespace zorba
 {
 
 class abstract_expr_visitor : public expr_visitor
 {
-public: 
+public:
   virtual ~abstract_expr_visitor() {}
 
 public:
@@ -80,6 +80,7 @@
   EXPR_VISITOR_METHODS(trycatch_expr);
   EXPR_VISITOR_METHODS(function_item_expr);
   EXPR_VISITOR_METHODS(dynamic_function_invocation_expr);
+  EXPR_VISITOR_METHODS(argument_placeholder_epxr);
 
   EXPR_VISITOR_METHODS (delete_expr);
   EXPR_VISITOR_METHODS (insert_expr);

=== modified file 'src/compiler/expression/expr_base.cpp'
--- src/compiler/expression/expr_base.cpp	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_base.cpp	2013-03-13 17:19:33 +0000
@@ -288,6 +288,13 @@
   return oss.str();
 }
 
+/*******************************************************************************
+  to mirror the Item's class show() method
+********************************************************************************/
+std::string expr::show() const  
+{ 
+  return toString(); 
+}
 
 /*******************************************************************************
 

=== modified file 'src/compiler/expression/expr_base.h'
--- src/compiler/expression/expr_base.h	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_base.h	2013-03-13 17:19:33 +0000
@@ -71,6 +71,7 @@
 
   fo_expr_kind,
   dynamic_function_invocation_expr_kind,
+  argument_placeholder_expr_kind,
   function_item_expr_kind,
 
   castable_expr_kind,
@@ -270,6 +271,8 @@
 
   std::string toString() const;
 
+  std::string show() const; // to mirror the Item's class show() method
+
 public:
   //
   void setVisitId(uint8_t id) { theVisitId = id; }

=== modified file 'src/compiler/expression/expr_classes.h'
--- src/compiler/expression/expr_classes.h	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_classes.h	2013-03-13 17:19:33 +0000
@@ -51,6 +51,7 @@
   class trycatch_expr;
   class function_item_expr;
   class dynamic_function_invocation_expr;
+  class argument_placeholder_expr;
 
   class insert_expr;
   class delete_expr;

=== modified file 'src/compiler/expression/expr_clone.cpp'
--- src/compiler/expression/expr_clone.cpp	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_clone.cpp	2013-03-13 17:19:33 +0000
@@ -31,6 +31,7 @@
 #include "compiler/api/compilercb.h"
 
 #include "functions/function.h"
+#include "functions/udf.h"
 
 #include "diagnostics/xquery_diagnostics.h"
 #include "diagnostics/util_macros.h"
@@ -159,7 +160,7 @@
 
     std::vector<expr*> names;
     std::vector<expr*> values;
-    
+
     names.reserve(e->theNames.size());
     values.reserve(e->theValues.size());
 
@@ -345,7 +346,7 @@
   }
   case dynamic_function_invocation_expr_kind:
   {
-    const dynamic_function_invocation_expr* e = 
+    const dynamic_function_invocation_expr* e =
     static_cast<const dynamic_function_invocation_expr*>(this);
 
     checked_vector<expr*> newArgs;
@@ -356,12 +357,26 @@
       newArgs.push_back((*ite)->clone(udf, subst));
     }
     
+    checked_vector<expr*> newDotVars;
+    for (checked_vector<expr*>::const_iterator ite = e->theDotVars.begin();
+         ite != e->theDotVars.end();
+         ++ite)
+    {
+      newDotVars.push_back((*ite)->clone(udf, subst));
+    }
+
     newExpr = theCCB->theEM->
     create_dynamic_function_invocation_expr(theSctx,
                                             udf,
                                             theLoc,
                                             e->theExpr->clone(udf, subst),
-                                            newArgs);
+                                            newArgs,
+                                            newDotVars);
+    break;
+  }
+  case argument_placeholder_expr_kind:
+  {
+    newExpr = theCCB->theEM->create_argument_placeholder_expr(theSctx, udf, theLoc);
     break;
   }
   case function_item_expr_kind:
@@ -371,17 +386,24 @@
     function_item_expr* cloneExpr = theCCB->theEM->
     create_function_item_expr(theSctx,
                               udf,
-                              theLoc,
-                              e->theFunction->getName(),
-                              e->theFunction.getp(),
-                              e->theArity);
+                              get_loc(),
+                              e->theDynamicFunctionInfo->theClosureSctx,
+                              e->theDynamicFunctionInfo->theFunction,
+                              e->theDynamicFunctionInfo->theFunction->getName(),
+                              e->theDynamicFunctionInfo->theArity,
+                              e->is_inline(),
+                              e->needs_context_item());
 
-    std::vector<expr*> lNewVariables;
-    for (std::vector<expr*>::const_iterator ite = e->theScopedVariables.begin();
-         ite != e->theScopedVariables.end();
-         ++ite)
+    std::vector<expr*>::const_iterator varIter = e->theDynamicFunctionInfo->theScopedVarsValues.begin();
+    std::vector<var_expr*>::const_iterator substVarIter = e->theDynamicFunctionInfo->theSubstVarsValues.begin();
+    std::vector<store::Item_t>::const_iterator nameIter = e->theDynamicFunctionInfo->theScopedVarsNames.begin();
+    std::vector<int>::const_iterator isGlobalIter = e->theDynamicFunctionInfo->theIsGlobalVar.begin();
+    for (; varIter != e->theDynamicFunctionInfo->theScopedVarsValues.end(); ++varIter, ++substVarIter, ++nameIter, ++isGlobalIter)
     {
-      cloneExpr->add_variable((*ite)->clone(udf, subst));
+      cloneExpr->add_variable((*varIter) ? (*varIter)->clone(udf, subst) : NULL,
+                              (*substVarIter) ? static_cast<var_expr*>((*substVarIter)->clone(udf, subst)) : NULL,
+                              *nameIter,
+                              *isGlobalIter);
     }
 
     newExpr = cloneExpr;
@@ -593,7 +615,7 @@
 
     transform_expr* cloneExpr = theCCB->theEM->
     create_transform_expr(theSctx, udf, theLoc);
-    
+
     for (std::vector<copy_clause*>::const_iterator ite = e->theCopyClauses.begin();
          ite != e->theCopyClauses.end();
          ++ite)
@@ -698,10 +720,10 @@
     for (; ite != end; ++ite)
     {
       assert(subst.find(*ite) != subst.end());
-      
+
       clonedExits.push_back(subst[*ite]);
     }
-    
+
     newExpr = theCCB->theEM->
     create_exit_catcher_expr(theSctx, udf, theLoc, clonedInput, clonedExits);
 

=== modified file 'src/compiler/expression/expr_iter.cpp'
--- src/compiler/expression/expr_iter.cpp	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_iter.cpp	2013-03-13 17:19:33 +0000
@@ -195,9 +195,9 @@
 
           theArgsIter = oc->theOrderingExprs.begin();
           theArgsEnd = oc->theOrderingExprs.end();
-          
+
           theCurrentChild = &(*theArgsIter);
-          
+
           ++theArgsIter;
           theState = 3;
           return;
@@ -242,7 +242,7 @@
       while (theWincondIter < 2)
       {
         window_clause* wc = static_cast<window_clause *>(*theClausesIter);
-            
+
         flwor_wincond* wincond = (theWincondIter == 0 ?
                                   wc->theWinStartCond :
                                   wc->theWinStopCond );
@@ -269,7 +269,7 @@
         ++theArgsIter;
         return;
       }
-      
+
       theState = 1;
       ++theClausesIter;
       goto nextclause;
@@ -704,10 +704,12 @@
 
     EXPR_ITER_BEGIN();
 
-    theArgsIter = fiExpr->theScopedVariables.begin();
-    theArgsEnd = fiExpr->theScopedVariables.end();
+    theArgsIter = fiExpr->theDynamicFunctionInfo->theScopedVarsValues.begin();
+    theArgsEnd = fiExpr->theDynamicFunctionInfo->theScopedVarsValues.end();
     for (; theArgsIter != theArgsEnd; ++theArgsIter)
     {
+      if ( ! *theArgsIter) // TODO: the vars values for prolog variables is null, so they have to be skipped, or the optimizer will trip and fall off. Maybe null vars values need not be remembered
+        continue;
       EXPR_ITER_NEXT(*theArgsIter);
     }
 
@@ -730,11 +732,26 @@
     {
       EXPR_ITER_NEXT(*theArgsIter);
     }
+    
+    theArgsIter = dfiExpr->theDotVars.begin();
+    theArgsEnd = dfiExpr->theDotVars.end();
+    for (; theArgsIter != theArgsEnd; ++theArgsIter)
+    {
+      if ( ! *theArgsIter)
+        continue;
+      EXPR_ITER_NEXT(*theArgsIter);
+    }
 
     EXPR_ITER_END();
     return;
   }
 
+  case argument_placeholder_expr_kind:
+  {
+    theIsDone = true;
+    return;
+  }
+
   case insert_expr_kind:
   {
     insert_expr* insExpr = static_cast<insert_expr*>(theExpr);

=== modified file 'src/compiler/expression/expr_manager.cpp'
--- src/compiler/expression/expr_manager.cpp	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_manager.cpp	2013-03-13 17:19:33 +0000
@@ -796,14 +796,24 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 dynamic_function_invocation_expr*
-ExprManager::create_dynamic_function_invocation_expr(
-    static_context* sctx,
+ExprManager::create_dynamic_function_invocation_expr(static_context* sctx,
     user_function* udf,
     const QueryLoc& loc,
     expr* anExpr,
-    const std::vector<expr*>& args)
-{
-  CREATE_AND_RETURN_EXPR(dynamic_function_invocation_expr, sctx, udf, loc, anExpr, args);
+    const std::vector<expr*>& args,
+    const std::vector<expr*>& dotVars)
+{
+  CREATE_AND_RETURN_EXPR(dynamic_function_invocation_expr, sctx, udf, loc, anExpr, args, dotVars);
+}
+
+
+argument_placeholder_expr*
+ExprManager::create_argument_placeholder_expr(
+    static_context* sctx,
+    user_function* udf,
+    const QueryLoc& loc)
+{
+  CREATE_AND_RETURN_EXPR(argument_placeholder_expr, sctx, udf, loc);
 }
 
 
@@ -811,20 +821,25 @@
     static_context* sctx,
     user_function* udf,
     const QueryLoc& loc,
-    const store::Item* aQName,
+    static_context* closureSctx,
     function* f,
-    uint32_t aArity)
+    store::Item* aQName,
+    uint32_t aArity,
+    bool isInline,
+    bool needsContextItem)
 {
-  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, aQName, f, aArity);
+  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, closureSctx, f, aQName, aArity, isInline, needsContextItem);
 }
 
 
-function_item_expr* ExprManager::create_function_item_expr(
-    static_context* sctx,
+function_item_expr* ExprManager::create_function_item_expr(static_context* sctx,
     user_function* udf,
-    const QueryLoc& loc)
+    const QueryLoc& loc,
+    static_context *closureSctx,
+    bool isInline,
+    bool needsContextItem)
 {
-  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc);
+  CREATE_AND_RETURN_EXPR(function_item_expr, sctx, udf, loc, closureSctx, isInline, needsContextItem);
 }
 
 

=== modified file 'src/compiler/expression/expr_manager.h'
--- src/compiler/expression/expr_manager.h	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_manager.h	2013-03-13 17:19:33 +0000
@@ -489,20 +489,31 @@
       user_function* udf,
       const QueryLoc& loc,
       expr* anExpr,
-      const std::vector<expr*>& args);
+      const std::vector<expr*>& args,
+      const std::vector<expr*>& dotVars);
 
-  function_item_expr* create_function_item_expr(
+  argument_placeholder_expr* create_argument_placeholder_expr(
       static_context* sctx,
       user_function* udf,
+      const QueryLoc& loc);
+
+  function_item_expr* create_function_item_expr(static_context* sctx,
+      user_function* udf,
       const QueryLoc& loc,
-      const store::Item* aQName,
+      static_context *closureSctx,
       function* f,
-      uint32_t aArity);
+      store::Item* aQName,
+      uint32_t aArity,
+      bool isInline,
+      bool needsContextItem);
 
   function_item_expr* create_function_item_expr(
       static_context* sctx,
-      user_function* udf,
-      const QueryLoc& loc);
+      user_function* udf,      
+      const QueryLoc& loc,
+      static_context *closureSctx,
+      bool isInline,
+      bool needsContextItem);
 
   ftcontains_expr* create_ftcontains_expr(
       static_context*,
@@ -616,7 +627,7 @@
       user_function* udf,
       const QueryLoc& loc,
       bool general);
- 
+
   pragma* create_pragma(
       const store::Item_t&,
       const zstring&);

=== modified file 'src/compiler/expression/expr_put.cpp'
--- src/compiler/expression/expr_put.cpp	2013-03-07 10:10:10 +0000
+++ src/compiler/expression/expr_put.cpp	2013-03-13 17:19:33 +0000
@@ -185,6 +185,11 @@
     put_qname(get_name(), os);
   }
 
+  if (get_kind() == prolog_var || get_kind() == hof_var)
+  {
+    os << " uniqueId=" << theUniqueId;
+  }
+
 #if VERBOSE
   if (theDeclaredType != NULL)
   {
@@ -502,7 +507,7 @@
 ostream& fo_expr::put(ostream& os) const
 {
   const store::Item* qname = theFunction->getName();
-  BEGIN_PUT_MSG( qname->getStringValue() << "/" << num_args() );
+  BEGIN_PUT_MSG( qname->getStringValue() << "#" << num_args() );
   csize numArgs = num_args();
 
   for (csize i = 0; i < numArgs; ++i)
@@ -530,16 +535,33 @@
 {
   os << indent << "funtion_item_expr " << expr_addr(this) << inc_indent;
 
-  if (theQName != NULL)
+  if (!is_inline())
   {
-    os << " " << theQName->getStringValue() << "/" << theArity;
+    os << " " << theDynamicFunctionInfo->theQName->getStringValue()
+       << "#" << theDynamicFunctionInfo->theArity;
     os << dec_indent << endl;
     return os;
   }
   else
   {
-    os << " inline udf (" << theFunction.getp() << ") [\n";
-    reinterpret_cast<const user_function*>(theFunction.getp())->getBody()->put(os);
+    os << " " << theDynamicFunctionInfo->theQName->getStringValue()
+       << "#" << theDynamicFunctionInfo->theArity << " [\n";
+
+    for (ulong i = 0; i < theDynamicFunctionInfo->theScopedVarsValues.size(); i++)
+    {
+      os << indent << "using $"
+         << theDynamicFunctionInfo->theScopedVarsNames[i]->getStringValue()
+         << (theDynamicFunctionInfo->theIsGlobalVar[i] ? " global=1" : "") << " := [";
+      os << endl << inc_indent;
+      if (theDynamicFunctionInfo->theScopedVarsValues[i])
+        theDynamicFunctionInfo->theScopedVarsValues[i]->put(os);
+      os << dec_indent << indent << "]" << endl;
+    }
+
+    if (theDynamicFunctionInfo->theFunction != NULL &&
+        static_cast<user_function*>(theDynamicFunctionInfo->theFunction.getp())->getBody() != NULL)
+      static_cast<user_function*>(theDynamicFunctionInfo->theFunction.getp())->getBody()->put(os);
+
     END_PUT();
   }
 }
@@ -554,10 +576,25 @@
   for (csize i = 0; i < theArgs.size(); ++i)
     theArgs[i]->put(os);
 
+  for (csize i = 0; i < theDotVars.size(); i++)
+    if (theDotVars[i] != NULL)
+    {
+      os << indent << "using $"; 
+      theDotVars[i]->put(os);
+    }
+
   END_PUT();
 }
 
 
+ostream& argument_placeholder_expr::put(ostream& os) const
+{
+  BEGIN_PUT_NO_EOL( argument_placeholder_expr );
+  os << "? ]\n";
+  return os;
+}
+
+
 ostream& instanceof_expr::put( ostream& os) const
 {
   BEGIN_PUT_MSG("instanceof_expr " << theTargetType->toSchemaString());
@@ -745,7 +782,7 @@
 
   if (theValue->isFunction())
   {
-    os << "functrion item [ " << theValue->show() << " ]";
+    os << "function item [ " << theValue->show() << " ]";
   }
   else
   {

=== modified file 'src/compiler/expression/expr_type.cpp'
--- src/compiler/expression/expr_type.cpp	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_type.cpp	2013-03-13 17:19:33 +0000
@@ -31,6 +31,7 @@
 #include "compiler/expression/var_expr.h"
 #include "compiler/expression/expr.h"
 #include "compiler/expression/expr_iter.h"
+#include "compiler/expression/function_item_expr.h"
 
 #include "compiler/api/compilercb.h"
 
@@ -259,6 +260,7 @@
     case var_expr::catch_var: // TODO
     case var_expr::arg_var:
     case var_expr::eval_var:
+    case var_expr::hof_var:
     {
       break;
     }
@@ -625,14 +627,40 @@
   }
 
   case dynamic_function_invocation_expr_kind:
+  {    
+    dynamic_function_invocation_expr* e = static_cast<dynamic_function_invocation_expr*>(this);
+    xqtref_t fiType = e->theExpr->get_return_type();
+    if (fiType->type_kind() == XQType::FUNCTION_TYPE_KIND)
+    {
+      const FunctionXQType* funcType = static_cast<const FunctionXQType*>(fiType.getp());
+      newType = funcType->get_return_type();
+    }
+    else
+    {
+      newType = rtm.ITEM_TYPE_STAR;
+    }
+    break;
+  }
+
+  case argument_placeholder_expr_kind:
   {
-    theType = rtm.ITEM_TYPE_STAR; // TODO
+    theType = rtm.ITEM_TYPE_STAR;
     return;
   }
 
   case function_item_expr_kind:
   {
     theType = rtm.ANY_FUNCTION_TYPE_ONE;
+    function_item_expr* fiExpr = static_cast<function_item_expr*>(this);
+    if (fiExpr->get_function() != NULL)
+    {
+      const xqtref_t& retType = fiExpr->get_function()->getSignature().returnType();
+      std::vector<xqtref_t> paramTypes;
+      for (csize i=0; i<fiExpr->get_function()->getSignature().paramCount(); i++ )
+        paramTypes.push_back(fiExpr->get_function()->getSignature()[i]);
+
+      theType = new FunctionXQType(&rtm, paramTypes, retType, TypeConstants::QUANT_ONE);
+    }
     return;
   }
 

=== modified file 'src/compiler/expression/expr_visitor.h'
--- src/compiler/expression/expr_visitor.h	2013-03-05 12:34:19 +0000
+++ src/compiler/expression/expr_visitor.h	2013-03-13 17:19:33 +0000
@@ -1,12 +1,12 @@
 /*
  * Copyright 2006-2008 The FLWOR Foundation.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,7 +20,7 @@
 #include <zorba/config.h>
 #include "compiler/expression/expr_classes.h"
 
-namespace zorba 
+namespace zorba
 {
 
 #ifndef ZORBA_NO_FULL_TEXT
@@ -29,7 +29,7 @@
 
 class expr_visitor
 {
-public: 
+public:
 
   virtual ~expr_visitor() { }
 
@@ -79,6 +79,7 @@
   DECL_EXPR_VISITOR_VISIT_MEM_FNS( trycatch_expr );
   DECL_EXPR_VISITOR_VISIT_MEM_FNS( function_item_expr );
   DECL_EXPR_VISITOR_VISIT_MEM_FNS( dynamic_function_invocation_expr );
+  DECL_EXPR_VISITOR_VISIT_MEM_FNS( argument_placeholder_expr );
 
   DECL_EXPR_VISITOR_VISIT_MEM_FNS(insert_expr);
   DECL_EXPR_VISITOR_VISIT_MEM_FNS(delete_expr);

=== modified file 'src/compiler/expression/function_item_expr.cpp'
--- src/compiler/expression/function_item_expr.cpp	2013-02-07 17:24:36 +0000
+++ src/compiler/expression/function_item_expr.cpp	2013-03-13 17:19:33 +0000
@@ -15,6 +15,8 @@
  */
 #include "stdafx.h"
 
+#include "store/api/item_factory.h"
+
 #include "compiler/expression/function_item_expr.h"
 #include "compiler/expression/expr_visitor.h"
 
@@ -27,7 +29,7 @@
 namespace zorba {
 
 
-DEF_EXPR_ACCEPT (dynamic_function_invocation_expr)
+DEF_EXPR_ACCEPT (dynamic_function_invocation_expr);
 
 
 dynamic_function_invocation_expr::dynamic_function_invocation_expr(
@@ -36,11 +38,13 @@
     user_function* udf,
     const QueryLoc& loc,
     expr* anExpr,
-    const std::vector<expr*>& args)
+    const std::vector<expr*>& args,
+    const std::vector<expr*>& dotVars)
   :
   expr(ccb, sctx, udf, loc, dynamic_function_invocation_expr_kind),
   theExpr(anExpr),
-  theArgs(args)
+  theArgs(args),
+  theDotVars(dotVars)
 {
   assert(anExpr != 0);
   compute_scripting_kind();
@@ -61,7 +65,19 @@
 
 ********************************************************************************/
 
-DEF_EXPR_ACCEPT (function_item_expr)
+DEF_EXPR_ACCEPT (argument_placeholder_expr);
+
+void argument_placeholder_expr::compute_scripting_kind()
+{
+  theScriptingKind = SIMPLE_EXPR;
+}
+
+
+/*******************************************************************************
+
+********************************************************************************/
+
+DEF_EXPR_ACCEPT (function_item_expr);
 
 
 function_item_expr::function_item_expr(
@@ -69,14 +85,22 @@
     static_context* sctx,
     user_function* udf,
     const QueryLoc& loc,
-    const store::Item* aQName,
+    static_context* closureSctx,
     function* f,
-    uint32_t aArity)
+    store::Item* aQName,
+    uint32_t aArity,
+    bool isInline,
+    bool needsContextItem)
   :
   expr(ccb, sctx, udf, loc, function_item_expr_kind),
-  theQName(const_cast<store::Item*>(aQName)),
-  theFunction(f),
-  theArity(aArity)
+  theDynamicFunctionInfo(new DynamicFunctionInfo(
+                         closureSctx,
+                         loc,
+                         f,
+                         aQName,
+                         aArity,
+                         isInline,
+                         needsContextItem))
 {
   assert(f != NULL);
   compute_scripting_kind();
@@ -87,12 +111,20 @@
     CompilerCB* ccb,
     static_context* sctx,
     user_function* udf,
-    const QueryLoc& loc)
+    const QueryLoc& loc,
+    static_context* closureSctx,
+    bool isInline,
+    bool needsContextItem)
   :
   expr(ccb, sctx, udf, loc, function_item_expr_kind),
-  theQName(0),
-  theFunction(NULL),
-  theArity(0)
+  theDynamicFunctionInfo(new DynamicFunctionInfo(
+                         closureSctx,
+                         loc,
+                         NULL,
+                         NULL,
+                         0,
+                         isInline,
+                         needsContextItem))
 {
   theScriptingKind = SIMPLE_EXPR;
 }
@@ -102,31 +134,18 @@
 {
 }
 
-
-user_function* function_item_expr::get_function() const 
-{
-  assert(theFunction->isUdf());
-  return static_cast<user_function*>(theFunction.getp());
-}
-
-
-void function_item_expr::add_variable(expr* var)
-{
-  theScopedVariables.push_back(var);
-}
-
-
-const std::vector<expr*>& function_item_expr::get_vars() const
-{
-  return theScopedVariables;
-}
-
-
-void function_item_expr::set_function(user_function_t& udf)
-{
-  theFunction = udf;
-  theArity = udf->getArity();
-  compute_scripting_kind();
+void function_item_expr::add_variable(expr* var, var_expr* substVar, const store::Item_t& name, int isGlobal)
+{
+  theDynamicFunctionInfo->add_variable(var, substVar, name, isGlobal);
+}
+
+
+void function_item_expr::set_function(user_function* udf)
+{
+  theDynamicFunctionInfo->theFunction = udf;
+  theDynamicFunctionInfo->theArity = udf->getArity();
+  theDynamicFunctionInfo->theQName = udf->getName();
+  // compute_scripting_kind();
 }
 
 
@@ -136,6 +155,17 @@
   theScriptingKind = SIMPLE_EXPR;
 }
 
+store::Item_t function_item_expr::create_inline_fname(const QueryLoc& loc) 
+{
+  store::Item_t name;
+  std::stringstream ss;
+  ss << "inline function(";
+  ss << loc;
+  ss << ")";
+  GENV_ITEMFACTORY->createQName(name, "", "", ss.str());
+  return name;
+}
+
 
 }//end of namespace
 /* vim:set et sw=2 ts=2: */

=== modified file 'src/compiler/expression/function_item_expr.h'
--- src/compiler/expression/function_item_expr.h	2013-02-07 17:24:36 +0000
+++ src/compiler/expression/function_item_expr.h	2013-03-13 17:19:33 +0000
@@ -23,9 +23,38 @@
 
 #include "store/naive/shared_types.h"
 
+#include "runtime/function_item/function_item.h"
+
+
 namespace zorba {
 
 /*******************************************************************************
+  [133]     ArgumentPlaceholder      ::=      "?"
+********************************************************************************/
+class argument_placeholder_expr : public expr
+{
+  friend class ExprIterator;
+  friend class expr;
+  friend class ExprManager;
+
+protected:
+  argument_placeholder_expr(CompilerCB* ccb, static_context* sctx, user_function* udf, const QueryLoc& loc)
+    :
+    expr(ccb, sctx, udf, loc, argument_placeholder_expr_kind)
+  {
+    compute_scripting_kind();
+  }
+
+public:
+  void compute_scripting_kind();
+
+  void accept(expr_visitor&);
+
+  std::ostream& put(std::ostream& os) const;
+};
+
+
+/*******************************************************************************
 
   [121] FilterExpr ::= PrimaryExpr (Predicate | DynamicFunctionInvocation)*
 
@@ -43,20 +72,24 @@
 protected:
   expr                * theExpr;
   std::vector<expr*>    theArgs;
+  
+  std::vector<expr*>    theDotVars; // context item vars
 
 protected:
-  dynamic_function_invocation_expr(
-      CompilerCB* ccb,
+  dynamic_function_invocation_expr(CompilerCB* ccb,
       static_context* sctx,
       user_function* udf,
       const QueryLoc& loc,
       expr* anExpr,
-      const std::vector<expr*>& args);
+      const std::vector<expr*>& args,
+      const std::vector<expr*>& dotVars);
 
 public:
   const expr* get_function() const { return theExpr; }
 
   const std::vector<expr*>& get_args() const { return theArgs; }
+  
+  const std::vector<expr*>& get_dot_vars() const { return theDotVars; }
 
   void compute_scripting_kind();
 
@@ -74,10 +107,6 @@
 
   InlineFunction ::= "function" "(" ParamList? ")" ("as" SequenceType)? EnclosedExpr
 
-  theQName :
-  NULL in case of inline function. Otherwise, the qname of the named function
-  in the LiteralFunctionItem.
-
   theFunction :
   This is always a pointer to a user_function obj. In case of an inline function
   expr, it is an anonymous user_function obj that is created on-the-fly by the
@@ -103,50 +132,66 @@
   friend class expr;
   friend class ExprManager;
 
-private:
-  store::Item_t       theQName;
-  function_t          theFunction;
-  uint32_t            theArity;
-  std::vector<expr*>  theScopedVariables;
-
-public:
-
+protected:
+  DynamicFunctionInfo_t       theDynamicFunctionInfo;
+  
 protected:
   function_item_expr(
       CompilerCB* ccb,
       static_context* sctx,
       user_function* udf,
       const QueryLoc& loc,
-      const store::Item* aQName,
+      static_context* closureSctx,
       function* f,
-      uint32_t aArity);
+      store::Item* aQName,
+      uint32_t aArity,
+      bool isInline,
+      bool needsContextItem);
 
   function_item_expr(
       CompilerCB* ccb,
       static_context* sctx,
       user_function* udf,
-      const QueryLoc& loc);
-
+      const QueryLoc& loc,
+      static_context* closureSctx,
+      bool isInline,
+      bool needsContextItem);
+  
+  virtual ~function_item_expr();
+  
 public:
-  ~function_item_expr();
-
-  void add_variable(expr* var);
-
-  void set_function(user_function_t& udf);
-
-  user_function* get_function() const;
-
-  const store::Item_t& get_qname() const { return theQName; }
-
-  uint32_t get_arity() const { return theArity; }
-
-  const std::vector<expr*>& get_vars() const;
+  DynamicFunctionInfo* get_dynamic_fn_info() { return theDynamicFunctionInfo; }
+
+  void add_variable(expr* var, var_expr* substVar, const store::Item_t& name, int isGlobal);
+
+  const std::vector<var_expr*>& get_subst_vars_values() const { return theDynamicFunctionInfo->theSubstVarsValues; }
+
+  const std::vector<store::Item_t>& get_scoped_vars_names() const { return theDynamicFunctionInfo->theScopedVarsNames; }
+
+  const std::vector<int>& get_is_global_var() const { return theDynamicFunctionInfo->theIsGlobalVar; }
+
+  void set_function(user_function* udf);
+
+  function* get_function() const { return theDynamicFunctionInfo->theFunction; }
+
+  const store::Item_t& get_qname() const { return theDynamicFunctionInfo->theQName; }
+
+  uint32_t get_arity() const { return theDynamicFunctionInfo->theArity; }
+  
+  bool is_inline() const { return theDynamicFunctionInfo->theIsInline; }
+  
+  bool needs_context_item() const { return theDynamicFunctionInfo->theNeedsContextItem; }
 
   void compute_scripting_kind();
 
   void accept(expr_visitor&);
 
   std::ostream& put(std::ostream& os) const;
+  
+public:
+  // Given a location, will create an inline function name string such 
+  // as "inline function(loc)"
+  static store::Item_t create_inline_fname(const QueryLoc& loc);
 };
 
 } //end of namespace

=== modified file 'src/compiler/expression/var_expr.cpp'
--- src/compiler/expression/var_expr.cpp	2013-02-07 17:24:36 +0000
+++ src/compiler/expression/var_expr.cpp	2013-03-13 17:19:33 +0000
@@ -53,6 +53,7 @@
   case count_var: return "CNT"; break;
   case score_var: return "SCORE"; break;
   case prolog_var: return "PROLOG"; break;
+  case hof_var: return "HOF"; break;
   case local_var: return "LOCAL"; break;
   case catch_var: return "CATCH"; break;
   case copy_var: return "COPY"; break;
@@ -315,7 +316,7 @@
 ********************************************************************************/
 void var_expr::remove_set_expr(expr* e)
 {
-  assert(theVarKind == local_var || theVarKind == prolog_var);
+  assert(theVarKind == local_var || theVarKind == prolog_var || theVarKind == hof_var);
 
   bool found = false;
   VarSetExprs::iterator ite = theSetExprs.begin();

=== modified file 'src/compiler/expression/var_expr.h'
--- src/compiler/expression/var_expr.h	2013-02-21 16:34:45 +0000
+++ src/compiler/expression/var_expr.h	2013-03-13 17:19:33 +0000
@@ -152,6 +152,8 @@
 
     prolog_var,
 
+    hof_var,      // used by HoF functions, behaves similarly to prolog vars
+
     local_var,
 
     arg_var

=== modified file 'src/compiler/parser/xquery_parser.cpp'
--- src/compiler/parser/xquery_parser.cpp	2013-03-07 11:42:29 +0000
+++ src/compiler/parser/xquery_parser.cpp	2013-03-13 17:19:33 +0000
@@ -36,7 +36,7 @@
 /* First part of user declarations.  */
 
 /* Line 293 of lalr1.cc  */
-#line 87 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 87 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 
 
 #include "common/common.h"
@@ -73,7 +73,7 @@
 
 
 /* Line 293 of lalr1.cc  */
-#line 77 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 77 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 
 
 #include "xquery_parser.hpp"
@@ -81,7 +81,7 @@
 /* User implementation prologue.  */
 
 /* Line 299 of lalr1.cc  */
-#line 915 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 915 "/home/markos/zorba/repo/hof-merge/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...
@@ -93,7 +93,7 @@
 }
 
 /* Line 299 of lalr1.cc  */
-#line 1040 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1040 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 
 #include "compiler/parser/xquery_scanner.h"
 
@@ -103,7 +103,7 @@
 
 
 /* Line 299 of lalr1.cc  */
-#line 107 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 107 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 
 #ifndef YY_
 # if defined YYENABLE_NLS && YYENABLE_NLS
@@ -189,7 +189,7 @@
 namespace zorba {
 
 /* Line 382 of lalr1.cc  */
-#line 193 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 193 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 
   /* Return YYSTR after stripping away unnecessary quotes and
      backslashes, so that it's suitable for yyerror.  The heuristic is
@@ -290,2558 +290,2558 @@
         case 112: /* "\"'DECIMAL'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 913 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 913 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->decval); };
 
 /* Line 480 of lalr1.cc  */
-#line 298 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 298 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 126: /* "\"'DOUBLE'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 912 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 912 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->dval); };
 
 /* Line 480 of lalr1.cc  */
-#line 307 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 307 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 151: /* "\"'INTEGER'\"" */
 
 /* Line 480 of lalr1.cc  */
-#line 911 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 911 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->ival); };
 
 /* Line 480 of lalr1.cc  */
-#line 316 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 316 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 340: /* "VersionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 325 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 325 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 341: /* "MainModule" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 334 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 334 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 342: /* "LibraryModule" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 343 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 343 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 343: /* "ModuleDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 352 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 352 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 344: /* "SIND_DeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 361 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 361 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 345: /* "SIND_Decl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 370 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 370 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 346: /* "Setter" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 379 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 379 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 347: /* "BoundarySpaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 388 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 388 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 348: /* "DefaultCollationDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 397 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 397 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 349: /* "BaseURIDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 406 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 406 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 350: /* "ConstructionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 415 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 415 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 351: /* "OrderingModeDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 424 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 424 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 352: /* "EmptyOrderDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 433 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 433 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 353: /* "CopyNamespacesDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 442 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 442 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 354: /* "Import" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 451 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 451 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 355: /* "SchemaImport" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 460 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 460 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 356: /* "URILiteralList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 469 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 469 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 357: /* "SchemaPrefix" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 478 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 478 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 358: /* "ModuleImport" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 487 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 487 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 359: /* "NamespaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 496 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 496 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 360: /* "DefaultNamespaceDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 505 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 505 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 361: /* "VFO_DeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 514 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 514 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 362: /* "VFO_Decl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 523 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 523 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 363: /* "DecimalFormatDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 532 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 532 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 364: /* "DecimalFormatParamList" */
 
 /* Line 480 of lalr1.cc  */
-#line 939 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->vstrpair); };
 
 /* Line 480 of lalr1.cc  */
-#line 541 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 541 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 365: /* "DecimalFormatParam" */
 
 /* Line 480 of lalr1.cc  */
-#line 939 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->strpair); };
 
 /* Line 480 of lalr1.cc  */
-#line 550 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 550 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 367: /* "OptionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 559 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 559 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 368: /* "FTOptionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 568 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 568 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 369: /* "CtxItemDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 577 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 577 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 370: /* "CtxItemDecl2" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 586 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 586 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 371: /* "CtxItemDecl3" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 595 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 595 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 372: /* "CtxItemDecl4" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 604 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 604 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 373: /* "VarDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 613 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 613 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 374: /* "VarNameAndType" */
 
 /* Line 480 of lalr1.cc  */
-#line 939 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->varnametype); };
 
 /* Line 480 of lalr1.cc  */
-#line 622 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 622 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 375: /* "AnnotationList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 631 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 631 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 376: /* "Annotation" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 640 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 640 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 377: /* "AnnotationLiteralList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 649 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 649 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 378: /* "FunctionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 658 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 658 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 379: /* "FunctionDecl2" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 667 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 667 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 380: /* "FunctionDeclSimple" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 676 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 676 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 381: /* "FunctionDeclUpdating" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 685 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 685 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 382: /* "FunctionSig" */
 
 /* Line 480 of lalr1.cc  */
-#line 939 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->fnsig); };
 
 /* Line 480 of lalr1.cc  */
-#line 694 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 694 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 383: /* "ParamList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 703 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 703 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 384: /* "Param" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 712 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 712 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 385: /* "CollectionDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 721 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 721 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 387: /* "IndexDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 730 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 730 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 388: /* "IndexKeyList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 739 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 739 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 389: /* "IndexKeySpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 748 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 748 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 390: /* "IntegrityConstraintDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 757 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 757 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 391: /* "QueryBody" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 766 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 766 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 392: /* "StatementsAndOptionalExprTop" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 775 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 775 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 393: /* "StatementsAndOptionalExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 784 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 784 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 394: /* "StatementsAndExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 793 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 793 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 395: /* "Statements" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 802 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 802 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 396: /* "Statement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 811 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 811 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 397: /* "BlockStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 820 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 820 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 398: /* "BlockExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 829 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 829 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 399: /* "EnclosedStatementsAndOptionalExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 838 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 838 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 400: /* "VarDeclStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 847 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 847 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 403: /* "AssignStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 856 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 856 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 404: /* "ApplyStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 865 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 865 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 405: /* "ExitStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 874 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 874 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 406: /* "WhileStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 883 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 883 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 407: /* "FlowCtlStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 892 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 892 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 408: /* "FLWORStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 901 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 901 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 409: /* "ReturnStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 910 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 910 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 410: /* "IfStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 919 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 919 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 411: /* "TryStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 928 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 928 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 412: /* "CatchListStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 937 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 937 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 413: /* "CatchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 946 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 946 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 414: /* "Expr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 955 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 955 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 415: /* "ExprSingle" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 964 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 964 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 416: /* "ExprSimple" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 973 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 973 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 417: /* "FLWORExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 982 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 982 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 418: /* "ReturnExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 991 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 991 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 421: /* "FLWORWinCond" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1000 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1000 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 422: /* "WindowClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1009 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1009 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 423: /* "CountClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1018 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1018 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 424: /* "ForLetWinClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1027 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1027 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 426: /* "FLWORClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1036 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1036 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 427: /* "ForClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1045 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1045 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 428: /* "VarInDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1054 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1054 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 429: /* "VarInDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1063 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1063 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 430: /* "PositionalVar" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1072 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1072 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 431: /* "FTScoreVar" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1081 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1081 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 432: /* "LetClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1090 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1090 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 433: /* "VarGetsDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1099 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1099 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 434: /* "VarGetsDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1108 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1108 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 435: /* "WindowVarDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1117 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1117 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 436: /* "WindowVars" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1126 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1126 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 437: /* "WindowVars3" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1135 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1135 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 438: /* "WindowVars2" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1144 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1144 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 439: /* "WhereClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1153 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1153 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 440: /* "GroupByClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1162 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1162 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 441: /* "GroupSpecList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1171 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1171 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 442: /* "GroupSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1180 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1180 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 443: /* "GroupCollationSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1189 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1189 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 444: /* "OrderByClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1198 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1198 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 445: /* "OrderSpecList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1207 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1207 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 446: /* "OrderSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1216 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1216 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 447: /* "OrderModifier" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1225 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1225 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 448: /* "OrderDirSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1234 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1234 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 449: /* "OrderEmptySpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1243 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1243 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 450: /* "OrderCollationSpec" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1252 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1252 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 451: /* "QuantifiedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1261 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1261 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 452: /* "QVarInDeclList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1270 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1270 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 453: /* "QVarInDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1279 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1279 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 454: /* "SwitchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1288 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1288 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 455: /* "SwitchCaseClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1297 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1297 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 456: /* "SwitchCaseClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1306 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1306 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 457: /* "SwitchCaseOperandList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1315 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1315 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 458: /* "SwitchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1324 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1324 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 461: /* "TypeswitchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1333 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1333 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 462: /* "TypeswitchStatement" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1342 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1342 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 463: /* "CaseClauseList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1351 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1351 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 464: /* "CaseClause" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1360 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1360 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 467: /* "SequenceTypeList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1369 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1369 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 468: /* "IfExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1378 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1378 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 469: /* "OrExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1387 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1387 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 470: /* "AndExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1396 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1396 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 471: /* "ComparisonExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1405 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1405 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 473: /* "FTContainsExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1414 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1414 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 474: /* "StringConcatExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1423 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1423 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 475: /* "opt_FTIgnoreOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1432 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1432 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 476: /* "RangeExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1441 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1441 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 477: /* "AdditiveExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1450 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1450 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 478: /* "MultiplicativeExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1459 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1459 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 479: /* "UnionExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1468 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1468 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 480: /* "IntersectExceptExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1477 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1477 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 481: /* "InstanceofExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1486 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1486 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 482: /* "TreatExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1495 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1495 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 483: /* "CastableExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1504 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1504 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 484: /* "CastExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1513 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1513 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 485: /* "SingleType" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1522 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1522 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 486: /* "UnaryExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1531 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1531 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 487: /* "SignList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1540 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1540 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 488: /* "ValueExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1549 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1549 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 489: /* "SimpleMapExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1558 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1558 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 490: /* "ValueComp" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1567 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1567 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 491: /* "NodeComp" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1576 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1576 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 492: /* "ValidateExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1585 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1585 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 493: /* "ExtensionExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1594 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1594 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 494: /* "Pragma_list" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1603 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1603 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 495: /* "Pragma" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1612 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1612 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 496: /* "PathExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1621 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1621 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 498: /* "RelativePathExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1630 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1630 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 499: /* "StepExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1639 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1639 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 500: /* "AxisStep" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1648 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1648 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 501: /* "ForwardStep" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1657 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1657 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 502: /* "ForwardAxis" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1666 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1666 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 503: /* "AbbrevForwardStep" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1675 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1675 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 504: /* "ReverseStep" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1684 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1684 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 505: /* "ReverseAxis" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1693 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1693 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 506: /* "NodeTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1702 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1702 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 507: /* "NameTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1711 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1711 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 508: /* "Wildcard" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1720 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1720 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 509: /* "FilterExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1729 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1729 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 510: /* "PredicateList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1738 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1738 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 511: /* "Predicate" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1747 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1747 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 512: /* "PrimaryExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1756 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1756 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 513: /* "Literal" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1765 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1765 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 514: /* "NumericLiteral" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1774 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1774 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 515: /* "VarRef" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1783 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1783 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 516: /* "ParenthesizedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1792 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1792 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 517: /* "ContextItemExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1801 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1801 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 518: /* "OrderedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1810 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1810 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 519: /* "UnorderedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1819 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1819 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 520: /* "FunctionCall" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 1828 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 1828 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 521: /* "ArgList" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1837 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 522: /* "Constructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1846 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 523: /* "DirectConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1855 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 524: /* "DirElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1864 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 525: /* "DirElemContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1873 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 526: /* "DirAttributeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1882 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 527: /* "DirAttr" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1891 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 529: /* "DirAttributeValue" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1900 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 530: /* "opt_QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1909 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 531: /* "QuoteAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1918 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 532: /* "opt_AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1927 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 533: /* "AposAttrContentList" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1936 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 534: /* "QuoteAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1945 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 535: /* "AposAttrValueContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1954 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 536: /* "DirElemContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1963 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 537: /* "CommonContent" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1972 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 538: /* "DirCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1981 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 539: /* "DirPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1990 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 540: /* "CDataSection" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 1999 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 541: /* "ComputedConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2008 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 542: /* "CompDocConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2017 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 543: /* "CompElemConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2026 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 544: /* "CompAttrConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2035 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 545: /* "CompTextConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2044 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 546: /* "CompCommentConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2053 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 547: /* "CompPIConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2062 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 548: /* "CompNamespaceConstructor" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2071 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 549: /* "TypeDeclaration" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2080 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 550: /* "SequenceType" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2089 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 551: /* "OccurrenceIndicator" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2098 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 552: /* "ItemType" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2107 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 553: /* "TypeList" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2116 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 554: /* "GeneralizedAtomicType" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2125 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 555: /* "SimpleType" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2134 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 556: /* "KindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2143 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 557: /* "AnyKindTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2152 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 558: /* "DocumentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2161 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 559: /* "NamespaceTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2170 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 560: /* "TextTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2179 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 561: /* "CommentTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2188 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 562: /* "PITest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2197 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 563: /* "AttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2206 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 564: /* "SchemaAttributeTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2215 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 565: /* "ElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2224 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 566: /* "SchemaElementTest" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2233 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 567: /* "TypeName" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2242 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 568: /* "TypeName_WITH_HOOK" */
-
-/* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->node) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2251 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
-	break;
-      case 569: /* "StringLiteral" */
-
-/* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-	{ release_hack( (yyvaluep->expr) ); };
-
-/* Line 480 of lalr1.cc  */
-#line 2260 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1837 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 525: /* "Constructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1846 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 526: /* "DirectConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1855 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 527: /* "DirElemConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1864 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 528: /* "DirElemContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1873 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 529: /* "DirAttributeList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1882 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 530: /* "DirAttr" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1891 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 532: /* "DirAttributeValue" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1900 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 533: /* "opt_QuoteAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1909 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 534: /* "QuoteAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1918 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 535: /* "opt_AposAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1927 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 536: /* "AposAttrContentList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1936 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 537: /* "QuoteAttrValueContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1945 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 538: /* "AposAttrValueContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1954 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 539: /* "DirElemContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1963 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 540: /* "CommonContent" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1972 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 541: /* "DirCommentConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1981 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 542: /* "DirPIConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1990 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 543: /* "CDataSection" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 1999 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 544: /* "ComputedConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2008 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 545: /* "CompDocConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2017 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 546: /* "CompElemConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2026 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 547: /* "CompAttrConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2035 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 548: /* "CompTextConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2044 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 549: /* "CompCommentConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2053 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 550: /* "CompPIConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2062 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 551: /* "CompNamespaceConstructor" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2071 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 552: /* "TypeDeclaration" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2080 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 553: /* "SequenceType" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2089 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 554: /* "OccurrenceIndicator" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2098 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 555: /* "ItemType" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2107 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 556: /* "TypeList" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2116 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 557: /* "GeneralizedAtomicType" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2125 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 558: /* "SimpleType" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2134 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 559: /* "KindTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2143 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 560: /* "AnyKindTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2152 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 561: /* "DocumentTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2161 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 562: /* "NamespaceTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2170 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 563: /* "TextTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2179 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 564: /* "CommentTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2188 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 565: /* "PITest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2197 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 566: /* "AttributeTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2206 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 567: /* "SchemaAttributeTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2215 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 568: /* "ElementTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2224 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 569: /* "SchemaElementTest" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2233 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 570: /* "TypeName" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2242 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 571: /* "TypeName_WITH_HOOK" */
+
+/* Line 480 of lalr1.cc  */
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->node) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2251 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
+	break;
+      case 572: /* "StringLiteral" */
+
+/* Line 480 of lalr1.cc  */
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+	{ release_hack( (yyvaluep->expr) ); };
+
+/* Line 480 of lalr1.cc  */
+#line 2260 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 574: /* "AnyFunctionTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2269 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2269 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 575: /* "TypedFunctionTest" */
 
 /* Line 480 of lalr1.cc  */
-#line 927 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2278 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2278 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 578: /* "InsertExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2287 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2287 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 579: /* "DeleteExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2296 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2296 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 580: /* "ReplaceExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2305 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2305 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 581: /* "RenameExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2314 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2314 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 582: /* "TransformExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2323 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2323 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 583: /* "VarNameList" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2332 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2332 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 584: /* "VarNameDecl" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2341 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2341 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 585: /* "TryExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2350 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2350 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 586: /* "CatchListExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2359 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2359 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 587: /* "CatchExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2368 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2368 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 588: /* "BracedExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2377 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2377 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 589: /* "NameTestList" */
 
 /* Line 480 of lalr1.cc  */
-#line 939 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 939 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ delete (yyvaluep->name_test_list); };
 
 /* Line 480 of lalr1.cc  */
-#line 2386 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2386 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 590: /* "FTSelection" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2395 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2395 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 593: /* "FTOr" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2404 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2404 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 594: /* "FTAnd" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2413 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2413 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 595: /* "FTMildNot" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2422 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2422 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 596: /* "FTUnaryNot" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2431 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2431 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 597: /* "FTPrimaryWithOptions" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2440 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2440 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 598: /* "opt_FTMatchOptions" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2449 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2449 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 600: /* "FTWeight" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2458 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2458 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 601: /* "FTPrimary" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2467 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2467 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 602: /* "opt_FTTimes" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2476 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2476 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 603: /* "FTExtensionSelection" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2485 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2485 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 605: /* "FTWords" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2494 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2494 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 606: /* "FTWordsValue" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2503 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2503 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 608: /* "FTAnyallOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2512 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2512 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 611: /* "FTPosFilter" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2521 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2521 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 612: /* "FTOrder" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2530 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2530 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 613: /* "FTWindow" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2539 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2539 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 614: /* "FTDistance" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2548 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2548 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 615: /* "FTUnit" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2557 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2557 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 616: /* "FTMatchOptions" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2566 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2566 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 617: /* "FTMatchOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2575 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2575 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 618: /* "FTCaseOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2584 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2584 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 619: /* "FTDiacriticsOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2593 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2593 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 620: /* "FTExtensionOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2602 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2602 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 621: /* "FTStemOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2611 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2611 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 622: /* "FTThesaurusOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2620 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2620 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 626: /* "FTThesaurusID" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2629 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2629 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 629: /* "FTStopWordOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2638 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2638 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 630: /* "FTStopWords" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2647 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2647 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 634: /* "FTStopWordsInclExcl" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2656 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2656 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 635: /* "FTLanguageOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2665 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2665 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 636: /* "FTWildCardOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2674 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2674 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 637: /* "FTContent" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2683 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2683 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 638: /* "FTTimes" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2692 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2692 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 639: /* "FTRange" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2701 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2701 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 640: /* "FTScope" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2710 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2710 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 641: /* "FTBigUnit" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2719 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2719 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 642: /* "FTIgnoreOption" */
 
 /* Line 480 of lalr1.cc  */
-#line 930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2728 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2728 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 643: /* "JSONArrayConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2737 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2737 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 644: /* "JSONSimpleObjectUnion" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2746 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2746 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 645: /* "JSONAccumulatorObjectUnion" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2755 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2755 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 646: /* "JSONObjectConstructor" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2764 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2764 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 647: /* "JSONPairList" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->node) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2773 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2773 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 648: /* "JSONInsertExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2782 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2782 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 649: /* "JSONAppendExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2791 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2791 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 650: /* "JSONDeleteExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2800 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2800 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 651: /* "JSONRenameExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2809 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2809 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 652: /* "JSONReplaceExpr" */
 
 /* Line 480 of lalr1.cc  */
-#line 933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2818 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2818 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 659: /* "QNAME" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2827 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2827 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 660: /* "FUNCTION_NAME" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2836 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2836 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
       case 661: /* "EQNAME" */
 
 /* Line 480 of lalr1.cc  */
-#line 936 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 	{ release_hack( (yyvaluep->expr) ); };
 
 /* Line 480 of lalr1.cc  */
-#line 2845 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2845 "/home/markos/zorba/repo/hof-merge/build/src/compiler/parser/xquery_parser.cpp"
 	break;
 
 	default:
@@ -2932,13 +2932,13 @@
     /* User initialization code.  */
     
 /* Line 565 of lalr1.cc  */
-#line 140 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 140 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
 {
     yylloc.begin.filename = yylloc.end.filename = &(driver.theFilename2);
 }
 
 /* Line 565 of lalr1.cc  */
-#line 2942 "/home/markos/zorba/repo/ns-nodes/build-opt/src/compiler/parser/xquery_parser.cpp"
+#line 2942 "/home/markos/zorba/repo/hof-merge/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
@@ -3057,7 +3057,7 @@
 	  case 3:
 
 /* Line 690 of lalr1.cc  */
-#line 1058 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1058 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -3066,7 +3066,7 @@
   case 4:
 
 /* Line 690 of lalr1.cc  */
-#line 1062 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1062 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
       }
@@ -3075,7 +3075,7 @@
   case 5:
 
 /* Line 690 of lalr1.cc  */
-#line 1066 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1066 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
       }
@@ -3084,7 +3084,7 @@
   case 6:
 
 /* Line 690 of lalr1.cc  */
-#line 1074 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1074 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = NULL;
       }
@@ -3093,7 +3093,7 @@
   case 7:
 
 /* Line 690 of lalr1.cc  */
-#line 1080 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1080 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -3102,7 +3102,7 @@
   case 8:
 
 /* Line 690 of lalr1.cc  */
-#line 1084 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1084 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.node) = NULL; YYABORT;
       }
@@ -3111,7 +3111,7 @@
   case 9:
 
 /* Line 690 of lalr1.cc  */
-#line 1093 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1093 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3121,7 +3121,7 @@
   case 10:
 
 /* Line 690 of lalr1.cc  */
-#line 1099 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1099 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -3133,7 +3133,7 @@
   case 11:
 
 /* Line 690 of lalr1.cc  */
-#line 1107 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1107 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
       driver.set_expr( (yyval.node) );
@@ -3143,7 +3143,7 @@
   case 12:
 
 /* Line 690 of lalr1.cc  */
-#line 1113 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1113 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -3155,7 +3155,7 @@
   case 13:
 
 /* Line 690 of lalr1.cc  */
-#line 1124 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1124 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)), "utf-8" );
     }
@@ -3164,7 +3164,7 @@
   case 14:
 
 /* Line 690 of lalr1.cc  */
-#line 1129 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1129 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VersionDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
     }
@@ -3173,7 +3173,7 @@
   case 15:
 
 /* Line 690 of lalr1.cc  */
-#line 1137 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1137 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (1)].node)), NULL);
 
@@ -3184,7 +3184,7 @@
   case 16:
 
 /* Line 690 of lalr1.cc  */
-#line 1144 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1144 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (1)].node)));
 
@@ -3195,7 +3195,7 @@
   case 17:
 
 /* Line 690 of lalr1.cc  */
-#line 1151 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1151 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (1)].node)),
@@ -3208,7 +3208,7 @@
   case 18:
 
 /* Line 690 of lalr1.cc  */
-#line 1160 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1160 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new MainModule( LOC((yyloc)), static_cast<QueryBody*>((yysemantic_stack_[(1) - (1)].expr)), NULL );
     }
@@ -3217,7 +3217,7 @@
   case 19:
 
 /* Line 690 of lalr1.cc  */
-#line 1167 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1167 "/home/markos/zorba/repo/hof-merge/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();
@@ -3229,7 +3229,7 @@
   case 20:
 
 /* Line 690 of lalr1.cc  */
-#line 1175 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1175 "/home/markos/zorba/repo/hof-merge/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();
@@ -3241,7 +3241,7 @@
   case 21:
 
 /* Line 690 of lalr1.cc  */
-#line 1183 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1183 "/home/markos/zorba/repo/hof-merge/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();
@@ -3253,7 +3253,7 @@
   case 22:
 
 /* Line 690 of lalr1.cc  */
-#line 1191 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1191 "/home/markos/zorba/repo/hof-merge/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();
@@ -3265,7 +3265,7 @@
   case 23:
 
 /* Line 690 of lalr1.cc  */
-#line 1202 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1202 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new LibraryModule(LOC((yyloc)), static_cast<ModuleDecl*>((yysemantic_stack_[(1) - (1)].node)), NULL);
     }
@@ -3274,7 +3274,7 @@
   case 24:
 
 /* Line 690 of lalr1.cc  */
-#line 1207 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1207 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), static_cast<SIND_DeclList*>((yysemantic_stack_[(3) - (2)].node)), NULL);
 
@@ -3285,7 +3285,7 @@
   case 25:
 
 /* Line 690 of lalr1.cc  */
-#line 1214 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1214 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)), NULL, static_cast<VFO_DeclList*>((yysemantic_stack_[(3) - (2)].node)));
 
@@ -3296,7 +3296,7 @@
   case 26:
 
 /* Line 690 of lalr1.cc  */
-#line 1221 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1221 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       Prolog* prolog = new Prolog(LOC((yyloc)),
                                   static_cast<SIND_DeclList*>((yysemantic_stack_[(5) - (2)].node)),
@@ -3309,7 +3309,7 @@
   case 27:
 
 /* Line 690 of lalr1.cc  */
-#line 1233 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1233 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(6) - (3)].sval)), SYMTAB((yysemantic_stack_[(6) - (5)].sval)) );
 
@@ -3320,7 +3320,7 @@
   case 28:
 
 /* Line 690 of lalr1.cc  */
-#line 1243 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1243 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       SIND_DeclList *sdl = new SIND_DeclList( LOC((yyloc)) );
       sdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3331,7 +3331,7 @@
   case 29:
 
 /* Line 690 of lalr1.cc  */
-#line 1250 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1250 "/home/markos/zorba/repo/hof-merge/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);
@@ -3341,7 +3341,7 @@
   case 30:
 
 /* Line 690 of lalr1.cc  */
-#line 1257 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1257 "/home/markos/zorba/repo/hof-merge/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
@@ -3354,7 +3354,7 @@
   case 44:
 
 /* Line 690 of lalr1.cc  */
-#line 1292 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1292 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::preserve_space);
     }
@@ -3363,7 +3363,7 @@
   case 45:
 
 /* Line 690 of lalr1.cc  */
-#line 1297 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1297 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BoundarySpaceDecl(LOC((yyloc)), StaticContextConsts::strip_space);
     }
@@ -3372,7 +3372,7 @@
   case 46:
 
 /* Line 690 of lalr1.cc  */
-#line 1305 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1305 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultCollationDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (4)].sval)) );
     }
@@ -3381,7 +3381,7 @@
   case 47:
 
 /* Line 690 of lalr1.cc  */
-#line 1313 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1313 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new BaseURIDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)) );
     }
@@ -3390,7 +3390,7 @@
   case 48:
 
 /* Line 690 of lalr1.cc  */
-#line 1321 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1321 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_preserve);
     }
@@ -3399,7 +3399,7 @@
   case 49:
 
 /* Line 690 of lalr1.cc  */
-#line 1326 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1326 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ConstructionDecl(LOC((yyloc)), StaticContextConsts::cons_strip);
     }
@@ -3408,7 +3408,7 @@
   case 50:
 
 /* Line 690 of lalr1.cc  */
-#line 1334 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1334 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::ordered);
     }
@@ -3417,7 +3417,7 @@
   case 51:
 
 /* Line 690 of lalr1.cc  */
-#line 1339 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1339 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new OrderingModeDecl(LOC((yyloc)), StaticContextConsts::unordered);
     }
@@ -3426,7 +3426,7 @@
   case 52:
 
 /* Line 690 of lalr1.cc  */
-#line 1347 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1347 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_greatest);
     }
@@ -3435,7 +3435,7 @@
   case 53:
 
 /* Line 690 of lalr1.cc  */
-#line 1352 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1352 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new EmptyOrderDecl(LOC((yyloc)), StaticContextConsts::empty_least);
     }
@@ -3444,7 +3444,7 @@
   case 54:
 
 /* Line 690 of lalr1.cc  */
-#line 1360 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1360 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, true);
     }
@@ -3453,7 +3453,7 @@
   case 55:
 
 /* Line 690 of lalr1.cc  */
-#line 1365 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1365 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), true, false);
     }
@@ -3462,7 +3462,7 @@
   case 56:
 
 /* Line 690 of lalr1.cc  */
-#line 1370 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1370 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, true);
     }
@@ -3471,7 +3471,7 @@
   case 57:
 
 /* Line 690 of lalr1.cc  */
-#line 1375 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1375 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CopyNamespacesDecl(LOC((yyloc)), false, false);
     }
@@ -3480,7 +3480,7 @@
   case 60:
 
 /* Line 690 of lalr1.cc  */
-#line 1388 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1388 "/home/markos/zorba/repo/hof-merge/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\".");
@@ -3491,7 +3491,7 @@
   case 61:
 
 /* Line 690 of lalr1.cc  */
-#line 1398 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1398 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport( LOC((yyloc)), NULL, SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL );
     }
@@ -3500,7 +3500,7 @@
   case 62:
 
 /* Line 690 of lalr1.cc  */
-#line 1403 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1403 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(4) - (3)].node)),
@@ -3512,7 +3512,7 @@
   case 63:
 
 /* Line 690 of lalr1.cc  */
-#line 1411 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1411 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             NULL,
@@ -3524,7 +3524,7 @@
   case 64:
 
 /* Line 690 of lalr1.cc  */
-#line 1419 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1419 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaImport(LOC((yyloc)),
                             dynamic_cast<SchemaPrefix*>((yysemantic_stack_[(6) - (3)].node)),
@@ -3536,7 +3536,7 @@
   case 65:
 
 /* Line 690 of lalr1.cc  */
-#line 1430 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1430 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       URILiteralList *ull = new URILiteralList( LOC((yyloc)));
       ull->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -3547,7 +3547,7 @@
   case 66:
 
 /* Line 690 of lalr1.cc  */
-#line 1437 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1437 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -3559,7 +3559,7 @@
   case 67:
 
 /* Line 690 of lalr1.cc  */
-#line 1448 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1448 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
@@ -3568,7 +3568,7 @@
   case 68:
 
 /* Line 690 of lalr1.cc  */
-#line 1453 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1453 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SchemaPrefix( LOC((yyloc)), true );
     }
@@ -3577,7 +3577,7 @@
   case 69:
 
 /* Line 690 of lalr1.cc  */
-#line 1461 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1461 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (3)].sval)), NULL);
 
@@ -3588,7 +3588,7 @@
   case 70:
 
 /* Line 690 of lalr1.cc  */
-#line 1468 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1468 "/home/markos/zorba/repo/hof-merge/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);
 
@@ -3599,7 +3599,7 @@
   case 71:
 
 /* Line 690 of lalr1.cc  */
-#line 1475 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1475 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(5) - (3)].sval)),
@@ -3612,7 +3612,7 @@
   case 72:
 
 /* Line 690 of lalr1.cc  */
-#line 1484 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1484 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ModuleImport(LOC((yyloc)),
                             SYMTAB((yysemantic_stack_[(8) - (4)].sval)),
@@ -3626,7 +3626,7 @@
   case 73:
 
 /* Line 690 of lalr1.cc  */
-#line 1497 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1497 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new NamespaceDecl( LOC((yyloc)), SYMTAB((yysemantic_stack_[(5) - (3)].sval)), SYMTAB((yysemantic_stack_[(5) - (5)].sval)) );
     }
@@ -3635,7 +3635,7 @@
   case 74:
 
 /* Line 690 of lalr1.cc  */
-#line 1505 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1505 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_element_default,
@@ -3646,7 +3646,7 @@
   case 75:
 
 /* Line 690 of lalr1.cc  */
-#line 1512 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1512 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DefaultNamespaceDecl(LOC((yyloc)),
                                     ParseConstants::ns_function_default,
@@ -3657,7 +3657,7 @@
   case 76:
 
 /* Line 690 of lalr1.cc  */
-#line 1522 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1522 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       VFO_DeclList *vdl = new VFO_DeclList( LOC((yyloc)));
       vdl->push_back( (yysemantic_stack_[(1) - (1)].node) );
@@ -3668,7 +3668,7 @@
   case 77:
 
 /* Line 690 of lalr1.cc  */
-#line 1529 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1529 "/home/markos/zorba/repo/hof-merge/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);
@@ -3678,7 +3678,7 @@
   case 78:
 
 /* Line 690 of lalr1.cc  */
-#line 1536 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1536 "/home/markos/zorba/repo/hof-merge/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();
@@ -3690,7 +3690,7 @@
   case 87:
 
 /* Line 690 of lalr1.cc  */
-#line 1559 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1559 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DecimalFormatNode(LOC((yyloc)), (yysemantic_stack_[(4) - (4)].vstrpair));
       delete (yysemantic_stack_[(4) - (4)].vstrpair);
@@ -3700,7 +3700,7 @@
   case 88:
 
 /* Line 690 of lalr1.cc  */
-#line 1565 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1565 "/home/markos/zorba/repo/hof-merge/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);
@@ -3710,7 +3710,7 @@
   case 89:
 
 /* Line 690 of lalr1.cc  */
-#line 1574 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1574 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.vstrpair) = new vector<string_pair_t>();
       (yyval.vstrpair)->push_back( *(yysemantic_stack_[(1) - (1)].strpair) );
@@ -3721,7 +3721,7 @@
   case 90:
 
 /* Line 690 of lalr1.cc  */
-#line 1581 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1581 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yysemantic_stack_[(2) - (1)].vstrpair)->push_back( *(yysemantic_stack_[(2) - (2)].strpair) );
       delete (yysemantic_stack_[(2) - (2)].strpair);
@@ -3732,7 +3732,7 @@
   case 91:
 
 /* Line 690 of lalr1.cc  */
-#line 1591 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1591 "/home/markos/zorba/repo/hof-merge/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() );
@@ -3743,77 +3743,77 @@
   case 92:
 
 /* Line 690 of lalr1.cc  */
-#line 1600 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1600 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "decimal-separator"; }
     break;
 
   case 93:
 
 /* Line 690 of lalr1.cc  */
-#line 1601 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1601 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "digit"; }
     break;
 
   case 94:
 
 /* Line 690 of lalr1.cc  */
-#line 1602 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1602 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "grouping-separator"; }
     break;
 
   case 95:
 
 /* Line 690 of lalr1.cc  */
-#line 1603 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1603 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "infinty"; }
     break;
 
   case 96:
 
 /* Line 690 of lalr1.cc  */
-#line 1604 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1604 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "minus-sign"; }
     break;
 
   case 97:
 
 /* Line 690 of lalr1.cc  */
-#line 1605 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1605 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "NaN"; }
     break;
 
   case 98:
 
 /* Line 690 of lalr1.cc  */
-#line 1606 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1606 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "pattern-separator"; }
     break;
 
   case 99:
 
 /* Line 690 of lalr1.cc  */
-#line 1607 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1607 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "percent"; }
     break;
 
   case 100:
 
 /* Line 690 of lalr1.cc  */
-#line 1608 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1608 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "per-mille"; }
     break;
 
   case 101:
 
 /* Line 690 of lalr1.cc  */
-#line 1609 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1609 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.strval) = "zero-digit"; }
     break;
 
   case 102:
 
 /* Line 690 of lalr1.cc  */
-#line 1615 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1615 "/home/markos/zorba/repo/hof-merge/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)));
     }
@@ -3822,7 +3822,7 @@
   case 103:
 
 /* Line 690 of lalr1.cc  */
-#line 1623 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1623 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FTOptionDecl( LOC((yyloc)), dynamic_cast<FTMatchOptions*>((yysemantic_stack_[(3) - (3)].node)) );
     }
@@ -3831,7 +3831,7 @@
   case 104:
 
 /* Line 690 of lalr1.cc  */
-#line 1631 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1631 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(4) - (4)].node);
     }
@@ -3840,7 +3840,7 @@
   case 105:
 
 /* Line 690 of lalr1.cc  */
-#line 1639 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1639 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(3) - (3)].node));
       d->theType = (yysemantic_stack_[(3) - (2)].node);
@@ -3851,7 +3851,7 @@
   case 106:
 
 /* Line 690 of lalr1.cc  */
-#line 1646 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1646 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -3860,7 +3860,7 @@
   case 107:
 
 /* Line 690 of lalr1.cc  */
-#line 1654 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1654 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CtxItemDecl* d = dynamic_cast<CtxItemDecl*>((yysemantic_stack_[(1) - (1)].node));
       d->theIsExternal = false;
@@ -3871,7 +3871,7 @@
   case 108:
 
 /* Line 690 of lalr1.cc  */
-#line 1661 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1661 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), NULL);
     }
@@ -3880,7 +3880,7 @@
   case 109:
 
 /* Line 690 of lalr1.cc  */
-#line 1666 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1666 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
     }
@@ -3889,7 +3889,7 @@
   case 110:
 
 /* Line 690 of lalr1.cc  */
-#line 1674 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1674 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CtxItemDecl(LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
@@ -3898,7 +3898,7 @@
   case 111:
 
 /* Line 690 of lalr1.cc  */
-#line 1682 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1682 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(4) - (2)].varnametype)));
 
@@ -3916,7 +3916,7 @@
   case 112:
 
 /* Line 690 of lalr1.cc  */
-#line 1696 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1696 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(3) - (2)].varnametype)));
 
@@ -3934,7 +3934,7 @@
   case 113:
 
 /* Line 690 of lalr1.cc  */
-#line 1710 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1710 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       std::auto_ptr<VarNameAndType> nt(dynamic_cast<VarNameAndType *>((yysemantic_stack_[(5) - (2)].varnametype)));
 
@@ -3952,7 +3952,7 @@
   case 114:
 
 /* Line 690 of lalr1.cc  */
-#line 1727 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1727 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL, NULL);
     }
@@ -3961,7 +3961,7 @@
   case 115:
 
 /* Line 690 of lalr1.cc  */
-#line 1732 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1732 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)),
@@ -3973,7 +3973,7 @@
   case 116:
 
 /* Line 690 of lalr1.cc  */
-#line 1740 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1740 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -3985,7 +3985,7 @@
   case 117:
 
 /* Line 690 of lalr1.cc  */
-#line 1748 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1748 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.varnametype) = new VarNameAndType(LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (4)].expr)),
@@ -3997,7 +3997,7 @@
   case 118:
 
 /* Line 690 of lalr1.cc  */
-#line 1759 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1759 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationListParsenode(LOC((yyloc)), static_cast<AnnotationParsenode*>((yysemantic_stack_[(1) - (1)].node)));
     }
@@ -4006,7 +4006,7 @@
   case 119:
 
 /* Line 690 of lalr1.cc  */
-#line 1764 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1764 "/home/markos/zorba/repo/hof-merge/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);
@@ -4016,7 +4016,7 @@
   case 120:
 
 /* Line 690 of lalr1.cc  */
-#line 1773 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1773 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))), NULL);
     }
@@ -4025,7 +4025,7 @@
   case 121:
 
 /* Line 690 of lalr1.cc  */
-#line 1778 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1778 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval))),
@@ -4036,7 +4036,7 @@
   case 122:
 
 /* Line 690 of lalr1.cc  */
-#line 1785 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1785 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), true), NULL);
     }
@@ -4045,7 +4045,7 @@
   case 123:
 
 /* Line 690 of lalr1.cc  */
-#line 1790 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1790 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationParsenode(LOC((yyloc)),
                                    new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (1)].sval)), true),
@@ -4056,7 +4056,7 @@
   case 124:
 
 /* Line 690 of lalr1.cc  */
-#line 1800 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1800 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnnotationLiteralListParsenode(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr));
     }
@@ -4065,7 +4065,7 @@
   case 125:
 
 /* Line 690 of lalr1.cc  */
-#line 1805 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1805 "/home/markos/zorba/repo/hof-merge/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);
@@ -4075,7 +4075,7 @@
   case 126:
 
 /* Line 690 of lalr1.cc  */
-#line 1814 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1814 "/home/markos/zorba/repo/hof-merge/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);
@@ -4085,7 +4085,7 @@
   case 127:
 
 /* Line 690 of lalr1.cc  */
-#line 1820 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1820 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       FunctionDecl* fdecl = static_cast<FunctionDecl*>((yysemantic_stack_[(3) - (3)].node));
 
@@ -4099,7 +4099,7 @@
   case 128:
 
 /* Line 690 of lalr1.cc  */
-#line 1833 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1833 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -4108,7 +4108,7 @@
   case 129:
 
 /* Line 690 of lalr1.cc  */
-#line 1838 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1838 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -4117,7 +4117,7 @@
   case 130:
 
 /* Line 690 of lalr1.cc  */
-#line 1846 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1846 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4133,7 +4133,7 @@
   case 131:
 
 /* Line 690 of lalr1.cc  */
-#line 1857 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1857 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4149,7 +4149,7 @@
   case 132:
 
 /* Line 690 of lalr1.cc  */
-#line 1872 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1872 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC ((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4165,7 +4165,7 @@
   case 133:
 
 /* Line 690 of lalr1.cc  */
-#line 1884 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1884 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FunctionDecl(LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4181,7 +4181,7 @@
   case 134:
 
 /* Line 690 of lalr1.cc  */
-#line 1899 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1899 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL);
     }
@@ -4190,7 +4190,7 @@
   case 135:
 
 /* Line 690 of lalr1.cc  */
-#line 1904 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1904 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(dynamic_cast<ParamList*>((yysemantic_stack_[(3) - (2)].node)));
     }
@@ -4199,7 +4199,7 @@
   case 136:
 
 /* Line 690 of lalr1.cc  */
-#line 1909 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1909 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.fnsig) = new FunctionSig(NULL, dynamic_cast<SequenceType*>((yysemantic_stack_[(4) - (4)].node)));
     }
@@ -4208,7 +4208,7 @@
   case 137:
 
 /* Line 690 of lalr1.cc  */
-#line 1914 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1914 "/home/markos/zorba/repo/hof-merge/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)));
     }
@@ -4217,7 +4217,7 @@
   case 138:
 
 /* Line 690 of lalr1.cc  */
-#line 1922 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1922 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       ParamList *pl = new ParamList( LOC((yyloc)) );
       pl->push_back( dynamic_cast<Param*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -4228,7 +4228,7 @@
   case 139:
 
 /* Line 690 of lalr1.cc  */
-#line 1929 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1929 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -4240,7 +4240,7 @@
   case 140:
 
 /* Line 690 of lalr1.cc  */
-#line 1940 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1940 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL);
     }
@@ -4249,7 +4249,7 @@
   case 141:
 
 /* Line 690 of lalr1.cc  */
-#line 1945 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1945 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Param(LOC((yyloc)),
                      static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4260,7 +4260,7 @@
   case 142:
 
 /* Line 690 of lalr1.cc  */
-#line 1955 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1955 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)),
@@ -4274,7 +4274,7 @@
   case 143:
 
 /* Line 690 of lalr1.cc  */
-#line 1964 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1964 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                               static_cast<QName*>((yysemantic_stack_[(5) - (3)].expr)),
@@ -4288,7 +4288,7 @@
   case 144:
 
 /* Line 690 of lalr1.cc  */
-#line 1973 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1973 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(4) - (4)].expr)),
@@ -4302,7 +4302,7 @@
   case 145:
 
 /* Line 690 of lalr1.cc  */
-#line 1982 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1982 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CollectionDecl( LOC((yyloc)),
                                static_cast<QName*>((yysemantic_stack_[(6) - (4)].expr)),
@@ -4316,7 +4316,7 @@
   case 146:
 
 /* Line 690 of lalr1.cc  */
-#line 1994 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1994 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -4325,7 +4325,7 @@
   case 147:
 
 /* Line 690 of lalr1.cc  */
-#line 1998 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 1998 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4336,7 +4336,7 @@
   case 148:
 
 /* Line 690 of lalr1.cc  */
-#line 2004 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2004 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL));
     }
@@ -4345,7 +4345,7 @@
   case 149:
 
 /* Line 690 of lalr1.cc  */
-#line 2008 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2008 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = static_cast<parsenode*>(new SequenceType(LOC((yyloc)),
                                                     (yysemantic_stack_[(2) - (1)].node),
@@ -4357,7 +4357,7 @@
   case 150:
 
 /* Line 690 of lalr1.cc  */
-#line 2018 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2018 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(8) - (3)].expr)),
@@ -4372,7 +4372,7 @@
   case 151:
 
 /* Line 690 of lalr1.cc  */
-#line 2028 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2028 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AST_IndexDecl(LOC((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(9) - (4)].expr)),
@@ -4387,7 +4387,7 @@
   case 152:
 
 /* Line 690 of lalr1.cc  */
-#line 2041 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2041 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       IndexKeyList* keyList = new IndexKeyList(LOC((yyloc)));
       keyList->addKeySpec(dynamic_cast<IndexKeySpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -4398,7 +4398,7 @@
   case 153:
 
 /* Line 690 of lalr1.cc  */
-#line 2047 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2047 "/home/markos/zorba/repo/hof-merge/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);
@@ -4408,7 +4408,7 @@
   case 154:
 
 /* Line 690 of lalr1.cc  */
-#line 2056 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2056 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL, NULL);
     }
@@ -4417,7 +4417,7 @@
   case 155:
 
 /* Line 690 of lalr1.cc  */
-#line 2061 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2061 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4429,7 +4429,7 @@
   case 156:
 
 /* Line 690 of lalr1.cc  */
-#line 2068 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2068 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(2) - (1)].expr),
@@ -4441,7 +4441,7 @@
   case 157:
 
 /* Line 690 of lalr1.cc  */
-#line 2075 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2075 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new IndexKeySpec(LOC((yyloc)),
                             (yysemantic_stack_[(3) - (1)].expr),
@@ -4453,7 +4453,7 @@
   case 158:
 
 /* Line 690 of lalr1.cc  */
-#line 2087 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2087 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollSimpleCheck(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(11) - (4)].expr)),
@@ -4466,7 +4466,7 @@
   case 159:
 
 /* Line 690 of lalr1.cc  */
-#line 2097 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2097 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollUniqueKeyCheck(LOC((yyloc)),
                                     static_cast<QName*>((yysemantic_stack_[(14) - (4)].expr)),
@@ -4479,7 +4479,7 @@
   case 160:
 
 /* Line 690 of lalr1.cc  */
-#line 2107 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2107 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICCollForeachNode(LOC((yyloc)),
                                  static_cast<QName*>((yysemantic_stack_[(13) - (4)].expr)),
@@ -4492,7 +4492,7 @@
   case 161:
 
 /* Line 690 of lalr1.cc  */
-#line 2118 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2118 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ICForeignKey( LOC((yyloc)),
                             static_cast<QName*>((yysemantic_stack_[(22) - (4)].expr)),
@@ -4508,7 +4508,7 @@
   case 162:
 
 /* Line 690 of lalr1.cc  */
-#line 2134 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2134 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       if ((yysemantic_stack_[(1) - (1)].expr) == NULL)
       {
@@ -4529,7 +4529,7 @@
   case 163:
 
 /* Line 690 of lalr1.cc  */
-#line 2154 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2154 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4538,7 +4538,7 @@
   case 164:
 
 /* Line 690 of lalr1.cc  */
-#line 2158 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2158 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4547,7 +4547,7 @@
   case 165:
 
 /* Line 690 of lalr1.cc  */
-#line 2162 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2162 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) =  NULL;
     }
@@ -4556,7 +4556,7 @@
   case 166:
 
 /* Line 690 of lalr1.cc  */
-#line 2170 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2170 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4565,7 +4565,7 @@
   case 167:
 
 /* Line 690 of lalr1.cc  */
-#line 2174 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2174 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4574,7 +4574,7 @@
   case 168:
 
 /* Line 690 of lalr1.cc  */
-#line 2178 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2178 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) =  new BlockBody(LOC((yyloc)));
     }
@@ -4583,7 +4583,7 @@
   case 169:
 
 /* Line 690 of lalr1.cc  */
-#line 2186 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2186 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4592,7 +4592,7 @@
   case 170:
 
 /* Line 690 of lalr1.cc  */
-#line 2191 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2191 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4605,7 +4605,7 @@
   case 171:
 
 /* Line 690 of lalr1.cc  */
-#line 2203 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2203 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = new BlockBody(LOC((yyloc)));
       blk->add((yysemantic_stack_[(1) - (1)].expr));
@@ -4616,7 +4616,7 @@
   case 172:
 
 /* Line 690 of lalr1.cc  */
-#line 2210 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2210 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* blk = static_cast<BlockBody*>((yysemantic_stack_[(2) - (1)].expr));
 
@@ -4629,7 +4629,7 @@
   case 173:
 
 /* Line 690 of lalr1.cc  */
-#line 2220 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2220 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(4) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(4) - (2)].expr); // to prevent the Bison warning
@@ -4645,7 +4645,7 @@
   case 186:
 
 /* Line 690 of lalr1.cc  */
-#line 2252 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2252 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -4654,7 +4654,7 @@
   case 187:
 
 /* Line 690 of lalr1.cc  */
-#line 2257 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2257 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new BlockBody(LOC((yyloc)));
     }
@@ -4663,7 +4663,7 @@
   case 188:
 
 /* Line 690 of lalr1.cc  */
-#line 2265 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2265 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       if (dynamic_cast<BlockBody*>((yysemantic_stack_[(3) - (2)].expr)) == NULL)
       {
@@ -4681,7 +4681,7 @@
   case 189:
 
 /* Line 690 of lalr1.cc  */
-#line 2282 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2282 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
     }
@@ -4690,7 +4690,7 @@
   case 190:
 
 /* Line 690 of lalr1.cc  */
-#line 2290 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2290 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(2) - (1)].expr);
     }
@@ -4699,7 +4699,7 @@
   case 191:
 
 /* Line 690 of lalr1.cc  */
-#line 2298 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2298 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = static_cast<VarDeclStmt*>((yysemantic_stack_[(3) - (1)].expr));
       vdecl->add((yysemantic_stack_[(3) - (3)].node));
@@ -4710,7 +4710,7 @@
   case 192:
 
 /* Line 690 of lalr1.cc  */
-#line 2305 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2305 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)), NULL);
       vdecl->add((yysemantic_stack_[(2) - (2)].node));
@@ -4721,7 +4721,7 @@
   case 193:
 
 /* Line 690 of lalr1.cc  */
-#line 2312 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2312 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       VarDeclStmt* vdecl = new VarDeclStmt(LOC((yyloc)),
                                            static_cast<AnnotationListParsenode*>((yysemantic_stack_[(3) - (1)].node)));
@@ -4733,7 +4733,7 @@
   case 194:
 
 /* Line 690 of lalr1.cc  */
-#line 2323 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2323 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)),
@@ -4747,7 +4747,7 @@
   case 195:
 
 /* Line 690 of lalr1.cc  */
-#line 2332 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2332 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -4761,7 +4761,7 @@
   case 196:
 
 /* Line 690 of lalr1.cc  */
-#line 2341 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2341 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -4775,7 +4775,7 @@
   case 197:
 
 /* Line 690 of lalr1.cc  */
-#line 2350 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2350 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       LocalVarDecl* vd = new LocalVarDecl(LOC((yyloc)),
                                           static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -4789,7 +4789,7 @@
   case 198:
 
 /* Line 690 of lalr1.cc  */
-#line 2363 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2363 "/home/markos/zorba/repo/hof-merge/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));
     }
@@ -4798,7 +4798,7 @@
   case 199:
 
 /* Line 690 of lalr1.cc  */
-#line 2371 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2371 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ApplyExpr(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].expr));
     }
@@ -4807,7 +4807,7 @@
   case 200:
 
 /* Line 690 of lalr1.cc  */
-#line 2379 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2379 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ExitExpr(LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr));
     }
@@ -4816,7 +4816,7 @@
   case 201:
 
 /* Line 690 of lalr1.cc  */
-#line 2387 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2387 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       BlockBody* bb = dynamic_cast<BlockBody *>((yysemantic_stack_[(5) - (5)].expr));
       if (bb == NULL)
@@ -4832,7 +4832,7 @@
   case 202:
 
 /* Line 690 of lalr1.cc  */
-#line 2402 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2402 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement(LOC((yyloc)), FlowCtlStatement::BREAK);
     }
@@ -4841,7 +4841,7 @@
   case 203:
 
 /* Line 690 of lalr1.cc  */
-#line 2407 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2407 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new FlowCtlStatement( LOC((yyloc)), FlowCtlStatement::CONTINUE );
     }
@@ -4850,7 +4850,7 @@
   case 204:
 
 /* Line 690 of lalr1.cc  */
-#line 2415 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2415 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       ReturnExpr* re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -4865,7 +4865,7 @@
   case 205:
 
 /* Line 690 of lalr1.cc  */
-#line 2429 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2429 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       exprnode* retExpr = (yysemantic_stack_[(2) - (2)].expr);
 
@@ -4883,7 +4883,7 @@
   case 206:
 
 /* Line 690 of lalr1.cc  */
-#line 2446 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2446 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       exprnode* thenExpr = (yysemantic_stack_[(8) - (6)].expr);
       exprnode* elseExpr = (yysemantic_stack_[(8) - (8)].expr);
@@ -4909,7 +4909,7 @@
   case 207:
 
 /* Line 690 of lalr1.cc  */
-#line 2471 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2471 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TryExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr), (yysemantic_stack_[(3) - (3)].expr));
     }
@@ -4918,7 +4918,7 @@
   case 208:
 
 /* Line 690 of lalr1.cc  */
-#line 2479 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2479 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CatchListExpr* cle = new CatchListExpr( LOC((yyloc)) );
       cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -4929,7 +4929,7 @@
   case 209:
 
 /* Line 690 of lalr1.cc  */
-#line 2486 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2486 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
       if ( cle )
@@ -4941,7 +4941,7 @@
   case 210:
 
 /* Line 690 of lalr1.cc  */
-#line 2497 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2497 "/home/markos/zorba/repo/hof-merge/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);
@@ -4951,7 +4951,7 @@
   case 211:
 
 /* Line 690 of lalr1.cc  */
-#line 2507 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2507 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -4960,7 +4960,7 @@
   case 212:
 
 /* Line 690 of lalr1.cc  */
-#line 2512 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2512 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       Expr* expr = dynamic_cast<Expr*>((yysemantic_stack_[(3) - (1)].expr));
       if ( !expr )
@@ -4976,7 +4976,7 @@
   case 213:
 
 /* Line 690 of lalr1.cc  */
-#line 2525 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2525 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(3) - (1)].expr); // to prevent the Bison warning
       (yyval.expr) = (yysemantic_stack_[(3) - (3)].expr); // to prevent the Bison warning
@@ -4994,7 +4994,7 @@
   case 232:
 
 /* Line 690 of lalr1.cc  */
-#line 2572 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2572 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       ReturnExpr *re = dynamic_cast<ReturnExpr*>((yysemantic_stack_[(2) - (2)].expr));
       (yyval.expr) = new FLWORExpr(LOC((yyloc)),
@@ -5009,7 +5009,7 @@
   case 233:
 
 /* Line 690 of lalr1.cc  */
-#line 2586 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2586 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new ReturnExpr( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].expr) );
     }
@@ -5018,7 +5018,7 @@
   case 234:
 
 /* Line 690 of lalr1.cc  */
-#line 2594 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2594 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_sliding;
     }
@@ -5027,7 +5027,7 @@
   case 235:
 
 /* Line 690 of lalr1.cc  */
-#line 2599 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2599 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_tumbling;
     }
@@ -5036,7 +5036,7 @@
   case 236:
 
 /* Line 690 of lalr1.cc  */
-#line 2607 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2607 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_start;
     }
@@ -5045,7 +5045,7 @@
   case 237:
 
 /* Line 690 of lalr1.cc  */
-#line 2612 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2612 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.strval) = parser::the_end;
     }
@@ -5054,7 +5054,7 @@
   case 238:
 
 /* Line 690 of lalr1.cc  */
-#line 2617 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2617 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
     (yyval.strval) = parser::the_only_end;
   }
@@ -5063,7 +5063,7 @@
   case 239:
 
 /* Line 690 of lalr1.cc  */
-#line 2625 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2625 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             dynamic_cast<WindowVars*>((yysemantic_stack_[(4) - (2)].node)),
@@ -5076,7 +5076,7 @@
   case 240:
 
 /* Line 690 of lalr1.cc  */
-#line 2634 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2634 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FLWORWinCond(LOC((yyloc)),
                             NULL,
@@ -5089,7 +5089,7 @@
   case 241:
 
 /* Line 690 of lalr1.cc  */
-#line 2646 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2646 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(5) - (2)].strval) == parser::the_tumbling ?
@@ -5104,7 +5104,7 @@
   case 242:
 
 /* Line 690 of lalr1.cc  */
-#line 2656 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2656 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowClause (LOC ((yyloc)),
                              ((yysemantic_stack_[(4) - (2)].strval) == parser::the_tumbling ?
@@ -5118,7 +5118,7 @@
   case 243:
 
 /* Line 690 of lalr1.cc  */
-#line 2669 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2669 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CountClause(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5127,7 +5127,7 @@
   case 252:
 
 /* Line 690 of lalr1.cc  */
-#line 2693 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2693 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       FLWORClauseList *fcl = new FLWORClauseList( LOC((yyloc)) );
       fcl->push_back( dynamic_cast<FLWORClause*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5138,7 +5138,7 @@
   case 253:
 
 /* Line 690 of lalr1.cc  */
-#line 2700 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2700 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -5149,7 +5149,7 @@
   case 254:
 
 /* Line 690 of lalr1.cc  */
-#line 2710 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2710 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new ForClause(LOC((yyloc)), dynamic_cast<VarInDeclList*>((yysemantic_stack_[(3) - (3)].node)));
     }
@@ -5158,7 +5158,7 @@
   case 255:
 
 /* Line 690 of lalr1.cc  */
-#line 2716 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2716 "/home/markos/zorba/repo/hof-merge/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 qualified name \""
@@ -5171,7 +5171,7 @@
   case 256:
 
 /* Line 690 of lalr1.cc  */
-#line 2725 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2725 "/home/markos/zorba/repo/hof-merge/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
@@ -5182,7 +5182,7 @@
   case 257:
 
 /* Line 690 of lalr1.cc  */
-#line 2735 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2735 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       VarInDeclList* vdl = new VarInDeclList( LOC((yyloc)) );
       vdl->push_back( dynamic_cast<VarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5193,7 +5193,7 @@
   case 258:
 
 /* Line 690 of lalr1.cc  */
-#line 2742 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2742 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -5204,7 +5204,7 @@
   case 259:
 
 /* Line 690 of lalr1.cc  */
-#line 2750 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2750 "/home/markos/zorba/repo/hof-merge/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 \""
@@ -5217,7 +5217,7 @@
   case 260:
 
 /* Line 690 of lalr1.cc  */
-#line 2762 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2762 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)),
@@ -5232,7 +5232,7 @@
   case 261:
 
 /* Line 690 of lalr1.cc  */
-#line 2772 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2772 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5247,7 +5247,7 @@
   case 262:
 
 /* Line 690 of lalr1.cc  */
-#line 2782 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2782 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5262,7 +5262,7 @@
   case 263:
 
 /* Line 690 of lalr1.cc  */
-#line 2792 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2792 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5277,7 +5277,7 @@
   case 264:
 
 /* Line 690 of lalr1.cc  */
-#line 2802 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2802 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5292,7 +5292,7 @@
   case 265:
 
 /* Line 690 of lalr1.cc  */
-#line 2812 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2812 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5307,7 +5307,7 @@
   case 266:
 
 /* Line 690 of lalr1.cc  */
-#line 2822 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2822 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5322,7 +5322,7 @@
   case 267:
 
 /* Line 690 of lalr1.cc  */
-#line 2832 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2832 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(7) - (1)].expr)),
@@ -5337,7 +5337,7 @@
   case 268:
 
 /* Line 690 of lalr1.cc  */
-#line 2843 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2843 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5351,7 +5351,7 @@
   case 269:
 
 /* Line 690 of lalr1.cc  */
-#line 2852 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2852 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5366,7 +5366,7 @@
   case 270:
 
 /* Line 690 of lalr1.cc  */
-#line 2862 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2862 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (1)].expr)),
@@ -5381,7 +5381,7 @@
   case 271:
 
 /* Line 690 of lalr1.cc  */
-#line 2872 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2872 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarInDecl(LOC ((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (1)].expr)),
@@ -5396,7 +5396,7 @@
   case 272:
 
 /* Line 690 of lalr1.cc  */
-#line 2888 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2888 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new PositionalVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5405,7 +5405,7 @@
   case 273:
 
 /* Line 690 of lalr1.cc  */
-#line 2897 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2897 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new FTScoreVar(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5414,7 +5414,7 @@
   case 274:
 
 /* Line 690 of lalr1.cc  */
-#line 2906 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2906 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new LetClause( LOC((yyloc)), dynamic_cast<VarGetsDeclList*>((yysemantic_stack_[(2) - (2)].node)) );
         }
@@ -5423,7 +5423,7 @@
   case 275:
 
 /* Line 690 of lalr1.cc  */
-#line 2914 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2914 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             VarGetsDeclList *vgdl = new VarGetsDeclList( LOC((yyloc)) );
             vgdl->push_back( dynamic_cast<VarGetsDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5434,7 +5434,7 @@
   case 276:
 
 /* Line 690 of lalr1.cc  */
-#line 2920 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2920 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -5445,7 +5445,7 @@
   case 277:
 
 /* Line 690 of lalr1.cc  */
-#line 2932 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2932 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5458,7 +5458,7 @@
   case 278:
 
 /* Line 690 of lalr1.cc  */
-#line 2940 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2940 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5471,7 +5471,7 @@
   case 279:
 
 /* Line 690 of lalr1.cc  */
-#line 2950 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2950 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            dynamic_cast<FTScoreVar*>((yysemantic_stack_[(3) - (1)].node))->get_var_name(),
@@ -5484,7 +5484,7 @@
   case 280:
 
 /* Line 690 of lalr1.cc  */
-#line 2958 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2958 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new VarGetsDecl(LOC ((yyloc)),
                            static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5497,7 +5497,7 @@
   case 281:
 
 /* Line 690 of lalr1.cc  */
-#line 2970 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2970 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -5508,7 +5508,7 @@
   case 282:
 
 /* Line 690 of lalr1.cc  */
-#line 2976 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2976 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVarDecl(LOC ((yyloc)),
                              static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5520,7 +5520,7 @@
   case 284:
 
 /* Line 690 of lalr1.cc  */
-#line 2989 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2989 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL);
     }
@@ -5529,7 +5529,7 @@
   case 285:
 
 /* Line 690 of lalr1.cc  */
-#line 2993 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 2993 "/home/markos/zorba/repo/hof-merge/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)));
@@ -5539,7 +5539,7 @@
   case 286:
 
 /* Line 690 of lalr1.cc  */
-#line 3001 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3001 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), dynamic_cast<PositionalVar*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL, NULL);
     }
@@ -5548,7 +5548,7 @@
   case 287:
 
 /* Line 690 of lalr1.cc  */
-#line 3005 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3005 "/home/markos/zorba/repo/hof-merge/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)));
@@ -5558,7 +5558,7 @@
   case 289:
 
 /* Line 690 of lalr1.cc  */
-#line 3014 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3014 "/home/markos/zorba/repo/hof-merge/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)));
     }
@@ -5567,7 +5567,7 @@
   case 290:
 
 /* Line 690 of lalr1.cc  */
-#line 3018 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3018 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)));
     }
@@ -5576,7 +5576,7 @@
   case 291:
 
 /* Line 690 of lalr1.cc  */
-#line 3022 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3022 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WindowVars(LOC((yyloc)), NULL, NULL, static_cast<QName*>((yysemantic_stack_[(3) - (3)].expr)), NULL);
     }
@@ -5585,7 +5585,7 @@
   case 292:
 
 /* Line 690 of lalr1.cc  */
-#line 3032 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3032 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new WhereClause(LOC ((yyloc)), (yysemantic_stack_[(2) - (2)].expr));
     }
@@ -5594,7 +5594,7 @@
   case 293:
 
 /* Line 690 of lalr1.cc  */
-#line 3040 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3040 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupByClause(LOC((yyloc)), dynamic_cast<GroupSpecList*>((yysemantic_stack_[(3) - (3)].node)));
     }
@@ -5603,7 +5603,7 @@
   case 294:
 
 /* Line 690 of lalr1.cc  */
-#line 3047 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3047 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       GroupSpecList* gsl = new GroupSpecList(LOC((yyloc)));
       gsl->push_back(static_cast<GroupSpec*>((yysemantic_stack_[(1) - (1)].node)));
@@ -5614,7 +5614,7 @@
   case 295:
 
 /* Line 690 of lalr1.cc  */
-#line 3053 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3053 "/home/markos/zorba/repo/hof-merge/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)));
@@ -5625,7 +5625,7 @@
   case 296:
 
 /* Line 690 of lalr1.cc  */
-#line 3063 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3063 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)), NULL, NULL, NULL);
     }
@@ -5634,7 +5634,7 @@
   case 297:
 
 /* Line 690 of lalr1.cc  */
-#line 3067 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3067 "/home/markos/zorba/repo/hof-merge/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);
     }
@@ -5643,7 +5643,7 @@
   case 298:
 
 /* Line 690 of lalr1.cc  */
-#line 3071 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3071 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5656,7 +5656,7 @@
   case 299:
 
 /* Line 690 of lalr1.cc  */
-#line 3079 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3079 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -5669,7 +5669,7 @@
   case 300:
 
 /* Line 690 of lalr1.cc  */
-#line 3087 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3087 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -5682,7 +5682,7 @@
   case 301:
 
 /* Line 690 of lalr1.cc  */
-#line 3095 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3095 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupSpec(LOC((yyloc)),
                          static_cast<QName*>((yysemantic_stack_[(3) - (2)].expr)),
@@ -5695,7 +5695,7 @@
   case 302:
 
 /* Line 690 of lalr1.cc  */
-#line 3107 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3107 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new GroupCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
@@ -5704,7 +5704,7 @@
   case 303:
 
 /* Line 690 of lalr1.cc  */
-#line 3115 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3115 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(3) - (3)].node))
@@ -5715,7 +5715,7 @@
   case 304:
 
 /* Line 690 of lalr1.cc  */
-#line 3121 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3121 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderByClause(
                 LOC((yyloc)), dynamic_cast<OrderSpecList*>((yysemantic_stack_[(4) - (4)].node)), true
@@ -5726,7 +5726,7 @@
   case 305:
 
 /* Line 690 of lalr1.cc  */
-#line 3131 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3131 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             OrderSpecList *osl = new OrderSpecList( LOC((yyloc)) );
             osl->push_back( dynamic_cast<OrderSpec*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5737,7 +5737,7 @@
   case 306:
 
 /* Line 690 of lalr1.cc  */
-#line 3137 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3137 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -5748,7 +5748,7 @@
   case 307:
 
 /* Line 690 of lalr1.cc  */
-#line 3147 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3147 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderSpec( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr), NULL );
         }
@@ -5757,7 +5757,7 @@
   case 308:
 
 /* Line 690 of lalr1.cc  */
-#line 3151 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3151 "/home/markos/zorba/repo/hof-merge/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))
@@ -5768,7 +5768,7 @@
   case 309:
 
 /* Line 690 of lalr1.cc  */
-#line 3161 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3161 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), dynamic_cast<OrderDirSpec*>((yysemantic_stack_[(1) - (1)].node)), NULL, NULL
@@ -5779,7 +5779,7 @@
   case 310:
 
 /* Line 690 of lalr1.cc  */
-#line 3167 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3167 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, dynamic_cast<OrderEmptySpec*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -5790,7 +5790,7 @@
   case 311:
 
 /* Line 690 of lalr1.cc  */
-#line 3173 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3173 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)), NULL, NULL, dynamic_cast<OrderCollationSpec*>((yysemantic_stack_[(1) - (1)].node))
@@ -5801,7 +5801,7 @@
   case 312:
 
 /* Line 690 of lalr1.cc  */
-#line 3179 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3179 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5815,7 +5815,7 @@
   case 313:
 
 /* Line 690 of lalr1.cc  */
-#line 3188 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3188 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5829,7 +5829,7 @@
   case 314:
 
 /* Line 690 of lalr1.cc  */
-#line 3197 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3197 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5843,7 +5843,7 @@
   case 315:
 
 /* Line 690 of lalr1.cc  */
-#line 3206 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3206 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderModifierPN(
                 LOC((yyloc)),
@@ -5857,7 +5857,7 @@
   case 316:
 
 /* Line 690 of lalr1.cc  */
-#line 3219 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3219 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_ascending );
         }
@@ -5866,7 +5866,7 @@
   case 317:
 
 /* Line 690 of lalr1.cc  */
-#line 3223 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3223 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderDirSpec( LOC((yyloc)), ParseConstants::dir_descending );
         }
@@ -5875,7 +5875,7 @@
   case 318:
 
 /* Line 690 of lalr1.cc  */
-#line 3231 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3231 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_greatest
@@ -5886,7 +5886,7 @@
   case 319:
 
 /* Line 690 of lalr1.cc  */
-#line 3237 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3237 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderEmptySpec(
                 LOC((yyloc)), StaticContextConsts::empty_least
@@ -5897,7 +5897,7 @@
   case 320:
 
 /* Line 690 of lalr1.cc  */
-#line 3247 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3247 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new OrderCollationSpec( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
@@ -5906,7 +5906,7 @@
   case 321:
 
 /* Line 690 of lalr1.cc  */
-#line 3255 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3255 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5920,7 +5920,7 @@
   case 322:
 
 /* Line 690 of lalr1.cc  */
-#line 3264 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3264 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new QuantifiedExpr(
                 LOC((yyloc)),
@@ -5934,7 +5934,7 @@
   case 323:
 
 /* Line 690 of lalr1.cc  */
-#line 3277 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3277 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       QVarInDeclList *qvidl = new QVarInDeclList( LOC((yyloc)) );
       qvidl->push_back( dynamic_cast<QVarInDecl*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -5946,7 +5946,7 @@
   case 324:
 
 /* Line 690 of lalr1.cc  */
-#line 3284 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3284 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -5957,7 +5957,7 @@
   case 325:
 
 /* Line 690 of lalr1.cc  */
-#line 3296 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3296 "/home/markos/zorba/repo/hof-merge/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));
     }
@@ -5966,7 +5966,7 @@
   case 326:
 
 /* Line 690 of lalr1.cc  */
-#line 3300 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3300 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QVarInDecl(LOC((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
@@ -5978,7 +5978,7 @@
   case 327:
 
 /* Line 690 of lalr1.cc  */
-#line 3312 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3312 "/home/markos/zorba/repo/hof-merge/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));
     }
@@ -5987,7 +5987,7 @@
   case 328:
 
 /* Line 690 of lalr1.cc  */
-#line 3319 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3319 "/home/markos/zorba/repo/hof-merge/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)));
@@ -5998,7 +5998,7 @@
   case 329:
 
 /* Line 690 of lalr1.cc  */
-#line 3325 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3325 "/home/markos/zorba/repo/hof-merge/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)));
@@ -6009,7 +6009,7 @@
   case 330:
 
 /* Line 690 of lalr1.cc  */
-#line 3334 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3334 "/home/markos/zorba/repo/hof-merge/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));
     }
@@ -6018,7 +6018,7 @@
   case 331:
 
 /* Line 690 of lalr1.cc  */
-#line 3341 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3341 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       SwitchCaseOperandList* sco_list_p = new SwitchCaseOperandList(LOC((yyloc)));
       sco_list_p->push_back((yysemantic_stack_[(2) - (2)].expr));
@@ -6029,7 +6029,7 @@
   case 332:
 
 /* Line 690 of lalr1.cc  */
-#line 3347 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3347 "/home/markos/zorba/repo/hof-merge/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));
@@ -6040,7 +6040,7 @@
   case 333:
 
 /* Line 690 of lalr1.cc  */
-#line 3358 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3358 "/home/markos/zorba/repo/hof-merge/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));
     }
@@ -6049,7 +6049,7 @@
   case 334:
 
 /* Line 690 of lalr1.cc  */
-#line 3365 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3365 "/home/markos/zorba/repo/hof-merge/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)));
@@ -6060,7 +6060,7 @@
   case 335:
 
 /* Line 690 of lalr1.cc  */
-#line 3371 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3371 "/home/markos/zorba/repo/hof-merge/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)));
@@ -6071,7 +6071,7 @@
   case 336:
 
 /* Line 690 of lalr1.cc  */
-#line 3380 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3380 "/home/markos/zorba/repo/hof-merge/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));
     }
@@ -6080,7 +6080,7 @@
   case 337:
 
 /* Line 690 of lalr1.cc  */
-#line 3389 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3389 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -6092,7 +6092,7 @@
   case 338:
 
 /* Line 690 of lalr1.cc  */
-#line 3396 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3396 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -6105,7 +6105,7 @@
   case 339:
 
 /* Line 690 of lalr1.cc  */
-#line 3407 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3407 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC((yyloc)),
                               (yysemantic_stack_[(8) - (3)].expr),
@@ -6117,7 +6117,7 @@
   case 340:
 
 /* Line 690 of lalr1.cc  */
-#line 3414 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3414 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new TypeswitchExpr(LOC ((yyloc)),
                               (yysemantic_stack_[(10) - (3)].expr),
@@ -6130,7 +6130,7 @@
   case 341:
 
 /* Line 690 of lalr1.cc  */
-#line 3426 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3426 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
       cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6141,7 +6141,7 @@
   case 342:
 
 /* Line 690 of lalr1.cc  */
-#line 3432 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3432 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = dynamic_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -6152,7 +6152,7 @@
   case 343:
 
 /* Line 690 of lalr1.cc  */
-#line 3444 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3444 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
@@ -6163,7 +6163,7 @@
   case 344:
 
 /* Line 690 of lalr1.cc  */
-#line 3450 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3450 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -6175,7 +6175,7 @@
   case 345:
 
 /* Line 690 of lalr1.cc  */
-#line 3461 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3461 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = new CaseClauseList(LOC ((yyloc)));
       cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6186,7 +6186,7 @@
   case 346:
 
 /* Line 690 of lalr1.cc  */
-#line 3467 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3467 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CaseClauseList* cc_list_p = static_cast<CaseClauseList*>((yysemantic_stack_[(2) - (1)].node));
       cc_list_p->push_back(static_cast<CaseClause*>((yysemantic_stack_[(2) - (2)].node)));
@@ -6197,7 +6197,7 @@
   case 347:
 
 /* Line 690 of lalr1.cc  */
-#line 3478 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3478 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<SequenceTypeList*>((yysemantic_stack_[(4) - (2)].node)),
@@ -6208,7 +6208,7 @@
   case 348:
 
 /* Line 690 of lalr1.cc  */
-#line 3484 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3484 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new CaseClause(LOC ((yyloc)),
                           static_cast<QName*>((yysemantic_stack_[(7) - (3)].expr)),
@@ -6220,7 +6220,7 @@
   case 349:
 
 /* Line 690 of lalr1.cc  */
-#line 3495 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3495 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       SequenceTypeList* seqList = new SequenceTypeList(LOC((yyloc)));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(1) - (1)].node)));
@@ -6231,7 +6231,7 @@
   case 350:
 
 /* Line 690 of lalr1.cc  */
-#line 3501 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3501 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       SequenceTypeList* seqList = static_cast<SequenceTypeList*>((yysemantic_stack_[(3) - (1)].node));
       seqList->push_back(static_cast<SequenceType*>((yysemantic_stack_[(3) - (3)].node)));
@@ -6242,7 +6242,7 @@
   case 351:
 
 /* Line 690 of lalr1.cc  */
-#line 3512 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3512 "/home/markos/zorba/repo/hof-merge/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));
     }
@@ -6251,7 +6251,7 @@
   case 352:
 
 /* Line 690 of lalr1.cc  */
-#line 3521 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3521 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -6260,7 +6260,7 @@
   case 353:
 
 /* Line 690 of lalr1.cc  */
-#line 3525 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3525 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new OrExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
     }
@@ -6269,7 +6269,7 @@
   case 354:
 
 /* Line 690 of lalr1.cc  */
-#line 3534 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3534 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6278,7 +6278,7 @@
   case 355:
 
 /* Line 690 of lalr1.cc  */
-#line 3538 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3538 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AndExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6287,7 +6287,7 @@
   case 356:
 
 /* Line 690 of lalr1.cc  */
-#line 3546 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3546 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6296,7 +6296,7 @@
   case 357:
 
 /* Line 690 of lalr1.cc  */
-#line 3550 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3550 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             /*  ::=  "eq" | "ne" | "lt" | "le" | "gt" | "ge" */
             (yyval.expr) = new ComparisonExpr(
@@ -6311,7 +6311,7 @@
   case 358:
 
 /* Line 690 of lalr1.cc  */
-#line 3560 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3560 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             /*  ::=  "is" | "<<" | ">>" */
             (yyval.expr) = new ComparisonExpr(
@@ -6323,7 +6323,7 @@
   case 359:
 
 /* Line 690 of lalr1.cc  */
-#line 3567 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3567 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6337,7 +6337,7 @@
   case 360:
 
 /* Line 690 of lalr1.cc  */
-#line 3576 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3576 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6351,7 +6351,7 @@
   case 361:
 
 /* Line 690 of lalr1.cc  */
-#line 3585 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3585 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             /* this call is needed */
             driver.lexer->interpretAsLessThan();
@@ -6361,7 +6361,7 @@
   case 362:
 
 /* Line 690 of lalr1.cc  */
-#line 3590 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3590 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6375,7 +6375,7 @@
   case 363:
 
 /* Line 690 of lalr1.cc  */
-#line 3599 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3599 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6389,7 +6389,7 @@
   case 364:
 
 /* Line 690 of lalr1.cc  */
-#line 3608 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3608 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6403,7 +6403,7 @@
   case 365:
 
 /* Line 690 of lalr1.cc  */
-#line 3617 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3617 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ComparisonExpr(
                 LOC((yyloc)),
@@ -6417,7 +6417,7 @@
   case 366:
 
 /* Line 690 of lalr1.cc  */
-#line 3630 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3630 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6426,7 +6426,7 @@
   case 367:
 
 /* Line 690 of lalr1.cc  */
-#line 3634 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3634 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new FTContainsExpr(
                 LOC((yyloc)),
@@ -6440,7 +6440,7 @@
   case 368:
 
 /* Line 690 of lalr1.cc  */
-#line 3646 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3646 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6449,7 +6449,7 @@
   case 369:
 
 /* Line 690 of lalr1.cc  */
-#line 3650 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3650 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new StringConcatExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
         }
@@ -6458,7 +6458,7 @@
   case 370:
 
 /* Line 690 of lalr1.cc  */
-#line 3657 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3657 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -6467,7 +6467,7 @@
   case 371:
 
 /* Line 690 of lalr1.cc  */
-#line 3661 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3661 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -6476,7 +6476,7 @@
   case 372:
 
 /* Line 690 of lalr1.cc  */
-#line 3668 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3668 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6485,7 +6485,7 @@
   case 373:
 
 /* Line 690 of lalr1.cc  */
-#line 3672 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3672 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new RangeExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6494,7 +6494,7 @@
   case 374:
 
 /* Line 690 of lalr1.cc  */
-#line 3681 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3681 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6503,7 +6503,7 @@
   case 375:
 
 /* Line 690 of lalr1.cc  */
-#line 3685 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3685 "/home/markos/zorba/repo/hof-merge/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) );
         }
@@ -6512,7 +6512,7 @@
   case 376:
 
 /* Line 690 of lalr1.cc  */
-#line 3689 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3689 "/home/markos/zorba/repo/hof-merge/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) );
         }
@@ -6521,7 +6521,7 @@
   case 377:
 
 /* Line 690 of lalr1.cc  */
-#line 3697 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3697 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6530,7 +6530,7 @@
   case 378:
 
 /* Line 690 of lalr1.cc  */
-#line 3701 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3701 "/home/markos/zorba/repo/hof-merge/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)
@@ -6541,7 +6541,7 @@
   case 379:
 
 /* Line 690 of lalr1.cc  */
-#line 3707 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3707 "/home/markos/zorba/repo/hof-merge/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)
@@ -6552,7 +6552,7 @@
   case 380:
 
 /* Line 690 of lalr1.cc  */
-#line 3713 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3713 "/home/markos/zorba/repo/hof-merge/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)
@@ -6563,7 +6563,7 @@
   case 381:
 
 /* Line 690 of lalr1.cc  */
-#line 3719 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3719 "/home/markos/zorba/repo/hof-merge/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)
@@ -6574,7 +6574,7 @@
   case 382:
 
 /* Line 690 of lalr1.cc  */
-#line 3729 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3729 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6583,7 +6583,7 @@
   case 383:
 
 /* Line 690 of lalr1.cc  */
-#line 3733 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3733 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6592,7 +6592,7 @@
   case 384:
 
 /* Line 690 of lalr1.cc  */
-#line 3737 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3737 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnionExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr) );
         }
@@ -6601,7 +6601,7 @@
   case 385:
 
 /* Line 690 of lalr1.cc  */
-#line 3745 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3745 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6610,7 +6610,7 @@
   case 386:
 
 /* Line 690 of lalr1.cc  */
-#line 3749 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3749 "/home/markos/zorba/repo/hof-merge/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)
@@ -6621,7 +6621,7 @@
   case 387:
 
 /* Line 690 of lalr1.cc  */
-#line 3755 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3755 "/home/markos/zorba/repo/hof-merge/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)
@@ -6632,7 +6632,7 @@
   case 388:
 
 /* Line 690 of lalr1.cc  */
-#line 3765 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3765 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6641,7 +6641,7 @@
   case 389:
 
 /* Line 690 of lalr1.cc  */
-#line 3769 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3769 "/home/markos/zorba/repo/hof-merge/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))
@@ -6652,7 +6652,7 @@
   case 390:
 
 /* Line 690 of lalr1.cc  */
-#line 3779 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3779 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6661,7 +6661,7 @@
   case 391:
 
 /* Line 690 of lalr1.cc  */
-#line 3783 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3783 "/home/markos/zorba/repo/hof-merge/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))
@@ -6672,7 +6672,7 @@
   case 392:
 
 /* Line 690 of lalr1.cc  */
-#line 3793 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3793 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6681,7 +6681,7 @@
   case 393:
 
 /* Line 690 of lalr1.cc  */
-#line 3797 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3797 "/home/markos/zorba/repo/hof-merge/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))
@@ -6692,7 +6692,7 @@
   case 394:
 
 /* Line 690 of lalr1.cc  */
-#line 3807 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3807 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6701,7 +6701,7 @@
   case 395:
 
 /* Line 690 of lalr1.cc  */
-#line 3811 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3811 "/home/markos/zorba/repo/hof-merge/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))
@@ -6712,7 +6712,7 @@
   case 396:
 
 /* Line 690 of lalr1.cc  */
-#line 3821 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3821 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(1) - (1)].node)), false);
     }
@@ -6721,7 +6721,7 @@
   case 397:
 
 /* Line 690 of lalr1.cc  */
-#line 3825 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3825 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new SingleType(LOC((yyloc)), dynamic_cast<SimpleType*>((yysemantic_stack_[(2) - (1)].node)), true);
     }
@@ -6730,7 +6730,7 @@
   case 398:
 
 /* Line 690 of lalr1.cc  */
-#line 3834 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3834 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6739,7 +6739,7 @@
   case 399:
 
 /* Line 690 of lalr1.cc  */
-#line 3838 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3838 "/home/markos/zorba/repo/hof-merge/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) );
         }
@@ -6748,7 +6748,7 @@
   case 400:
 
 /* Line 690 of lalr1.cc  */
-#line 3846 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3846 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), true );
         }
@@ -6757,7 +6757,7 @@
   case 401:
 
 /* Line 690 of lalr1.cc  */
-#line 3850 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3850 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new SignList( LOC((yyloc)), false );
         }
@@ -6766,7 +6766,7 @@
   case 402:
 
 /* Line 690 of lalr1.cc  */
-#line 3854 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3854 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
         }
@@ -6775,7 +6775,7 @@
   case 403:
 
 /* Line 690 of lalr1.cc  */
-#line 3858 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3858 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             if ( SignList *sl = dynamic_cast<SignList*>((yysemantic_stack_[(2) - (1)].node)) )
                 sl->negate();
@@ -6786,7 +6786,7 @@
   case 404:
 
 /* Line 690 of lalr1.cc  */
-#line 3868 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3868 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6795,7 +6795,7 @@
   case 405:
 
 /* Line 690 of lalr1.cc  */
-#line 3872 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3872 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6804,7 +6804,7 @@
   case 406:
 
 /* Line 690 of lalr1.cc  */
-#line 3876 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3876 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -6813,7 +6813,7 @@
   case 407:
 
 /* Line 690 of lalr1.cc  */
-#line 3883 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3883 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
       }
@@ -6822,7 +6822,7 @@
   case 408:
 
 /* Line 690 of lalr1.cc  */
-#line 3888 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3888 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
         (yyval.expr) = new SimpleMapExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), (yysemantic_stack_[(3) - (3)].expr));
       }
@@ -6831,7 +6831,7 @@
   case 409:
 
 /* Line 690 of lalr1.cc  */
-#line 3896 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3896 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_eq );
         }
@@ -6840,7 +6840,7 @@
   case 410:
 
 /* Line 690 of lalr1.cc  */
-#line 3900 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3900 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ne );
         }
@@ -6849,7 +6849,7 @@
   case 411:
 
 /* Line 690 of lalr1.cc  */
-#line 3904 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3904 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_lt );
         }
@@ -6858,7 +6858,7 @@
   case 412:
 
 /* Line 690 of lalr1.cc  */
-#line 3908 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3908 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_le );
         }
@@ -6867,7 +6867,7 @@
   case 413:
 
 /* Line 690 of lalr1.cc  */
-#line 3912 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3912 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_gt );
         }
@@ -6876,7 +6876,7 @@
   case 414:
 
 /* Line 690 of lalr1.cc  */
-#line 3916 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3916 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ValueComp( LOC((yyloc)), ParseConstants::op_val_ge );
         }
@@ -6885,7 +6885,7 @@
   case 415:
 
 /* Line 690 of lalr1.cc  */
-#line 3924 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3924 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_is );
         }
@@ -6894,7 +6894,7 @@
   case 416:
 
 /* Line 690 of lalr1.cc  */
-#line 3928 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3928 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_precedes );
         }
@@ -6903,7 +6903,7 @@
   case 417:
 
 /* Line 690 of lalr1.cc  */
-#line 3932 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3932 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NodeComp( LOC((yyloc)), ParseConstants::op_follows );
         }
@@ -6912,7 +6912,7 @@
   case 418:
 
 /* Line 690 of lalr1.cc  */
-#line 3940 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3940 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(4) - (3)].expr) );
         }
@@ -6921,7 +6921,7 @@
   case 419:
 
 /* Line 690 of lalr1.cc  */
-#line 3944 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3944 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "lax", (yysemantic_stack_[(5) - (4)].expr) );
         }
@@ -6930,7 +6930,7 @@
   case 420:
 
 /* Line 690 of lalr1.cc  */
-#line 3948 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3948 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ValidateExpr( LOC((yyloc)), "strict", (yysemantic_stack_[(5) - (4)].expr) );
         }
@@ -6939,7 +6939,7 @@
   case 421:
 
 /* Line 690 of lalr1.cc  */
-#line 3952 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3952 "/home/markos/zorba/repo/hof-merge/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)
@@ -6951,7 +6951,7 @@
   case 422:
 
 /* Line 690 of lalr1.cc  */
-#line 3963 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3963 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ExtensionExpr(
                 LOC((yyloc)), dynamic_cast<PragmaList*>((yysemantic_stack_[(3) - (1)].node)), NULL
@@ -6962,7 +6962,7 @@
   case 423:
 
 /* Line 690 of lalr1.cc  */
-#line 3969 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3969 "/home/markos/zorba/repo/hof-merge/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)
@@ -6973,7 +6973,7 @@
   case 424:
 
 /* Line 690 of lalr1.cc  */
-#line 3979 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3979 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             PragmaList *pl = new PragmaList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<Pragma*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -6984,7 +6984,7 @@
   case 425:
 
 /* Line 690 of lalr1.cc  */
-#line 3985 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3985 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -6995,7 +6995,7 @@
   case 426:
 
 /* Line 690 of lalr1.cc  */
-#line 3995 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3995 "/home/markos/zorba/repo/hof-merge/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)) );
         }
@@ -7004,7 +7004,7 @@
   case 427:
 
 /* Line 690 of lalr1.cc  */
-#line 3999 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 3999 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) ), "" );
         }
@@ -7013,7 +7013,7 @@
   case 428:
 
 /* Line 690 of lalr1.cc  */
-#line 4003 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4003 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new Pragma( LOC((yyloc)), new QName( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), true ), "" );
         }
@@ -7022,7 +7022,7 @@
   case 429:
 
 /* Line 690 of lalr1.cc  */
-#line 4041 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4041 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new PathExpr(LOC((yyloc)), ParseConstants::path_leading_lone_slash, NULL);
     }
@@ -7031,7 +7031,7 @@
   case 430:
 
 /* Line 690 of lalr1.cc  */
-#line 4045 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4045 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -7046,7 +7046,7 @@
   case 431:
 
 /* Line 690 of lalr1.cc  */
-#line 4055 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4055 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe;
 
@@ -7061,7 +7061,7 @@
   case 432:
 
 /* Line 690 of lalr1.cc  */
-#line 4065 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4065 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       RelativePathExpr* rpe = dynamic_cast<RelativePathExpr*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (!rpe ?
@@ -7073,7 +7073,7 @@
   case 433:
 
 /* Line 690 of lalr1.cc  */
-#line 4078 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4078 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = NULL;
     }
@@ -7082,7 +7082,7 @@
   case 434:
 
 /* Line 690 of lalr1.cc  */
-#line 4087 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4087 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       AxisStep* as = dynamic_cast<AxisStep*>((yysemantic_stack_[(1) - (1)].expr));
       (yyval.expr) = (as ?
@@ -7097,7 +7097,7 @@
   case 435:
 
 /* Line 690 of lalr1.cc  */
-#line 4097 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4097 "/home/markos/zorba/repo/hof-merge/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);
     }
@@ -7106,7 +7106,7 @@
   case 436:
 
 /* Line 690 of lalr1.cc  */
-#line 4101 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4101 "/home/markos/zorba/repo/hof-merge/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);
     }
@@ -7115,7 +7115,7 @@
   case 437:
 
 /* Line 690 of lalr1.cc  */
-#line 4110 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4110 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7124,7 +7124,7 @@
   case 438:
 
 /* Line 690 of lalr1.cc  */
-#line 4114 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4114 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7133,7 +7133,7 @@
   case 439:
 
 /* Line 690 of lalr1.cc  */
-#line 4123 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4123 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ForwardStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7144,7 +7144,7 @@
   case 440:
 
 /* Line 690 of lalr1.cc  */
-#line 4129 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4129 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7157,7 +7157,7 @@
   case 441:
 
 /* Line 690 of lalr1.cc  */
-#line 4137 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4137 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)), dynamic_cast<ReverseStep*>((yysemantic_stack_[(1) - (1)].node)), NULL
@@ -7168,7 +7168,7 @@
   case 442:
 
 /* Line 690 of lalr1.cc  */
-#line 4143 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4143 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new AxisStep(
                 LOC((yyloc)),
@@ -7181,7 +7181,7 @@
   case 443:
 
 /* Line 690 of lalr1.cc  */
-#line 4155 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4155 "/home/markos/zorba/repo/hof-merge/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)
@@ -7192,7 +7192,7 @@
   case 444:
 
 /* Line 690 of lalr1.cc  */
-#line 4161 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4161 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardStep(
                 LOC((yyloc)), dynamic_cast<AbbrevForwardStep*>((yysemantic_stack_[(1) - (1)].node))
@@ -7203,7 +7203,7 @@
   case 445:
 
 /* Line 690 of lalr1.cc  */
-#line 4171 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4171 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_child );
         }
@@ -7212,7 +7212,7 @@
   case 446:
 
 /* Line 690 of lalr1.cc  */
-#line 4175 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4175 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_descendant);
         }
@@ -7221,7 +7221,7 @@
   case 447:
 
 /* Line 690 of lalr1.cc  */
-#line 4179 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4179 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_attribute );
         }
@@ -7230,7 +7230,7 @@
   case 448:
 
 /* Line 690 of lalr1.cc  */
-#line 4183 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4183 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_self );
         }
@@ -7239,7 +7239,7 @@
   case 449:
 
 /* Line 690 of lalr1.cc  */
-#line 4187 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4187 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_descendant_or_self
@@ -7250,7 +7250,7 @@
   case 450:
 
 /* Line 690 of lalr1.cc  */
-#line 4193 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4193 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis(
                 LOC((yyloc)), ParseConstants::axis_following_sibling
@@ -7261,7 +7261,7 @@
   case 451:
 
 /* Line 690 of lalr1.cc  */
-#line 4199 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4199 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ForwardAxis( LOC((yyloc)), ParseConstants::axis_following );
         }
@@ -7270,7 +7270,7 @@
   case 452:
 
 /* Line 690 of lalr1.cc  */
-#line 4207 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4207 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), false );
         }
@@ -7279,7 +7279,7 @@
   case 453:
 
 /* Line 690 of lalr1.cc  */
-#line 4211 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4211 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new AbbrevForwardStep( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].node), true );
         }
@@ -7288,7 +7288,7 @@
   case 454:
 
 /* Line 690 of lalr1.cc  */
-#line 4219 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4219 "/home/markos/zorba/repo/hof-merge/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) );
         }
@@ -7297,7 +7297,7 @@
   case 455:
 
 /* Line 690 of lalr1.cc  */
-#line 4223 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4223 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             ReverseAxis *ra = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_parent
@@ -7309,7 +7309,7 @@
   case 456:
 
 /* Line 690 of lalr1.cc  */
-#line 4234 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4234 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_parent );
         }
@@ -7318,7 +7318,7 @@
   case 457:
 
 /* Line 690 of lalr1.cc  */
-#line 4238 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4238 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_ancestor );
         }
@@ -7327,7 +7327,7 @@
   case 458:
 
 /* Line 690 of lalr1.cc  */
-#line 4242 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4242 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_preceding_sibling
@@ -7338,7 +7338,7 @@
   case 459:
 
 /* Line 690 of lalr1.cc  */
-#line 4248 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4248 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis( LOC((yyloc)), ParseConstants::axis_preceding );
         }
@@ -7347,7 +7347,7 @@
   case 460:
 
 /* Line 690 of lalr1.cc  */
-#line 4252 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4252 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new ReverseAxis(
                 LOC((yyloc)), ParseConstants::axis_ancestor_or_self
@@ -7358,7 +7358,7 @@
   case 461:
 
 /* Line 690 of lalr1.cc  */
-#line 4266 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4266 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -7367,7 +7367,7 @@
   case 462:
 
 /* Line 690 of lalr1.cc  */
-#line 4270 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4270 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -7376,7 +7376,7 @@
   case 463:
 
 /* Line 690 of lalr1.cc  */
-#line 4278 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4278 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
         }
@@ -7385,7 +7385,7 @@
   case 464:
 
 /* Line 690 of lalr1.cc  */
-#line 4282 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4282 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new NameTest( LOC((yyloc)), dynamic_cast<Wildcard*>((yysemantic_stack_[(1) - (1)].node)) );
         }
@@ -7394,7 +7394,7 @@
   case 465:
 
 /* Line 690 of lalr1.cc  */
-#line 4292 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4292 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", "", ParseConstants::wild_all, false);
     }
@@ -7403,7 +7403,7 @@
   case 466:
 
 /* Line 690 of lalr1.cc  */
-#line 4296 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4296 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, false);
     }
@@ -7412,7 +7412,7 @@
   case 467:
 
 /* Line 690 of lalr1.cc  */
-#line 4300 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4300 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)), "", ParseConstants::wild_elem, true);
     }
@@ -7421,7 +7421,7 @@
   case 468:
 
 /* Line 690 of lalr1.cc  */
-#line 4304 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4304 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new Wildcard(LOC((yyloc)), "", SYMTAB((yysemantic_stack_[(1) - (1)].sval)), ParseConstants::wild_prefix, false);
     }
@@ -7430,7 +7430,7 @@
   case 469:
 
 /* Line 690 of lalr1.cc  */
-#line 4313 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4313 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
        (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
      }
@@ -7439,7 +7439,7 @@
   case 470:
 
 /* Line 690 of lalr1.cc  */
-#line 4317 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4317 "/home/markos/zorba/repo/hof-merge/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)));
      }
@@ -7448,25 +7448,25 @@
   case 471:
 
 /* Line 690 of lalr1.cc  */
-#line 4321 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4321 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-       (yyval.expr) = new DynamicFunctionInvocation(LOC ((yyloc)), (yysemantic_stack_[(3) - (1)].expr));
+       (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(3) - (1)].expr), false);
      }
     break;
 
   case 472:
 
 /* Line 690 of lalr1.cc  */
-#line 4325 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4325 "/home/markos/zorba/repo/hof-merge/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)));
+       (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), (yysemantic_stack_[(4) - (1)].expr), dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)), false);
      }
     break;
 
   case 473:
 
 /* Line 690 of lalr1.cc  */
-#line 4333 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4333 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             PredicateList *pl = new PredicateList( LOC((yyloc)) );
             pl->push_back( dynamic_cast<exprnode*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7477,7 +7477,7 @@
   case 474:
 
 /* Line 690 of lalr1.cc  */
-#line 4339 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4339 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -7488,7 +7488,7 @@
   case 475:
 
 /* Line 690 of lalr1.cc  */
-#line 4349 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4349 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
         }
@@ -7497,7 +7497,7 @@
   case 476:
 
 /* Line 690 of lalr1.cc  */
-#line 4357 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4357 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7506,7 +7506,7 @@
   case 477:
 
 /* Line 690 of lalr1.cc  */
-#line 4361 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4361 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7515,7 +7515,7 @@
   case 478:
 
 /* Line 690 of lalr1.cc  */
-#line 4365 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4365 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7524,7 +7524,7 @@
   case 479:
 
 /* Line 690 of lalr1.cc  */
-#line 4369 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4369 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7533,7 +7533,7 @@
   case 480:
 
 /* Line 690 of lalr1.cc  */
-#line 4373 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4373 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7542,7 +7542,7 @@
   case 481:
 
 /* Line 690 of lalr1.cc  */
-#line 4377 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4377 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7551,7 +7551,7 @@
   case 482:
 
 /* Line 690 of lalr1.cc  */
-#line 4381 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4381 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7560,7 +7560,7 @@
   case 483:
 
 /* Line 690 of lalr1.cc  */
-#line 4385 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4385 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7569,7 +7569,7 @@
   case 484:
 
 /* Line 690 of lalr1.cc  */
-#line 4389 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4389 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7578,7 +7578,7 @@
   case 485:
 
 /* Line 690 of lalr1.cc  */
-#line 4393 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4393 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7587,7 +7587,7 @@
   case 486:
 
 /* Line 690 of lalr1.cc  */
-#line 4398 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4398 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7596,7 +7596,7 @@
   case 487:
 
 /* Line 690 of lalr1.cc  */
-#line 4402 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4402 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7605,7 +7605,7 @@
   case 488:
 
 /* Line 690 of lalr1.cc  */
-#line 4406 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4406 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7614,7 +7614,7 @@
   case 489:
 
 /* Line 690 of lalr1.cc  */
-#line 4410 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4410 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7623,7 +7623,7 @@
   case 490:
 
 /* Line 690 of lalr1.cc  */
-#line 4418 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4418 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7632,7 +7632,7 @@
   case 491:
 
 /* Line 690 of lalr1.cc  */
-#line 4422 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4422 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
         }
@@ -7641,7 +7641,7 @@
   case 492:
 
 /* Line 690 of lalr1.cc  */
-#line 4430 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4430 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_decimal, *(yysemantic_stack_[(1) - (1)].decval)
@@ -7653,7 +7653,7 @@
   case 493:
 
 /* Line 690 of lalr1.cc  */
-#line 4437 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4437 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_integer, *(yysemantic_stack_[(1) - (1)].ival)
@@ -7665,7 +7665,7 @@
   case 494:
 
 /* Line 690 of lalr1.cc  */
-#line 4444 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4444 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = NumericLiteral::new_literal(
                 LOC((yyloc)), ParseConstants::num_double, *(yysemantic_stack_[(1) - (1)].dval)
@@ -7677,7 +7677,7 @@
   case 495:
 
 /* Line 690 of lalr1.cc  */
-#line 4455 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4455 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new VarRef(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (2)].expr)));
         }
@@ -7686,7 +7686,7 @@
   case 496:
 
 /* Line 690 of lalr1.cc  */
-#line 4463 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4463 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), NULL);
         }
@@ -7695,7 +7695,7 @@
   case 497:
 
 /* Line 690 of lalr1.cc  */
-#line 4467 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4467 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ParenthesizedExpr( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
@@ -7704,7 +7704,7 @@
   case 498:
 
 /* Line 690 of lalr1.cc  */
-#line 4475 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4475 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new ContextItemExpr( LOC((yyloc)) );
         }
@@ -7713,7 +7713,7 @@
   case 499:
 
 /* Line 690 of lalr1.cc  */
-#line 4483 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4483 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new OrderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
@@ -7722,7 +7722,7 @@
   case 500:
 
 /* Line 690 of lalr1.cc  */
-#line 4491 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4491 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new UnorderedExpr( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
         }
@@ -7731,7 +7731,7 @@
   case 501:
 
 /* Line 690 of lalr1.cc  */
-#line 4545 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4545 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new FunctionCall( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), NULL );
     }
@@ -7740,21 +7740,33 @@
   case 502:
 
 /* Line 690 of lalr1.cc  */
-#line 4549 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4549 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = new FunctionCall(LOC((yyloc)),
-                            static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
-                            dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node)));
+      ArgList* argList = dynamic_cast<ArgList*>((yysemantic_stack_[(4) - (3)].node));
+
+      if (argList->has_placeholder())
+      {
+        LiteralFunctionItem* lfi = 
+        new LiteralFunctionItem(LOC((yyloc)),
+                                dynamic_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)),
+                                new Integer(argList->size()));
+
+        (yyval.expr) = new DynamicFunctionInvocation(LOC((yyloc)), lfi, argList, true);
+      }
+      else
+      {
+        (yyval.expr) = new FunctionCall(LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (1)].expr)), argList);
+      }
     }
     break;
 
   case 503:
 
 /* Line 690 of lalr1.cc  */
-#line 4559 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4571 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       ArgList *al = new ArgList( LOC((yyloc)) );
-      al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
+      al->push_back(new ArgumentPlaceholder(LOC((yyloc))));
       (yyval.node) = al;
     }
     break;
@@ -7762,10 +7774,10 @@
   case 504:
 
 /* Line 690 of lalr1.cc  */
-#line 4565 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4577 "/home/markos/zorba/repo/hof-merge/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) );
+        al->push_back( new ArgumentPlaceholder(LOC((yyloc))) );
       (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
     }
     break;
@@ -7773,25 +7785,29 @@
   case 505:
 
 /* Line 690 of lalr1.cc  */
-#line 4575 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4583 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+      ArgList *al = new ArgList( LOC((yyloc)) );
+      al->push_back( (yysemantic_stack_[(1) - (1)].expr) );
+      (yyval.node) = al;
     }
     break;
 
   case 506:
 
 /* Line 690 of lalr1.cc  */
-#line 4579 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4589 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+      if ( ArgList *al = dynamic_cast<ArgList*>((yysemantic_stack_[(3) - (1)].node)) )
+        al->push_back( (yysemantic_stack_[(3) - (3)].expr) );
+      (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
     }
     break;
 
   case 507:
 
 /* Line 690 of lalr1.cc  */
-#line 4587 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4599 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7800,7 +7816,7 @@
   case 508:
 
 /* Line 690 of lalr1.cc  */
-#line 4591 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4603 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -7809,16 +7825,74 @@
   case 509:
 
 /* Line 690 of lalr1.cc  */
-#line 4595 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4611 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+      (yyval.expr) = new LiteralFunctionItem(LOC ((yyloc)), dynamic_cast<QName*>((yysemantic_stack_[(3) - (1)].expr)), (yysemantic_stack_[(3) - (3)].ival));
     }
     break;
 
   case 510:
 
 /* Line 690 of lalr1.cc  */
-#line 4603 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4619 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = new InlineFunction(LOC((yyloc)),
+                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
+                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theReturnType,
+                              (yysemantic_stack_[(3) - (3)].expr));
+      delete (yysemantic_stack_[(3) - (2)].fnsig);
+    }
+    break;
+
+  case 511:
+
+/* Line 690 of lalr1.cc  */
+#line 4632 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 512:
+
+/* Line 690 of lalr1.cc  */
+#line 4636 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 513:
+
+/* Line 690 of lalr1.cc  */
+#line 4644 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 514:
+
+/* Line 690 of lalr1.cc  */
+#line 4648 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 515:
+
+/* Line 690 of lalr1.cc  */
+#line 4652 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
+    }
+    break;
+
+  case 516:
+
+/* Line 690 of lalr1.cc  */
+#line 4660 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(4) - (2)].expr)),
@@ -7828,10 +7902,10 @@
     }
     break;
 
-  case 511:
+  case 517:
 
 /* Line 690 of lalr1.cc  */
-#line 4611 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4668 "/home/markos/zorba/repo/hof-merge/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())
       {
@@ -7850,10 +7924,10 @@
     }
     break;
 
-  case 512:
+  case 518:
 
 /* Line 690 of lalr1.cc  */
-#line 4628 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4685 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirElemConstructor(LOC((yyloc)),
                                   static_cast<QName*>((yysemantic_stack_[(5) - (2)].expr)),
@@ -7863,10 +7937,10 @@
     }
     break;
 
-  case 513:
+  case 519:
 
 /* Line 690 of lalr1.cc  */
-#line 4636 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4693 "/home/markos/zorba/repo/hof-merge/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())
       {
@@ -7885,10 +7959,10 @@
     }
     break;
 
-  case 514:
+  case 520:
 
 /* Line 690 of lalr1.cc  */
-#line 4655 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4712 "/home/markos/zorba/repo/hof-merge/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())
       {
@@ -7907,10 +7981,10 @@
     }
     break;
 
-  case 515:
+  case 521:
 
 /* Line 690 of lalr1.cc  */
-#line 4674 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4731 "/home/markos/zorba/repo/hof-merge/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())
       {
@@ -7929,10 +8003,10 @@
     }
     break;
 
-  case 516:
+  case 522:
 
 /* Line 690 of lalr1.cc  */
-#line 4696 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4753 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       DirElemContentList *decl = new DirElemContentList( LOC((yyloc)) );
       decl->push_back( dynamic_cast<DirElemContent*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -7940,10 +8014,10 @@
     }
     break;
 
-  case 517:
+  case 523:
 
 /* Line 690 of lalr1.cc  */
-#line 4702 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4759 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       DirElemContentList *decl = dynamic_cast<DirElemContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( decl )
@@ -7952,10 +8026,10 @@
     }
     break;
 
-  case 518:
+  case 524:
 
 /* Line 690 of lalr1.cc  */
-#line 4713 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4770 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       DirAttributeList *dal = new DirAttributeList( LOC((yyloc)) );
       dal->push_back( dynamic_cast<DirAttr*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -7963,10 +8037,10 @@
     }
     break;
 
-  case 519:
+  case 525:
 
 /* Line 690 of lalr1.cc  */
-#line 4719 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4776 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       DirAttributeList *dal = dynamic_cast<DirAttributeList*>((yysemantic_stack_[(2) - (1)].node));
       if ( dal )
@@ -7975,10 +8049,10 @@
     }
     break;
 
-  case 520:
+  case 526:
 
 /* Line 690 of lalr1.cc  */
-#line 4730 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4787 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DirAttr(LOC((yyloc)),
                        static_cast<QName*>((yysemantic_stack_[(6) - (2)].expr)),
@@ -7986,48 +8060,48 @@
     }
     break;
 
-  case 523:
+  case 529:
 
 /* Line 690 of lalr1.cc  */
-#line 4745 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4802 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DirAttributeValue(LOC((yyloc)),
                                  dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 524:
+  case 530:
 
 /* Line 690 of lalr1.cc  */
-#line 4750 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4807 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new DirAttributeValue( LOC((yyloc)),
                                   dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(3) - (2)].node)));
     }
     break;
 
-  case 525:
+  case 531:
 
 /* Line 690 of lalr1.cc  */
-#line 4759 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4816 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QuoteAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 526:
+  case 532:
 
 /* Line 690 of lalr1.cc  */
-#line 4763 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4820 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
-  case 527:
+  case 533:
 
 /* Line 690 of lalr1.cc  */
-#line 4770 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4827 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( new QuoteAttrValueContent( LOC((yyloc)), "\"" ) );
@@ -8035,10 +8109,10 @@
     }
     break;
 
-  case 528:
+  case 534:
 
 /* Line 690 of lalr1.cc  */
-#line 4776 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4833 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       QuoteAttrContentList *qacl = new QuoteAttrContentList( LOC((yyloc)) );
       qacl->push_back( dynamic_cast<QuoteAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -8046,10 +8120,10 @@
     }
     break;
 
-  case 529:
+  case 535:
 
 /* Line 690 of lalr1.cc  */
-#line 4782 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4839 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       QuoteAttrContentList* qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -8058,10 +8132,10 @@
     }
     break;
 
-  case 530:
+  case 536:
 
 /* Line 690 of lalr1.cc  */
-#line 4789 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4846 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       QuoteAttrContentList *qacl = dynamic_cast<QuoteAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( qacl )
@@ -8070,28 +8144,28 @@
     }
     break;
 
-  case 531:
+  case 537:
 
 /* Line 690 of lalr1.cc  */
-#line 4800 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4857 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AposAttrContentList( LOC((yyloc)) );
     }
     break;
 
-  case 532:
+  case 538:
 
 /* Line 690 of lalr1.cc  */
-#line 4804 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4861 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
-  case 533:
+  case 539:
 
 /* Line 690 of lalr1.cc  */
-#line 4811 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4868 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( new AposAttrValueContent( LOC((yyloc)),"'") );
@@ -8099,10 +8173,10 @@
     }
     break;
 
-  case 534:
+  case 540:
 
 /* Line 690 of lalr1.cc  */
-#line 4817 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4874 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       AposAttrContentList *aacl = new AposAttrContentList( LOC((yyloc)) );
       aacl->push_back( dynamic_cast<AposAttrValueContent*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -8110,10 +8184,10 @@
     }
     break;
 
-  case 535:
+  case 541:
 
 /* Line 690 of lalr1.cc  */
-#line 4823 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4880 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if (aacl)
@@ -8122,10 +8196,10 @@
     }
     break;
 
-  case 536:
+  case 542:
 
 /* Line 690 of lalr1.cc  */
-#line 4830 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4887 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       AposAttrContentList *aacl = dynamic_cast<AposAttrContentList*>((yysemantic_stack_[(2) - (1)].node));
       if ( aacl )
@@ -8134,210 +8208,165 @@
     }
     break;
 
-  case 537:
+  case 543:
 
 /* Line 690 of lalr1.cc  */
-#line 4841 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4898 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 538:
+  case 544:
 
 /* Line 690 of lalr1.cc  */
-#line 4845 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4902 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new QuoteAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 539:
+  case 545:
 
 /* Line 690 of lalr1.cc  */
-#line 4853 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4910 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AposAttrValueContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 540:
+  case 546:
 
 /* Line 690 of lalr1.cc  */
-#line 4857 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4914 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AposAttrValueContent(LOC((yyloc)), dynamic_cast<CommonContent*>((yysemantic_stack_[(1) - (1)].expr)));
     }
     break;
 
-  case 541:
+  case 547:
 
 /* Line 690 of lalr1.cc  */
-#line 4865 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4922 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].expr) );
     }
     break;
 
-  case 542:
+  case 548:
 
 /* Line 690 of lalr1.cc  */
-#line 4869 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirElemContent( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
     }
     break;
 
-  case 543:
+  case 549:
 
 /* Line 690 of lalr1.cc  */
-#line 4873 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4930 "/home/markos/zorba/repo/hof-merge/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 544:
+  case 550:
 
 /* Line 690 of lalr1.cc  */
-#line 4878 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4935 "/home/markos/zorba/repo/hof-merge/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 545:
+  case 551:
 
 /* Line 690 of lalr1.cc  */
-#line 4887 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4944 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_charref, SYMTAB((yysemantic_stack_[(1) - (1)].sval)));
     }
     break;
 
-  case 546:
+  case 552:
 
 /* Line 690 of lalr1.cc  */
-#line 4891 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4948 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_lbrace);
     }
     break;
 
-  case 547:
+  case 553:
 
 /* Line 690 of lalr1.cc  */
-#line 4895 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4952 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), ParseConstants::cont_escape_rbrace);
     }
     break;
 
-  case 548:
+  case 554:
 
 /* Line 690 of lalr1.cc  */
-#line 4899 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4956 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new CommonContent(LOC((yyloc)), new EnclosedExpr(LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr)));
     }
     break;
 
-  case 549:
+  case 555:
 
 /* Line 690 of lalr1.cc  */
-#line 4907 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4964 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 550:
+  case 556:
 
 /* Line 690 of lalr1.cc  */
-#line 4912 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4969 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirCommentConstructor( LOC((yyloc)), "" );
     }
     break;
 
-  case 551:
+  case 557:
 
 /* Line 690 of lalr1.cc  */
-#line 4920 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4977 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new DirPIConstructor( LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (2)].sval)) );
     }
     break;
 
-  case 552:
+  case 558:
 
 /* Line 690 of lalr1.cc  */
-#line 4925 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4982 "/home/markos/zorba/repo/hof-merge/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 553:
+  case 559:
 
 /* Line 690 of lalr1.cc  */
-#line 4933 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 4990 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = new CDataSection( LOC((yyloc)),SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
     }
     break;
 
-  case 554:
-
-/* Line 690 of lalr1.cc  */
-#line 4941 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 555:
-
-/* Line 690 of lalr1.cc  */
-#line 4946 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 556:
-
-/* Line 690 of lalr1.cc  */
-#line 4951 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 557:
-
-/* Line 690 of lalr1.cc  */
-#line 4956 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 558:
-
-/* Line 690 of lalr1.cc  */
-#line 4961 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
-    break;
-
-  case 559:
-
-/* Line 690 of lalr1.cc  */
-#line 4966 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+  case 560:
+
+/* Line 690 of lalr1.cc  */
+#line 4998 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
@@ -8346,229 +8375,220 @@
   case 561:
 
 /* Line 690 of lalr1.cc  */
-#line 4977 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5003 "/home/markos/zorba/repo/hof-merge/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 562:
 
 /* Line 690 of lalr1.cc  */
-#line 4985 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5008 "/home/markos/zorba/repo/hof-merge/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 563:
 
 /* Line 690 of lalr1.cc  */
-#line 4989 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5013 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = new CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 564:
 
 /* Line 690 of lalr1.cc  */
-#line 5006 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5018 "/home/markos/zorba/repo/hof-merge/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) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 565:
 
 /* Line 690 of lalr1.cc  */
-#line 5010 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
-    }
-    break;
-
-  case 566:
-
-/* Line 690 of lalr1.cc  */
-#line 5018 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+#line 5023 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
     }
     break;
 
   case 567:
 
 /* Line 690 of lalr1.cc  */
-#line 5026 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5034 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+      (yyval.expr) = new CompDocConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
     break;
 
   case 568:
 
 /* Line 690 of lalr1.cc  */
-#line 5034 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5042 "/home/markos/zorba/repo/hof-merge/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 CompElemConstructor(LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr));
     }
     break;
 
   case 569:
 
 /* Line 690 of lalr1.cc  */
-#line 5038 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5046 "/home/markos/zorba/repo/hof-merge/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 CompElemConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
     }
     break;
 
   case 570:
 
 /* Line 690 of lalr1.cc  */
-#line 5046 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5063 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval))), (yysemantic_stack_[(3) - (2)].expr) );
     }
     break;
 
   case 571:
 
 /* Line 690 of lalr1.cc  */
-#line 5050 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5067 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+      (yyval.expr) = new CompAttrConstructor( LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr) );
     }
     break;
 
   case 572:
 
 /* Line 690 of lalr1.cc  */
-#line 5058 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5075 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+      (yyval.expr) = new CompTextConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
     }
     break;
 
   case 573:
 
 /* Line 690 of lalr1.cc  */
-#line 5066 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5083 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
-        }
+      (yyval.expr) = new CompCommentConstructor( LOC((yyloc)), (yysemantic_stack_[(4) - (3)].expr) );
+    }
     break;
 
   case 574:
 
 /* Line 690 of lalr1.cc  */
-#line 5070 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5091 "/home/markos/zorba/repo/hof-merge/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)));
-        }
+      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+    }
     break;
 
   case 575:
 
 /* Line 690 of lalr1.cc  */
-#line 5074 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5095 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.expr) = new CompPIConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+    }
     break;
 
   case 576:
 
 /* Line 690 of lalr1.cc  */
-#line 5109 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5103 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_optionally
-            );
-        }
+      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), SYMTAB((yysemantic_stack_[(3) - (1)].sval)), (yysemantic_stack_[(3) - (2)].expr));
+    }
     break;
 
   case 577:
 
 /* Line 690 of lalr1.cc  */
-#line 5115 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5107 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_zero_or_more
-            );
-        }
+      (yyval.expr) = new CompNamespaceConstructor(LOC((yyloc)), (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (6)].expr));
+    }
     break;
 
   case 578:
 
 /* Line 690 of lalr1.cc  */
-#line 5121 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5115 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new OccurrenceIndicator(
-                LOC((yyloc)), ParseConstants::occurs_one_or_more
-            );
-        }
+      (yyval.node) = (yysemantic_stack_[(2) - (2)].node);
+    }
     break;
 
   case 579:
 
 /* Line 690 of lalr1.cc  */
-#line 5131 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5123 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new SequenceType( LOC((yyloc)), (yysemantic_stack_[(1) - (1)].node), NULL );
         }
     break;
 
   case 580:
 
 /* Line 690 of lalr1.cc  */
-#line 5135 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5127 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new SequenceType(LOC((yyloc)), (yysemantic_stack_[(2) - (1)].node), dynamic_cast<OccurrenceIndicator*>((yysemantic_stack_[(2) - (2)].node)));
         }
     break;
 
   case 581:
 
 /* Line 690 of lalr1.cc  */
-#line 5139 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5131 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ItemType( LOC((yyloc)), true );
+            (yyval.node) = new SequenceType( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 582:
 
 /* Line 690 of lalr1.cc  */
-#line 5143 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5166 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new StructuredItemType(LOC((yyloc)));
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_optionally
+            );
         }
     break;
 
   case 583:
 
 /* Line 690 of lalr1.cc  */
-#line 5147 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5172 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_zero_or_more
+            );
         }
     break;
 
   case 584:
 
 /* Line 690 of lalr1.cc  */
-#line 5151 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5178 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.node) = new OccurrenceIndicator(
+                LOC((yyloc)), ParseConstants::occurs_one_or_more
+            );
         }
     break;
 
   case 585:
 
 /* Line 690 of lalr1.cc  */
-#line 5155 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5188 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -8577,101 +8597,101 @@
   case 586:
 
 /* Line 690 of lalr1.cc  */
-#line 5162 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5192 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-          TypeList* aTypeList = new TypeList(LOC ((yyloc)));
-          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
-          (yyval.node) = aTypeList;
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
     break;
 
   case 587:
 
 /* Line 690 of lalr1.cc  */
-#line 5168 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5196 "/home/markos/zorba/repo/hof-merge/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)));
-          (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+            (yyval.node) = new ItemType( LOC((yyloc)), true );
         }
     break;
 
   case 588:
 
 /* Line 690 of lalr1.cc  */
-#line 5178 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5200 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-    }
+            (yyval.node) = new StructuredItemType(LOC((yyloc)));
+        }
     break;
 
   case 589:
 
 /* Line 690 of lalr1.cc  */
-#line 5186 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5204 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new SimpleType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 590:
 
 /* Line 690 of lalr1.cc  */
-#line 5194 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5208 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 591:
 
 /* Line 690 of lalr1.cc  */
-#line 5198 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5212 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
     break;
 
   case 592:
 
 /* Line 690 of lalr1.cc  */
-#line 5202 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5219 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+          TypeList* aTypeList = new TypeList(LOC ((yyloc)));
+          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(1) - (1)].node)));
+          (yyval.node) = aTypeList;
+        }
     break;
 
   case 593:
 
 /* Line 690 of lalr1.cc  */
-#line 5206 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5225 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+          TypeList* aTypeList = dynamic_cast<TypeList *>((yysemantic_stack_[(3) - (1)].node));
+          aTypeList->push_back(dynamic_cast<SequenceType *>((yysemantic_stack_[(3) - (3)].node)));
+          (yyval.node) = (yysemantic_stack_[(3) - (1)].node);
+        }
     break;
 
   case 594:
 
 /* Line 690 of lalr1.cc  */
-#line 5210 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5235 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+      (yyval.node) = new GeneralizedAtomicType( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
     }
     break;
 
   case 595:
 
 /* Line 690 of lalr1.cc  */
-#line 5214 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5243 "/home/markos/zorba/repo/hof-merge/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 596:
 
 /* Line 690 of lalr1.cc  */
-#line 5218 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5251 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -8680,7 +8700,7 @@
   case 597:
 
 /* Line 690 of lalr1.cc  */
-#line 5222 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5255 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -8689,7 +8709,7 @@
   case 598:
 
 /* Line 690 of lalr1.cc  */
-#line 5226 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5259 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -8698,7 +8718,7 @@
   case 599:
 
 /* Line 690 of lalr1.cc  */
-#line 5230 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5263 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
@@ -8707,169 +8727,163 @@
   case 600:
 
 /* Line 690 of lalr1.cc  */
-#line 5238 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5267 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new AnyKindTest( LOC((yyloc)) );
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 601:
 
 /* Line 690 of lalr1.cc  */
-#line 5246 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5271 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 602:
 
 /* Line 690 of lalr1.cc  */
-#line 5250 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5275 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 603:
 
 /* Line 690 of lalr1.cc  */
-#line 5254 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5279 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 604:
 
 /* Line 690 of lalr1.cc  */
-#line 5262 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5283 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new NamespaceTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 605:
 
 /* Line 690 of lalr1.cc  */
-#line 5269 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5287 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new TextTest(LOC((yyloc)));
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
     }
     break;
 
   case 606:
 
 /* Line 690 of lalr1.cc  */
-#line 5277 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5295 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = new CommentTest(LOC((yyloc)));
+      (yyval.node) = new AnyKindTest( LOC((yyloc)) );
     }
     break;
 
   case 607:
 
 /* Line 690 of lalr1.cc  */
-#line 5285 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5303 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), "" );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)));
+    }
     break;
 
   case 608:
 
 /* Line 690 of lalr1.cc  */
-#line 5289 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5307 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<ElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+    }
     break;
 
   case 609:
 
 /* Line 690 of lalr1.cc  */
-#line 5293 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5311 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
-        }
+      (yyval.node) = new DocumentTest(LOC((yyloc)), dynamic_cast<SchemaElementTest*>((yysemantic_stack_[(4) - (3)].node)));
+    }
     break;
 
   case 610:
 
 /* Line 690 of lalr1.cc  */
-#line 5301 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5319 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
-        }
+      (yyval.node) = new NamespaceTest(LOC((yyloc)));
+    }
     break;
 
   case 611:
 
 /* Line 690 of lalr1.cc  */
-#line 5305 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5326 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
-            );
-        }
+      (yyval.node) = new TextTest(LOC((yyloc)));
+    }
     break;
 
   case 612:
 
 /* Line 690 of lalr1.cc  */
-#line 5311 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5334 "/home/markos/zorba/repo/hof-merge/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))
-            );
-        }
+      (yyval.node) = new CommentTest(LOC((yyloc)));
+    }
     break;
 
   case 613:
 
 /* Line 690 of lalr1.cc  */
-#line 5317 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5342 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
+            (yyval.node) = new PITest( LOC((yyloc)), "" );
         }
     break;
 
   case 614:
 
 /* Line 690 of lalr1.cc  */
-#line 5321 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5346 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new AttributeTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
-            );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 615:
 
 /* Line 690 of lalr1.cc  */
-#line 5331 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5350 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+            (yyval.node) = new PITest( LOC((yyloc)), SYMTAB((yysemantic_stack_[(4) - (3)].sval)) );
         }
     break;
 
   case 616:
 
 /* Line 690 of lalr1.cc  */
-#line 5339 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5358 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 617:
 
 /* Line 690 of lalr1.cc  */
-#line 5343 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5362 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL
             );
         }
     break;
@@ -8877,13 +8891,10 @@
   case 618:
 
 /* Line 690 of lalr1.cc  */
-#line 5349 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5368 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)),
-                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
-                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
-                false
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)), dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
             );
         }
     break;
@@ -8891,24 +8902,19 @@
   case 619:
 
 /* Line 690 of lalr1.cc  */
-#line 5358 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5374 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)),
-                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
-                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
-                true
-            );
+            (yyval.node) = new AttributeTest( LOC((yyloc)), NULL, NULL );
         }
     break;
 
   case 620:
 
 /* Line 690 of lalr1.cc  */
-#line 5367 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5378 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, NULL, true
+            (yyval.node) = new AttributeTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node))
             );
         }
     break;
@@ -8916,141 +8922,169 @@
   case 621:
 
 /* Line 690 of lalr1.cc  */
-#line 5373 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5388 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
-            );
+            (yyval.node) = new SchemaAttributeTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
   case 622:
 
 /* Line 690 of lalr1.cc  */
-#line 5379 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5396 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new ElementTest(
-                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
-            );
+            (yyval.node) = new ElementTest( LOC((yyloc)), NULL, NULL, true );
         }
     break;
 
   case 623:
 
 /* Line 690 of lalr1.cc  */
-#line 5389 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5400 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)), NULL, true
+            );
         }
     break;
 
   case 624:
 
 /* Line 690 of lalr1.cc  */
-#line 5406 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5406 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                false
+            );
         }
     break;
 
   case 625:
 
 /* Line 690 of lalr1.cc  */
-#line 5413 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5415 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)),
+                static_cast<QName*>((yysemantic_stack_[(6) - (3)].expr)),
+                dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)),
+                true
+            );
         }
     break;
 
   case 626:
 
 /* Line 690 of lalr1.cc  */
-#line 5428 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5424 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, NULL, true
+            );
         }
     break;
 
   case 627:
 
 /* Line 690 of lalr1.cc  */
-#line 5464 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5430 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), false
+            );
+        }
     break;
 
   case 628:
 
 /* Line 690 of lalr1.cc  */
-#line 5468 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5436 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = (yysemantic_stack_[(1) - (1)].expr);
-    }
+            (yyval.node) = new ElementTest(
+                LOC((yyloc)), NULL, dynamic_cast<TypeName*>((yysemantic_stack_[(6) - (5)].node)), true
+            );
+        }
     break;
 
   case 629:
 
 /* Line 690 of lalr1.cc  */
-#line 5476 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5446 "/home/markos/zorba/repo/hof-merge/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));
-    }
+            (yyval.node) = new SchemaElementTest( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(4) - (3)].expr)) );
+        }
     break;
 
   case 630:
 
 /* Line 690 of lalr1.cc  */
-#line 5484 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5463 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.expr) = new InlineFunction(LOC((yyloc)),
-                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theParams,
-                              &*(yysemantic_stack_[(3) - (2)].fnsig)->theReturnType,
-                              (yysemantic_stack_[(3) - (3)].expr));
-      delete (yysemantic_stack_[(3) - (2)].fnsig);
-    }
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
+        }
     break;
 
   case 631:
 
 /* Line 690 of lalr1.cc  */
-#line 5496 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5470 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.node) = new TypeName( LOC((yyloc)), static_cast<QName*>((yysemantic_stack_[(2) - (1)].expr)), true );
+        }
     break;
 
   case 632:
 
 /* Line 690 of lalr1.cc  */
-#line 5500 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5485 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-    }
+            (yyval.expr) = new StringLiteral( LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
+        }
     break;
 
   case 633:
 
 /* Line 690 of lalr1.cc  */
-#line 5508 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5512 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
+
+  case 634:
+
+/* Line 690 of lalr1.cc  */
+#line 5516 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+    }
+    break;
+
+  case 635:
+
+/* Line 690 of lalr1.cc  */
+#line 5524 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       (yyval.node) = new AnyFunctionTest(LOC((yyloc)));
     }
     break;
 
-  case 634:
+  case 636:
 
 /* Line 690 of lalr1.cc  */
-#line 5516 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5532 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)), dynamic_cast<SequenceType *>((yysemantic_stack_[(5) - (5)].node)));
         }
     break;
 
-  case 635:
+  case 637:
 
 /* Line 690 of lalr1.cc  */
-#line 5520 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5536 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new TypedFunctionTest(LOC ((yyloc)),
               dynamic_cast<TypeList *>((yysemantic_stack_[(6) - (3)].node)),
@@ -9058,19 +9092,19 @@
         }
     break;
 
-  case 636:
+  case 638:
 
 /* Line 690 of lalr1.cc  */
-#line 5531 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5547 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
            (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 637:
+  case 639:
 
 /* Line 690 of lalr1.cc  */
-#line 5548 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5564 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::strict_validation
@@ -9078,10 +9112,10 @@
         }
     break;
 
-  case 638:
+  case 640:
 
 /* Line 690 of lalr1.cc  */
-#line 5554 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5570 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::lax_validation
@@ -9089,10 +9123,10 @@
         }
     break;
 
-  case 639:
+  case 641:
 
 /* Line 690 of lalr1.cc  */
-#line 5560 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5576 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new RevalidationDecl(
                 LOC((yyloc)), StaticContextConsts::skip_validation
@@ -9100,53 +9134,33 @@
         }
     break;
 
-  case 640:
-
-/* Line 690 of lalr1.cc  */
-#line 5570 "/home/markos/zorba/repo/ns-nodes/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 641:
-
-/* Line 690 of lalr1.cc  */
-#line 5574 "/home/markos/zorba/repo/ns-nodes/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 642:
 
 /* Line 690 of lalr1.cc  */
-#line 5580 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5586 "/home/markos/zorba/repo/hof-merge/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)
-            );
+            (yyval.expr) = new InsertExpr( LOC((yyloc)), store::UpdateConsts::INTO, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 643:
 
 /* Line 690 of lalr1.cc  */
-#line 5586 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5590 "/home/markos/zorba/repo/hof-merge/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) );
+            (yyval.expr) = new InsertExpr(
+                LOC((yyloc)), store::UpdateConsts::AS_FIRST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
+            );
         }
     break;
 
   case 644:
 
 /* Line 690 of lalr1.cc  */
-#line 5590 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5596 "/home/markos/zorba/repo/hof-merge/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)
+                LOC((yyloc)), store::UpdateConsts::AS_LAST_INTO, (yysemantic_stack_[(7) - (3)].expr), (yysemantic_stack_[(7) - (7)].expr)
             );
         }
     break;
@@ -9154,19 +9168,19 @@
   case 645:
 
 /* Line 690 of lalr1.cc  */
-#line 5596 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5602 "/home/markos/zorba/repo/hof-merge/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::AFTER, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
   case 646:
 
 /* Line 690 of lalr1.cc  */
-#line 5600 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5606 "/home/markos/zorba/repo/hof-merge/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)
+                LOC ((yyloc)), store::UpdateConsts::BEFORE, (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr)
             );
         }
     break;
@@ -9174,7 +9188,27 @@
   case 647:
 
 /* Line 690 of lalr1.cc  */
-#line 5606 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5612 "/home/markos/zorba/repo/hof-merge/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 648:
+
+/* Line 690 of lalr1.cc  */
+#line 5616 "/home/markos/zorba/repo/hof-merge/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 649:
+
+/* Line 690 of lalr1.cc  */
+#line 5622 "/home/markos/zorba/repo/hof-merge/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)
@@ -9182,10 +9216,10 @@
         }
     break;
 
-  case 648:
+  case 650:
 
 /* Line 690 of lalr1.cc  */
-#line 5612 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5628 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new InsertExpr(
                 LOC ((yyloc)),
@@ -9194,39 +9228,39 @@
         }
     break;
 
-  case 649:
-
-/* Line 690 of lalr1.cc  */
-#line 5619 "/home/markos/zorba/repo/ns-nodes/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 650:
-
-/* Line 690 of lalr1.cc  */
-#line 5629 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
-        }
-    break;
-
   case 651:
 
 /* Line 690 of lalr1.cc  */
-#line 5634 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5635 "/home/markos/zorba/repo/hof-merge/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 652:
 
 /* Line 690 of lalr1.cc  */
-#line 5642 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5645 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 653:
+
+/* Line 690 of lalr1.cc  */
+#line 5650 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.expr) = new DeleteExpr( LOC ((yyloc)), (yysemantic_stack_[(3) - (3)].expr) );
+        }
+    break;
+
+  case 654:
+
+/* Line 690 of lalr1.cc  */
+#line 5658 "/home/markos/zorba/repo/hof-merge/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)
@@ -9234,10 +9268,10 @@
         }
     break;
 
-  case 653:
+  case 655:
 
 /* Line 690 of lalr1.cc  */
-#line 5648 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5664 "/home/markos/zorba/repo/hof-merge/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)
@@ -9245,29 +9279,29 @@
         }
     break;
 
-  case 654:
+  case 656:
 
 /* Line 690 of lalr1.cc  */
-#line 5658 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5674 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new RenameExpr( LOC ((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 655:
+  case 657:
 
 /* Line 690 of lalr1.cc  */
-#line 5680 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5696 "/home/markos/zorba/repo/hof-merge/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 656:
+  case 658:
 
 /* Line 690 of lalr1.cc  */
-#line 5689 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5705 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
       CopyVarList* lList = new CopyVarList(LOC((yyloc)));
       lList->push_back (dynamic_cast<VarBinding*> ((yysemantic_stack_[(1) - (1)].expr)));
@@ -9275,10 +9309,10 @@
     }
     break;
 
-  case 657:
+  case 659:
 
 /* Line 690 of lalr1.cc  */
-#line 5695 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5711 "/home/markos/zorba/repo/hof-merge/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));
@@ -9287,28 +9321,28 @@
     }
     break;
 
-  case 658:
+  case 660:
 
 /* Line 690 of lalr1.cc  */
-#line 5708 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5724 "/home/markos/zorba/repo/hof-merge/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 659:
+  case 661:
 
 /* Line 690 of lalr1.cc  */
-#line 5722 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5738 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.expr) = new TryExpr( LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr) );
         }
     break;
 
-  case 660:
+  case 662:
 
 /* Line 690 of lalr1.cc  */
-#line 5729 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5745 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             CatchListExpr *cle = new CatchListExpr( LOC((yyloc)) );
             cle->push_back( static_cast<CatchExpr*>((yysemantic_stack_[(1) - (1)].expr)) );
@@ -9316,10 +9350,10 @@
         }
     break;
 
-  case 661:
+  case 663:
 
 /* Line 690 of lalr1.cc  */
-#line 5735 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5751 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             CatchListExpr *cle = dynamic_cast<CatchListExpr*>((yysemantic_stack_[(2) - (1)].expr));
             if ( cle )
@@ -9328,29 +9362,29 @@
         }
     break;
 
-  case 662:
-
-/* Line 690 of lalr1.cc  */
-#line 5745 "/home/markos/zorba/repo/ns-nodes/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 663:
-
-/* Line 690 of lalr1.cc  */
-#line 5754 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
-    }
-    break;
-
   case 664:
 
 /* Line 690 of lalr1.cc  */
-#line 5762 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5761 "/home/markos/zorba/repo/hof-merge/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 665:
+
+/* Line 690 of lalr1.cc  */
+#line 5770 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+      (yyval.expr) = (yysemantic_stack_[(3) - (2)].expr);
+    }
+    break;
+
+  case 666:
+
+/* Line 690 of lalr1.cc  */
+#line 5778 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             CatchExpr::NameTestList *ntl = new CatchExpr::NameTestList;
             ntl->push_back( static_cast<NameTest*>((yysemantic_stack_[(1) - (1)].node)) );
@@ -9358,10 +9392,10 @@
         }
     break;
 
-  case 665:
+  case 667:
 
 /* Line 690 of lalr1.cc  */
-#line 5768 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5784 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             CatchExpr::NameTestList *ntl =
                 static_cast<CatchExpr::NameTestList*>((yysemantic_stack_[(3) - (1)].name_test_list));
@@ -9370,76 +9404,58 @@
         }
     break;
 
-  case 666:
+  case 668:
 
 /* Line 690 of lalr1.cc  */
-#line 5786 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5802 "/home/markos/zorba/repo/hof-merge/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 667:
+  case 669:
 
 /* Line 690 of lalr1.cc  */
-#line 5794 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5810 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = NULL;
         }
     break;
 
-  case 668:
+  case 670:
 
 /* Line 690 of lalr1.cc  */
-#line 5798 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5814 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.pos_filter_list) = (yysemantic_stack_[(1) - (1)].pos_filter_list);
         }
     break;
 
-  case 669:
+  case 671:
 
 /* Line 690 of lalr1.cc  */
-#line 5805 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5821 "/home/markos/zorba/repo/hof-merge/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 670:
+  case 672:
 
 /* Line 690 of lalr1.cc  */
-#line 5810 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5826 "/home/markos/zorba/repo/hof-merge/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 671:
-
-/* Line 690 of lalr1.cc  */
-#line 5818 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 672:
-
-/* Line 690 of lalr1.cc  */
-#line 5822 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
-        }
-    break;
-
   case 673:
 
 /* Line 690 of lalr1.cc  */
-#line 5829 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5834 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9448,16 +9464,16 @@
   case 674:
 
 /* Line 690 of lalr1.cc  */
-#line 5833 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5838 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
+            (yyval.node) = new FTOr( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
   case 675:
 
 /* Line 690 of lalr1.cc  */
-#line 5840 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5845 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9466,16 +9482,16 @@
   case 676:
 
 /* Line 690 of lalr1.cc  */
-#line 5844 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5849 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
+            (yyval.node) = new FTAnd( LOC((yyloc)), (yysemantic_stack_[(3) - (1)].node), (yysemantic_stack_[(3) - (3)].node) );
         }
     break;
 
   case 677:
 
 /* Line 690 of lalr1.cc  */
-#line 5851 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5856 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9484,7 +9500,25 @@
   case 678:
 
 /* Line 690 of lalr1.cc  */
-#line 5855 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5860 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = new FTMildNot( LOC((yyloc)), (yysemantic_stack_[(4) - (1)].node), (yysemantic_stack_[(4) - (4)].node) );
+        }
+    break;
+
+  case 679:
+
+/* Line 690 of lalr1.cc  */
+#line 5867 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 680:
+
+/* Line 690 of lalr1.cc  */
+#line 5871 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnaryNot(
                 LOC((yyloc)), dynamic_cast<FTPrimaryWithOptions*>((yysemantic_stack_[(2) - (2)].node))
@@ -9492,10 +9526,10 @@
         }
     break;
 
-  case 679:
+  case 681:
 
 /* Line 690 of lalr1.cc  */
-#line 5864 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5880 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTPrimaryWithOptions(
                 LOC((yyloc)),
@@ -9506,28 +9540,10 @@
         }
     break;
 
-  case 680:
-
-/* Line 690 of lalr1.cc  */
-#line 5876 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 681:
-
-/* Line 690 of lalr1.cc  */
-#line 5880 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 682:
 
 /* Line 690 of lalr1.cc  */
-#line 5887 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5892 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = NULL;
         }
@@ -9536,7 +9552,7 @@
   case 683:
 
 /* Line 690 of lalr1.cc  */
-#line 5891 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5896 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9545,16 +9561,34 @@
   case 684:
 
 /* Line 690 of lalr1.cc  */
-#line 5899 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5903 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 685:
+
+/* Line 690 of lalr1.cc  */
+#line 5907 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 686:
+
+/* Line 690 of lalr1.cc  */
+#line 5915 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWeight( LOC((yyloc)), dynamic_cast<exprnode*>((yysemantic_stack_[(4) - (3)].expr)) );
         }
     break;
 
-  case 685:
+  case 687:
 
 /* Line 690 of lalr1.cc  */
-#line 5907 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsTimes(
                 LOC((yyloc)),
@@ -9564,37 +9598,19 @@
         }
     break;
 
-  case 686:
+  case 688:
 
 /* Line 690 of lalr1.cc  */
-#line 5915 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5931 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(3) - (2)].node);
         }
     break;
 
-  case 687:
-
-/* Line 690 of lalr1.cc  */
-#line 5919 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 688:
-
-/* Line 690 of lalr1.cc  */
-#line 5926 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 689:
 
 /* Line 690 of lalr1.cc  */
-#line 5930 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9603,7 +9619,25 @@
   case 690:
 
 /* Line 690 of lalr1.cc  */
-#line 5938 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5942 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 691:
+
+/* Line 690 of lalr1.cc  */
+#line 5946 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 692:
+
+/* Line 690 of lalr1.cc  */
+#line 5954 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTExtensionSelection(
                 LOC((yyloc)),
@@ -9613,28 +9647,28 @@
         }
     break;
 
-  case 691:
-
-/* Line 690 of lalr1.cc  */
-#line 5949 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 692:
-
-/* Line 690 of lalr1.cc  */
-#line 5953 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 693:
 
 /* Line 690 of lalr1.cc  */
-#line 5961 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5965 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 694:
+
+/* Line 690 of lalr1.cc  */
+#line 5969 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 695:
+
+/* Line 690 of lalr1.cc  */
+#line 5977 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWords(
                 LOC((yyloc)),
@@ -9644,10 +9678,10 @@
         }
     break;
 
-  case 694:
+  case 696:
 
 /* Line 690 of lalr1.cc  */
-#line 5973 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5989 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), static_cast<StringLiteral*>((yysemantic_stack_[(1) - (1)].expr)), NULL
@@ -9655,10 +9689,10 @@
         }
     break;
 
-  case 695:
+  case 697:
 
 /* Line 690 of lalr1.cc  */
-#line 5979 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 5995 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWordsValue(
                 LOC((yyloc)), NULL, dynamic_cast<exprnode*>((yysemantic_stack_[(3) - (2)].expr))
@@ -9666,109 +9700,91 @@
         }
     break;
 
-  case 696:
+  case 698:
 
 /* Line 690 of lalr1.cc  */
-#line 5988 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6004 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::any );
         }
     break;
 
-  case 697:
-
-/* Line 690 of lalr1.cc  */
-#line 5992 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 698:
-
-/* Line 690 of lalr1.cc  */
-#line 6000 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
-        }
-    break;
-
   case 699:
 
 /* Line 690 of lalr1.cc  */
-#line 6004 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6008 "/home/markos/zorba/repo/hof-merge/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 700:
 
 /* Line 690 of lalr1.cc  */
-#line 6008 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6016 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
     break;
 
   case 701:
 
 /* Line 690 of lalr1.cc  */
-#line 6015 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6020 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::any;
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), (yysemantic_stack_[(2) - (2)].ft_anyall_value) );
         }
     break;
 
   case 702:
 
 /* Line 690 of lalr1.cc  */
-#line 6019 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6024 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
+            (yyval.node) = new FTAnyallOption( LOC((yyloc)), ft_anyall_mode::phrase );
         }
     break;
 
   case 703:
 
 /* Line 690 of lalr1.cc  */
-#line 6026 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6031 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::all;
+            (yyval.ft_anyall_value) = ft_anyall_mode::any;
         }
     break;
 
   case 704:
 
 /* Line 690 of lalr1.cc  */
-#line 6030 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6035 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
+            (yyval.ft_anyall_value) = ft_anyall_mode::any_word;
         }
     break;
 
   case 705:
 
 /* Line 690 of lalr1.cc  */
-#line 6038 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6042 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.ft_anyall_value) = ft_anyall_mode::all;
         }
     break;
 
   case 706:
 
 /* Line 690 of lalr1.cc  */
-#line 6042 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6046 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+            (yyval.ft_anyall_value) = ft_anyall_mode::all_words;
         }
     break;
 
   case 707:
 
 /* Line 690 of lalr1.cc  */
-#line 6046 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6054 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9777,7 +9793,7 @@
   case 708:
 
 /* Line 690 of lalr1.cc  */
-#line 6050 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6058 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9786,7 +9802,7 @@
   case 709:
 
 /* Line 690 of lalr1.cc  */
-#line 6054 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6062 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9795,16 +9811,34 @@
   case 710:
 
 /* Line 690 of lalr1.cc  */
-#line 6062 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6066 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 711:
+
+/* Line 690 of lalr1.cc  */
+#line 6070 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 712:
+
+/* Line 690 of lalr1.cc  */
+#line 6078 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTOrder( LOC((yyloc)) );
         }
     break;
 
-  case 711:
+  case 713:
 
 /* Line 690 of lalr1.cc  */
-#line 6070 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6086 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWindow(
                 LOC((yyloc)),
@@ -9814,10 +9848,10 @@
         }
     break;
 
-  case 712:
+  case 714:
 
 /* Line 690 of lalr1.cc  */
-#line 6082 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6098 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDistance(
                 LOC((yyloc)),
@@ -9827,37 +9861,37 @@
         }
     break;
 
-  case 713:
+  case 715:
 
 /* Line 690 of lalr1.cc  */
-#line 6094 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6110 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::words );
         }
     break;
 
-  case 714:
+  case 716:
 
 /* Line 690 of lalr1.cc  */
-#line 6098 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6114 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::sentences );
         }
     break;
 
-  case 715:
+  case 717:
 
 /* Line 690 of lalr1.cc  */
-#line 6102 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6118 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTUnit( LOC((yyloc)), ft_unit::paragraphs );
         }
     break;
 
-  case 716:
+  case 718:
 
 /* Line 690 of lalr1.cc  */
-#line 6110 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6126 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             FTMatchOptions *mo = new FTMatchOptions( LOC((yyloc)) );
             mo->push_back( dynamic_cast<FTMatchOption*>((yysemantic_stack_[(2) - (2)].node)) );
@@ -9865,10 +9899,10 @@
         }
     break;
 
-  case 717:
+  case 719:
 
 /* Line 690 of lalr1.cc  */
-#line 6116 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6132 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -9876,28 +9910,10 @@
         }
     break;
 
-  case 718:
-
-/* Line 690 of lalr1.cc  */
-#line 6126 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 719:
-
-/* Line 690 of lalr1.cc  */
-#line 6130 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 720:
 
 /* Line 690 of lalr1.cc  */
-#line 6134 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6142 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9906,7 +9922,7 @@
   case 721:
 
 /* Line 690 of lalr1.cc  */
-#line 6138 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6146 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9915,7 +9931,7 @@
   case 722:
 
 /* Line 690 of lalr1.cc  */
-#line 6142 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6150 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9924,7 +9940,7 @@
   case 723:
 
 /* Line 690 of lalr1.cc  */
-#line 6146 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6154 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9933,7 +9949,7 @@
   case 724:
 
 /* Line 690 of lalr1.cc  */
-#line 6150 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6158 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9942,7 +9958,7 @@
   case 725:
 
 /* Line 690 of lalr1.cc  */
-#line 6154 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6162 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -9951,43 +9967,61 @@
   case 726:
 
 /* Line 690 of lalr1.cc  */
-#line 6162 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6166 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 727:
+
+/* Line 690 of lalr1.cc  */
+#line 6170 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 728:
+
+/* Line 690 of lalr1.cc  */
+#line 6178 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::sensitive );
         }
     break;
 
-  case 727:
+  case 729:
 
 /* Line 690 of lalr1.cc  */
-#line 6166 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6182 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::insensitive );
         }
     break;
 
-  case 728:
+  case 730:
 
 /* Line 690 of lalr1.cc  */
-#line 6170 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6186 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::lower );
         }
     break;
 
-  case 729:
+  case 731:
 
 /* Line 690 of lalr1.cc  */
-#line 6174 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6190 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTCaseOption( LOC((yyloc)), ft_case_mode::upper );
         }
     break;
 
-  case 730:
+  case 732:
 
 /* Line 690 of lalr1.cc  */
-#line 6182 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6198 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::sensitive
@@ -9995,10 +10029,10 @@
         }
     break;
 
-  case 731:
+  case 733:
 
 /* Line 690 of lalr1.cc  */
-#line 6188 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6204 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTDiacriticsOption(
                 LOC((yyloc)), ft_diacritics_mode::insensitive
@@ -10006,10 +10040,10 @@
         }
     break;
 
-  case 732:
+  case 734:
 
 /* Line 690 of lalr1.cc  */
-#line 6198 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6214 "/home/markos/zorba/repo/hof-merge/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))
@@ -10017,28 +10051,28 @@
         }
     break;
 
-  case 733:
+  case 735:
 
 /* Line 690 of lalr1.cc  */
-#line 6208 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6224 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::stemming );
         }
     break;
 
-  case 734:
+  case 736:
 
 /* Line 690 of lalr1.cc  */
-#line 6212 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6228 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStemOption( LOC((yyloc)), ft_stem_mode::no_stemming );
         }
     break;
 
-  case 735:
+  case 737:
 
 /* Line 690 of lalr1.cc  */
-#line 6220 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6236 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             FTThesaurusOption::thesaurus_id_list_t *til = NULL;
             if ( (yysemantic_stack_[(2) - (2)].node) ) {
@@ -10050,10 +10084,10 @@
         }
     break;
 
-  case 736:
+  case 738:
 
 /* Line 690 of lalr1.cc  */
-#line 6230 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6246 "/home/markos/zorba/repo/hof-merge/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) ) {
@@ -10066,75 +10100,75 @@
         }
     break;
 
-  case 737:
+  case 739:
 
 /* Line 690 of lalr1.cc  */
-#line 6241 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6257 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTThesaurusOption( LOC((yyloc)), NULL, false, true );
         }
     break;
 
-  case 738:
-
-/* Line 690 of lalr1.cc  */
-#line 6248 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 739:
-
-/* Line 690 of lalr1.cc  */
-#line 6252 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
   case 740:
 
 /* Line 690 of lalr1.cc  */
-#line 6259 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6264 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 741:
+
+/* Line 690 of lalr1.cc  */
+#line 6268 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 742:
+
+/* Line 690 of lalr1.cc  */
+#line 6275 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = NULL;
         }
     break;
 
-  case 741:
+  case 743:
 
 /* Line 690 of lalr1.cc  */
-#line 6263 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6279 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.thesaurus_id_list) = (yysemantic_stack_[(2) - (2)].thesaurus_id_list);
         }
     break;
 
-  case 742:
+  case 744:
 
 /* Line 690 of lalr1.cc  */
-#line 6270 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6286 "/home/markos/zorba/repo/hof-merge/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 743:
+  case 745:
 
 /* Line 690 of lalr1.cc  */
-#line 6275 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6291 "/home/markos/zorba/repo/hof-merge/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 744:
+  case 746:
 
 /* Line 690 of lalr1.cc  */
-#line 6284 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6300 "/home/markos/zorba/repo/hof-merge/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))
@@ -10142,46 +10176,46 @@
         }
     break;
 
-  case 745:
+  case 747:
 
 /* Line 690 of lalr1.cc  */
-#line 6293 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6309 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.sval) = 0;
         }
     break;
 
-  case 746:
+  case 748:
 
 /* Line 690 of lalr1.cc  */
-#line 6297 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6313 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.sval) = (yysemantic_stack_[(2) - (2)].sval);
         }
     break;
 
-  case 747:
-
-/* Line 690 of lalr1.cc  */
-#line 6304 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = NULL;
-        }
-    break;
-
-  case 748:
-
-/* Line 690 of lalr1.cc  */
-#line 6308 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
-        }
-    break;
-
   case 749:
 
 /* Line 690 of lalr1.cc  */
-#line 6316 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6320 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = NULL;
+        }
+    break;
+
+  case 750:
+
+/* Line 690 of lalr1.cc  */
+#line 6324 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+            (yyval.node) = (yysemantic_stack_[(2) - (1)].node);
+        }
+    break;
+
+  case 751:
+
+/* Line 690 of lalr1.cc  */
+#line 6332 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)),
@@ -10192,10 +10226,10 @@
         }
     break;
 
-  case 750:
+  case 752:
 
 /* Line 690 of lalr1.cc  */
-#line 6325 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6341 "/home/markos/zorba/repo/hof-merge/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
@@ -10204,10 +10238,10 @@
         }
     break;
 
-  case 751:
+  case 753:
 
 /* Line 690 of lalr1.cc  */
-#line 6332 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6348 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordOption(
                 LOC((yyloc)), NULL, NULL, ft_stop_words_mode::without
@@ -10215,28 +10249,28 @@
         }
     break;
 
-  case 752:
+  case 754:
 
 /* Line 690 of lalr1.cc  */
-#line 6342 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6358 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)), NULL );
         }
     break;
 
-  case 753:
+  case 755:
 
 /* Line 690 of lalr1.cc  */
-#line 6346 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6362 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWords( LOC((yyloc)), "", (yysemantic_stack_[(3) - (2)].strlist) );
         }
     break;
 
-  case 754:
+  case 756:
 
 /* Line 690 of lalr1.cc  */
-#line 6353 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6369 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             string_list_t *sl = new string_list_t;
             sl->push_back( SYMTAB((yysemantic_stack_[(1) - (1)].sval)) );
@@ -10244,10 +10278,10 @@
         }
     break;
 
-  case 755:
+  case 757:
 
 /* Line 690 of lalr1.cc  */
-#line 6359 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6375 "/home/markos/zorba/repo/hof-merge/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)) );
@@ -10255,38 +10289,38 @@
         }
     break;
 
-  case 756:
+  case 758:
 
 /* Line 690 of lalr1.cc  */
-#line 6368 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6384 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = NULL;
         }
     break;
 
-  case 757:
+  case 759:
 
 /* Line 690 of lalr1.cc  */
-#line 6372 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6388 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.incl_excl_list) = (yysemantic_stack_[(1) - (1)].incl_excl_list);
         }
     break;
 
-  case 758:
+  case 760:
 
 /* Line 690 of lalr1.cc  */
-#line 6379 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6395 "/home/markos/zorba/repo/hof-merge/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 759:
+  case 761:
 
 /* Line 690 of lalr1.cc  */
-#line 6384 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6400 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             FTStopWordOption::incl_excl_list_t *iel = (yysemantic_stack_[(2) - (1)].incl_excl_list);
             if ( !iel )
@@ -10296,10 +10330,10 @@
         }
     break;
 
-  case 760:
+  case 762:
 
 /* Line 690 of lalr1.cc  */
-#line 6396 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6412 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10309,10 +10343,10 @@
         }
     break;
 
-  case 761:
+  case 763:
 
 /* Line 690 of lalr1.cc  */
-#line 6404 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6420 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTStopWordsInclExcl(
                 LOC((yyloc)),
@@ -10322,109 +10356,109 @@
         }
     break;
 
-  case 762:
+  case 764:
 
 /* Line 690 of lalr1.cc  */
-#line 6416 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6432 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTLanguageOption( LOC((yyloc)), SYMTAB((yysemantic_stack_[(2) - (2)].sval)) );
         }
     break;
 
-  case 763:
+  case 765:
 
 /* Line 690 of lalr1.cc  */
-#line 6424 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6440 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::with );
         }
     break;
 
-  case 764:
+  case 766:
 
 /* Line 690 of lalr1.cc  */
-#line 6428 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6444 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTWildCardOption( LOC((yyloc)), ft_wild_card_mode::without );
         }
     break;
 
-  case 765:
+  case 767:
 
 /* Line 690 of lalr1.cc  */
-#line 6436 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6452 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_start );
         }
     break;
 
-  case 766:
+  case 768:
 
 /* Line 690 of lalr1.cc  */
-#line 6440 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6456 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::at_end );
         }
     break;
 
-  case 767:
+  case 769:
 
 /* Line 690 of lalr1.cc  */
-#line 6444 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6460 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTContent( LOC((yyloc)), ft_content_mode::entire );
         }
     break;
 
-  case 768:
+  case 770:
 
 /* Line 690 of lalr1.cc  */
-#line 6452 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6468 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTTimes( LOC((yyloc)), dynamic_cast<FTRange*>((yysemantic_stack_[(3) - (2)].node)) );
         }
     break;
 
-  case 769:
+  case 771:
 
 /* Line 690 of lalr1.cc  */
-#line 6460 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6476 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::exactly, (yysemantic_stack_[(2) - (2)].expr) );
         }
     break;
 
-  case 770:
+  case 772:
 
 /* Line 690 of lalr1.cc  */
-#line 6464 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6480 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_least, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 771:
+  case 773:
 
 /* Line 690 of lalr1.cc  */
-#line 6468 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6484 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTRange( LOC((yyloc)), ft_range_mode::at_most, (yysemantic_stack_[(3) - (3)].expr) );
         }
     break;
 
-  case 772:
+  case 774:
 
 /* Line 690 of lalr1.cc  */
-#line 6472 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6488 "/home/markos/zorba/repo/hof-merge/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 773:
+  case 775:
 
 /* Line 690 of lalr1.cc  */
-#line 6480 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6496 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10434,10 +10468,10 @@
         }
     break;
 
-  case 774:
+  case 776:
 
 /* Line 690 of lalr1.cc  */
-#line 6488 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6504 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTScope(
                 LOC((yyloc)),
@@ -10447,105 +10481,105 @@
         }
     break;
 
-  case 775:
+  case 777:
 
 /* Line 690 of lalr1.cc  */
-#line 6500 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6516 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::sentence );
         }
     break;
 
-  case 776:
+  case 778:
 
 /* Line 690 of lalr1.cc  */
-#line 6504 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6520 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTBigUnit( LOC((yyloc)), ft_big_unit::paragraph );
         }
     break;
 
-  case 777:
+  case 779:
 
 /* Line 690 of lalr1.cc  */
-#line 6512 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6528 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
             (yyval.node) = new FTIgnoreOption( LOC((yyloc)), static_cast<UnionExpr*>((yysemantic_stack_[(3) - (3)].expr)) );
         }
     break;
 
-  case 778:
+  case 780:
 
 /* Line 690 of lalr1.cc  */
-#line 6526 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6542 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), NULL );
         }
     break;
 
-  case 779:
+  case 781:
 
 /* Line 690 of lalr1.cc  */
-#line 6530 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6546 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayConstructor( LOC((yyloc)), (yysemantic_stack_[(3) - (2)].expr) );
         }
     break;
 
-  case 780:
+  case 782:
 
 /* Line 690 of lalr1.cc  */
-#line 6537 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6553 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, false);
         }
     break;
 
-  case 781:
+  case 783:
 
 /* Line 690 of lalr1.cc  */
-#line 6542 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6558 "/home/markos/zorba/repo/hof-merge/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 782:
+  case 784:
 
 /* Line 690 of lalr1.cc  */
-#line 6550 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6566 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           // TODO: fill in with the correct constructor
           (yyval.expr) = new JSONObjectConstructor(LOC((yyloc)), NULL, true);
         }
     break;
 
-  case 783:
+  case 785:
 
 /* Line 690 of lalr1.cc  */
-#line 6555 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6571 "/home/markos/zorba/repo/hof-merge/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 784:
+  case 786:
 
 /* Line 690 of lalr1.cc  */
-#line 6564 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6580 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONDirectObjectConstructor(LOC((yyloc)),
                                                dynamic_cast<JSONPairList*>((yysemantic_stack_[(3) - (2)].node)));
         }
     break;
 
-  case 785:
+  case 787:
 
 /* Line 690 of lalr1.cc  */
-#line 6572 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6588 "/home/markos/zorba/repo/hof-merge/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)));
@@ -10553,10 +10587,10 @@
         }
     break;
 
-  case 786:
+  case 788:
 
 /* Line 690 of lalr1.cc  */
-#line 6578 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6594 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (1)].node));
           assert(jpl);
@@ -10565,10 +10599,10 @@
         }
     break;
 
-  case 787:
+  case 789:
 
 /* Line 690 of lalr1.cc  */
-#line 6588 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6604 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONObjectInsertExpr(LOC((yyloc)),
                                         (yysemantic_stack_[(5) - (3)].expr),
@@ -10576,10 +10610,10 @@
         }
     break;
 
-  case 788:
+  case 790:
 
 /* Line 690 of lalr1.cc  */
-#line 6594 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6610 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           JSONPairList* jpl = dynamic_cast<JSONPairList*>((yysemantic_stack_[(5) - (3)].node));
           (yyval.expr) = new JSONObjectInsertExpr(
@@ -10591,28 +10625,28 @@
         }
     break;
 
-  case 789:
+  case 791:
 
 /* Line 690 of lalr1.cc  */
-#line 6604 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6620 "/home/markos/zorba/repo/hof-merge/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 790:
+  case 792:
 
 /* Line 690 of lalr1.cc  */
-#line 6611 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6627 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.expr) = new JSONArrayAppendExpr(LOC((yyloc)), (yysemantic_stack_[(5) - (3)].expr), (yysemantic_stack_[(5) - (5)].expr));
         }
     break;
 
-  case 791:
+  case 793:
 
 /* Line 690 of lalr1.cc  */
-#line 6618 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6634 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(3) - (3)].expr));
@@ -10636,10 +10670,10 @@
         }
     break;
 
-  case 792:
+  case 794:
 
 /* Line 690 of lalr1.cc  */
-#line 6643 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6659 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(5) - (3)].expr));
@@ -10666,10 +10700,10 @@
         }
     break;
 
-  case 793:
+  case 795:
 
 /* Line 690 of lalr1.cc  */
-#line 6671 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6687 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           rchandle<DynamicFunctionInvocation> lDynamicFunctionInvocation =
           dynamic_cast<DynamicFunctionInvocation*>((yysemantic_stack_[(7) - (5)].expr));
@@ -10696,28 +10730,10 @@
         }
     break;
 
-  case 794:
-
-/* Line 690 of lalr1.cc  */
-#line 6699 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
-  case 795:
-
-/* Line 690 of lalr1.cc  */
-#line 6703 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
-    {
-          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
-        }
-    break;
-
   case 796:
 
 /* Line 690 of lalr1.cc  */
-#line 6707 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6715 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
         }
@@ -10726,34 +10742,52 @@
   case 797:
 
 /* Line 690 of lalr1.cc  */
-#line 6714 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6719 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 798:
+
+/* Line 690 of lalr1.cc  */
+#line 6723 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
+    {
+          (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
+        }
+    break;
+
+  case 799:
+
+/* Line 690 of lalr1.cc  */
+#line 6730 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonItem);
         }
     break;
 
-  case 798:
+  case 800:
 
 /* Line 690 of lalr1.cc  */
-#line 6721 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6737 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonObject);
         }
     break;
 
-  case 799:
+  case 801:
 
 /* Line 690 of lalr1.cc  */
-#line 6728 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6744 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           (yyval.node) = new JSON_Test(LOC((yyloc)), store::StoreConsts::jsonArray);
         }
     break;
 
-  case 802:
+  case 804:
 
 /* Line 690 of lalr1.cc  */
-#line 6745 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6761 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     {
           auto_ptr<QName> lQName( static_cast<QName*>((yysemantic_stack_[(1) - (1)].expr)) );
           zstring const &tmp = lQName->get_qname();
@@ -10765,1564 +10799,1564 @@
         }
     break;
 
-  case 804:
+  case 806:
 
 /* Line 690 of lalr1.cc  */
-#line 6758 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6774 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("attribute"))); }
     break;
 
-  case 805:
+  case 807:
 
 /* Line 690 of lalr1.cc  */
-#line 6759 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6775 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("comment"))); }
     break;
 
-  case 806:
+  case 808:
 
 /* Line 690 of lalr1.cc  */
-#line 6760 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6776 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document-node"))); }
     break;
 
-  case 807:
+  case 809:
 
 /* Line 690 of lalr1.cc  */
-#line 6761 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6777 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace-node"))); }
     break;
 
-  case 808:
+  case 810:
 
 /* Line 690 of lalr1.cc  */
-#line 6762 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6778 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("element"))); }
     break;
 
-  case 809:
+  case 811:
 
 /* Line 690 of lalr1.cc  */
-#line 6763 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6779 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("item"))); }
     break;
 
-  case 810:
+  case 812:
 
 /* Line 690 of lalr1.cc  */
-#line 6764 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6780 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("if"))); }
     break;
 
-  case 811:
+  case 813:
 
 /* Line 690 of lalr1.cc  */
-#line 6765 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6781 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("node"))); }
     break;
 
-  case 812:
+  case 814:
 
 /* Line 690 of lalr1.cc  */
-#line 6766 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6782 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("processing-instruction"))); }
     break;
 
-  case 813:
+  case 815:
 
 /* Line 690 of lalr1.cc  */
-#line 6767 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6783 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-attribute"))); }
     break;
 
-  case 814:
+  case 816:
 
 /* Line 690 of lalr1.cc  */
-#line 6768 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6784 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema-element"))); }
     break;
 
-  case 815:
+  case 817:
 
 /* Line 690 of lalr1.cc  */
-#line 6769 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6785 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("text"))); }
     break;
 
-  case 816:
+  case 818:
 
 /* Line 690 of lalr1.cc  */
-#line 6770 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6786 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("typeswitch"))); }
     break;
 
-  case 817:
+  case 819:
 
 /* Line 690 of lalr1.cc  */
-#line 6771 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6787 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("switch"))); }
     break;
 
-  case 818:
+  case 820:
 
 /* Line 690 of lalr1.cc  */
-#line 6772 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6788 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty-sequence"))); }
     break;
 
-  case 819:
+  case 821:
 
 /* Line 690 of lalr1.cc  */
-#line 6773 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6789 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("while"))); }
     break;
 
-  case 821:
+  case 823:
 
 /* Line 690 of lalr1.cc  */
-#line 6778 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6794 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB((yysemantic_stack_[(1) - (1)].sval))); }
     break;
 
-  case 822:
+  case 824:
 
 /* Line 690 of lalr1.cc  */
-#line 6779 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6795 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("xquery"))); }
     break;
 
-  case 823:
+  case 825:
 
 /* Line 690 of lalr1.cc  */
-#line 6780 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6796 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("empty"))); }
     break;
 
-  case 824:
+  case 826:
 
 /* Line 690 of lalr1.cc  */
-#line 6781 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6797 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("boundary-space"))); }
     break;
 
-  case 825:
+  case 827:
 
 /* Line 690 of lalr1.cc  */
-#line 6782 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6798 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ft-option"))); }
     break;
 
-  case 826:
+  case 828:
 
 /* Line 690 of lalr1.cc  */
-#line 6783 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6799 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("base-uri"))); }
     break;
 
-  case 827:
+  case 829:
 
 /* Line 690 of lalr1.cc  */
-#line 6784 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6800 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lax"))); }
     break;
 
-  case 828:
+  case 830:
 
 /* Line 690 of lalr1.cc  */
-#line 6785 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6801 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strict"))); }
     break;
 
-  case 829:
+  case 831:
 
 /* Line 690 of lalr1.cc  */
-#line 6786 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6802 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("idiv"))); }
     break;
 
-  case 830:
+  case 832:
 
 /* Line 690 of lalr1.cc  */
-#line 6787 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6803 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("document"))); }
     break;
 
-  case 831:
+  case 833:
 
 /* Line 690 of lalr1.cc  */
-#line 6788 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6804 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ftnot"))); }
     break;
 
-  case 832:
+  case 834:
 
 /* Line 690 of lalr1.cc  */
-#line 6789 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6805 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("not"))); }
     break;
 
-  case 833:
+  case 835:
 
 /* Line 690 of lalr1.cc  */
-#line 6790 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6806 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sensitive"))); }
     break;
 
-  case 834:
+  case 836:
 
 /* Line 690 of lalr1.cc  */
-#line 6791 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6807 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insensitive"))); }
     break;
 
-  case 835:
+  case 837:
 
 /* Line 690 of lalr1.cc  */
-#line 6792 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6808 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("diacritics"))); }
     break;
 
-  case 836:
+  case 838:
 
 /* Line 690 of lalr1.cc  */
-#line 6793 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6809 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("without"))); }
     break;
 
-  case 837:
+  case 839:
 
 /* Line 690 of lalr1.cc  */
-#line 6794 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6810 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stemming"))); }
     break;
 
-  case 838:
+  case 840:
 
 /* Line 690 of lalr1.cc  */
-#line 6795 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6811 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("thesaurus"))); }
     break;
 
-  case 839:
+  case 841:
 
 /* Line 690 of lalr1.cc  */
-#line 6796 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6812 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stop"))); }
     break;
 
-  case 840:
+  case 842:
 
 /* Line 690 of lalr1.cc  */
-#line 6797 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6813 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("wildcards"))); }
     break;
 
-  case 841:
+  case 843:
 
 /* Line 690 of lalr1.cc  */
-#line 6798 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6814 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("entire"))); }
     break;
 
-  case 842:
+  case 844:
 
 /* Line 690 of lalr1.cc  */
-#line 6799 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6815 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("content"))); }
     break;
 
-  case 843:
+  case 845:
 
 /* Line 690 of lalr1.cc  */
-#line 6800 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6816 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("word"))); }
     break;
 
-  case 844:
+  case 846:
 
 /* Line 690 of lalr1.cc  */
-#line 6801 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6817 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("start"))); }
     break;
 
-  case 845:
+  case 847:
 
 /* Line 690 of lalr1.cc  */
-#line 6802 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6818 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("end"))); }
     break;
 
-  case 846:
+  case 848:
 
 /* Line 690 of lalr1.cc  */
-#line 6803 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6819 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("most"))); }
     break;
 
-  case 847:
+  case 849:
 
 /* Line 690 of lalr1.cc  */
-#line 6804 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6820 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("skip"))); }
     break;
 
-  case 848:
+  case 850:
 
 /* Line 690 of lalr1.cc  */
-#line 6805 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6821 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy"))); }
     break;
 
-  case 849:
+  case 851:
 
 /* Line 690 of lalr1.cc  */
-#line 6806 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6822 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("general"))); }
     break;
 
-  case 850:
+  case 852:
 
 /* Line 690 of lalr1.cc  */
-#line 6807 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6823 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("value"))); }
     break;
 
-  case 851:
+  case 853:
 
 /* Line 690 of lalr1.cc  */
-#line 6808 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6824 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("eq"))); }
     break;
 
-  case 852:
+  case 854:
 
 /* Line 690 of lalr1.cc  */
-#line 6809 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6825 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ne"))); }
     break;
 
-  case 853:
+  case 855:
 
 /* Line 690 of lalr1.cc  */
-#line 6810 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6826 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lt"))); }
     break;
 
-  case 854:
+  case 856:
 
 /* Line 690 of lalr1.cc  */
-#line 6811 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6827 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("le"))); }
     break;
 
-  case 855:
+  case 857:
 
 /* Line 690 of lalr1.cc  */
-#line 6812 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6828 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("gt"))); }
     break;
 
-  case 856:
+  case 858:
 
 /* Line 690 of lalr1.cc  */
-#line 6813 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6829 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ge"))); }
     break;
 
-  case 857:
+  case 859:
 
 /* Line 690 of lalr1.cc  */
-#line 6814 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6830 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("at"))); }
     break;
 
-  case 858:
+  case 860:
 
 /* Line 690 of lalr1.cc  */
-#line 6815 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6831 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("context"))); }
     break;
 
-  case 859:
+  case 861:
 
 /* Line 690 of lalr1.cc  */
-#line 6816 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6832 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("variable"))); }
     break;
 
-  case 860:
+  case 862:
 
 /* Line 690 of lalr1.cc  */
-#line 6817 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6833 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("return"))); }
     break;
 
-  case 861:
+  case 863:
 
 /* Line 690 of lalr1.cc  */
-#line 6818 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6834 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("for"))); }
     break;
 
-  case 862:
+  case 864:
 
 /* Line 690 of lalr1.cc  */
-#line 6819 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6835 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("allowing"))); }
     break;
 
-  case 863:
+  case 865:
 
 /* Line 690 of lalr1.cc  */
-#line 6820 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6836 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sliding"))); }
     break;
 
-  case 864:
+  case 866:
 
 /* Line 690 of lalr1.cc  */
-#line 6821 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6837 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("tumbling"))); }
     break;
 
-  case 865:
+  case 867:
 
 /* Line 690 of lalr1.cc  */
-#line 6822 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6838 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("previous"))); }
     break;
 
-  case 866:
+  case 868:
 
 /* Line 690 of lalr1.cc  */
-#line 6823 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6839 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("next"))); }
     break;
 
-  case 867:
+  case 869:
 
 /* Line 690 of lalr1.cc  */
-#line 6824 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6840 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("only"))); }
     break;
 
-  case 868:
+  case 870:
 
 /* Line 690 of lalr1.cc  */
-#line 6825 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6841 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("when"))); }
     break;
 
-  case 869:
+  case 871:
 
 /* Line 690 of lalr1.cc  */
-#line 6826 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6842 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("count"))); }
     break;
 
-  case 870:
+  case 872:
 
 /* Line 690 of lalr1.cc  */
-#line 6827 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6843 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("in"))); }
     break;
 
-  case 871:
+  case 873:
 
 /* Line 690 of lalr1.cc  */
-#line 6828 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6844 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("let"))); }
     break;
 
-  case 872:
+  case 874:
 
 /* Line 690 of lalr1.cc  */
-#line 6829 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6845 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("where"))); }
     break;
 
-  case 873:
+  case 875:
 
 /* Line 690 of lalr1.cc  */
-#line 6830 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6846 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("by"))); }
     break;
 
-  case 874:
+  case 876:
 
 /* Line 690 of lalr1.cc  */
-#line 6831 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6847 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("group"))); }
     break;
 
-  case 875:
+  case 877:
 
 /* Line 690 of lalr1.cc  */
-#line 6832 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6848 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("order"))); }
     break;
 
-  case 876:
+  case 878:
 
 /* Line 690 of lalr1.cc  */
-#line 6833 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6849 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("stable"))); }
     break;
 
-  case 877:
+  case 879:
 
 /* Line 690 of lalr1.cc  */
-#line 6834 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6850 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ascending"))); }
     break;
 
-  case 878:
+  case 880:
 
 /* Line 690 of lalr1.cc  */
-#line 6835 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6851 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("descending"))); }
     break;
 
-  case 879:
+  case 881:
 
 /* Line 690 of lalr1.cc  */
-#line 6836 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6852 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("greatest"))); }
     break;
 
-  case 880:
+  case 882:
 
 /* Line 690 of lalr1.cc  */
-#line 6837 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6853 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("least"))); }
     break;
 
-  case 881:
+  case 883:
 
 /* Line 690 of lalr1.cc  */
-#line 6838 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6854 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("collation"))); }
     break;
 
-  case 882:
+  case 884:
 
 /* Line 690 of lalr1.cc  */
-#line 6839 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6855 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("some"))); }
     break;
 
-  case 883:
+  case 885:
 
 /* Line 690 of lalr1.cc  */
-#line 6840 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6856 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("every"))); }
     break;
 
-  case 884:
+  case 886:
 
 /* Line 690 of lalr1.cc  */
-#line 6841 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6857 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("satisfies"))); }
     break;
 
-  case 885:
+  case 887:
 
 /* Line 690 of lalr1.cc  */
-#line 6842 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6858 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("case"))); }
     break;
 
-  case 886:
+  case 888:
 
 /* Line 690 of lalr1.cc  */
-#line 6843 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6859 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("as"))); }
     break;
 
-  case 887:
+  case 889:
 
 /* Line 690 of lalr1.cc  */
-#line 6844 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6860 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("then"))); }
     break;
 
-  case 888:
+  case 890:
 
 /* Line 690 of lalr1.cc  */
-#line 6845 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6861 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("else"))); }
     break;
 
-  case 889:
+  case 891:
 
 /* Line 690 of lalr1.cc  */
-#line 6846 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6862 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("or"))); }
     break;
 
-  case 890:
+  case 892:
 
 /* Line 690 of lalr1.cc  */
-#line 6847 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6863 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("and"))); }
     break;
 
-  case 891:
+  case 893:
 
 /* Line 690 of lalr1.cc  */
-#line 6848 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6864 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("instance"))); }
     break;
 
-  case 892:
+  case 894:
 
 /* Line 690 of lalr1.cc  */
-#line 6849 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6865 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("of"))); }
     break;
 
-  case 893:
+  case 895:
 
 /* Line 690 of lalr1.cc  */
-#line 6850 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6866 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("castable"))); }
     break;
 
-  case 894:
+  case 896:
 
 /* Line 690 of lalr1.cc  */
-#line 6851 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6867 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("to"))); }
     break;
 
-  case 895:
+  case 897:
 
 /* Line 690 of lalr1.cc  */
-#line 6852 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6868 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("div"))); }
     break;
 
-  case 896:
+  case 898:
 
 /* Line 690 of lalr1.cc  */
-#line 6853 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6869 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("mod"))); }
     break;
 
-  case 897:
+  case 899:
 
 /* Line 690 of lalr1.cc  */
-#line 6854 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6870 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("union"))); }
     break;
 
-  case 898:
+  case 900:
 
 /* Line 690 of lalr1.cc  */
-#line 6855 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6871 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("intersect"))); }
     break;
 
-  case 899:
+  case 901:
 
 /* Line 690 of lalr1.cc  */
-#line 6856 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6872 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("except"))); }
     break;
 
-  case 900:
+  case 902:
 
 /* Line 690 of lalr1.cc  */
-#line 6857 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6873 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("validate"))); }
     break;
 
-  case 901:
+  case 903:
 
 /* Line 690 of lalr1.cc  */
-#line 6858 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6874 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("type"))); }
     break;
 
-  case 902:
+  case 904:
 
 /* Line 690 of lalr1.cc  */
-#line 6859 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6875 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("cast"))); }
     break;
 
-  case 903:
+  case 905:
 
 /* Line 690 of lalr1.cc  */
-#line 6860 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6876 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("treat"))); }
     break;
 
-  case 904:
+  case 906:
 
 /* Line 690 of lalr1.cc  */
-#line 6861 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6877 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("is"))); }
     break;
 
-  case 905:
+  case 907:
 
 /* Line 690 of lalr1.cc  */
-#line 6862 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6878 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("preserve"))); }
     break;
 
-  case 906:
+  case 908:
 
 /* Line 690 of lalr1.cc  */
-#line 6863 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6879 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("strip"))); }
     break;
 
-  case 907:
+  case 909:
 
 /* Line 690 of lalr1.cc  */
-#line 6864 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6880 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("namespace"))); }
     break;
 
-  case 908:
+  case 910:
 
 /* Line 690 of lalr1.cc  */
-#line 6865 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6881 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("external"))); }
     break;
 
-  case 909:
+  case 911:
 
 /* Line 690 of lalr1.cc  */
-#line 6866 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6882 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("encoding"))); }
     break;
 
-  case 910:
+  case 912:
 
 /* Line 690 of lalr1.cc  */
-#line 6867 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6883 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-preserve"))); }
     break;
 
-  case 911:
+  case 913:
 
 /* Line 690 of lalr1.cc  */
-#line 6868 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6884 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("inherit"))); }
     break;
 
-  case 912:
+  case 914:
 
 /* Line 690 of lalr1.cc  */
-#line 6869 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6885 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("no-inherit"))); }
     break;
 
-  case 913:
+  case 915:
 
 /* Line 690 of lalr1.cc  */
-#line 6870 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6886 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("declare"))); }
     break;
 
-  case 914:
+  case 916:
 
 /* Line 690 of lalr1.cc  */
-#line 6871 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6887 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("construction"))); }
     break;
 
-  case 915:
+  case 917:
 
 /* Line 690 of lalr1.cc  */
-#line 6872 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6888 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("ordering"))); }
     break;
 
-  case 916:
+  case 918:
 
 /* Line 690 of lalr1.cc  */
-#line 6873 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6889 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("default"))); }
     break;
 
-  case 917:
+  case 919:
 
 /* Line 690 of lalr1.cc  */
-#line 6874 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6890 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("copy-namespaces"))); }
     break;
 
-  case 918:
+  case 920:
 
 /* Line 690 of lalr1.cc  */
-#line 6875 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6891 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("option"))); }
     break;
 
-  case 919:
+  case 921:
 
 /* Line 690 of lalr1.cc  */
-#line 6876 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6892 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("version"))); }
     break;
 
-  case 920:
+  case 922:
 
 /* Line 690 of lalr1.cc  */
-#line 6877 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6893 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("import"))); }
     break;
 
-  case 921:
+  case 923:
 
 /* Line 690 of lalr1.cc  */
-#line 6878 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6894 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("schema"))); }
     break;
 
-  case 922:
+  case 924:
 
 /* Line 690 of lalr1.cc  */
-#line 6879 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6895 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("module"))); }
     break;
 
-  case 923:
+  case 925:
 
 /* Line 690 of lalr1.cc  */
-#line 6880 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6896 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("function"))); }
     break;
 
-  case 924:
+  case 926:
 
 /* Line 690 of lalr1.cc  */
-#line 6881 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6897 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("score"))); }
     break;
 
-  case 925:
+  case 927:
 
 /* Line 690 of lalr1.cc  */
-#line 6882 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6898 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("contains"))); }
     break;
 
-  case 926:
+  case 928:
 
 /* Line 690 of lalr1.cc  */
-#line 6883 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6899 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("weight"))); }
     break;
 
-  case 927:
+  case 929:
 
 /* Line 690 of lalr1.cc  */
-#line 6884 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6900 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("window"))); }
     break;
 
-  case 928:
+  case 930:
 
 /* Line 690 of lalr1.cc  */
-#line 6885 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6901 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("distance"))); }
     break;
 
-  case 929:
+  case 931:
 
 /* Line 690 of lalr1.cc  */
-#line 6886 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6902 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("occurs"))); }
     break;
 
-  case 930:
+  case 932:
 
 /* Line 690 of lalr1.cc  */
-#line 6887 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6903 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("times"))); }
     break;
 
-  case 931:
+  case 933:
 
 /* Line 690 of lalr1.cc  */
-#line 6888 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6904 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("same"))); }
     break;
 
-  case 932:
+  case 934:
 
 /* Line 690 of lalr1.cc  */
-#line 6889 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6905 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("different"))); }
     break;
 
-  case 933:
+  case 935:
 
 /* Line 690 of lalr1.cc  */
-#line 6890 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6906 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("lowercase"))); }
     break;
 
-  case 934:
+  case 936:
 
 /* Line 690 of lalr1.cc  */
-#line 6891 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6907 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("uppercase"))); }
     break;
 
-  case 935:
+  case 937:
 
 /* Line 690 of lalr1.cc  */
-#line 6892 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6908 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("relationship"))); }
     break;
 
-  case 936:
+  case 938:
 
 /* Line 690 of lalr1.cc  */
-#line 6893 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6909 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("levels"))); }
     break;
 
-  case 937:
+  case 939:
 
 /* Line 690 of lalr1.cc  */
-#line 6894 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6910 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("language"))); }
     break;
 
-  case 938:
+  case 940:
 
 /* Line 690 of lalr1.cc  */
-#line 6895 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6911 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("any"))); }
     break;
 
-  case 939:
+  case 941:
 
 /* Line 690 of lalr1.cc  */
-#line 6896 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6912 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("all"))); }
     break;
 
-  case 940:
+  case 942:
 
 /* Line 690 of lalr1.cc  */
-#line 6897 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6913 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("exactly"))); }
     break;
 
-  case 941:
+  case 943:
 
 /* Line 690 of lalr1.cc  */
-#line 6898 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6914 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("from"))); }
     break;
 
-  case 942:
+  case 944:
 
 /* Line 690 of lalr1.cc  */
-#line 6899 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6915 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("words"))); }
     break;
 
-  case 943:
+  case 945:
 
 /* Line 690 of lalr1.cc  */
-#line 6900 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6916 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentences"))); }
     break;
 
-  case 944:
+  case 946:
 
 /* Line 690 of lalr1.cc  */
-#line 6901 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6917 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sentence"))); }
     break;
 
-  case 945:
+  case 947:
 
 /* Line 690 of lalr1.cc  */
-#line 6902 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6918 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("phrase"))); }
     break;
 
-  case 946:
+  case 948:
 
 /* Line 690 of lalr1.cc  */
-#line 6903 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6919 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraph"))); }
     break;
 
-  case 947:
+  case 949:
 
 /* Line 690 of lalr1.cc  */
-#line 6904 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6920 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("paragraphs"))); }
     break;
 
-  case 948:
+  case 950:
 
 /* Line 690 of lalr1.cc  */
-#line 6905 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6921 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("replace"))); }
     break;
 
-  case 949:
+  case 951:
 
 /* Line 690 of lalr1.cc  */
-#line 6906 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6922 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("modify"))); }
     break;
 
-  case 950:
+  case 952:
 
 /* Line 690 of lalr1.cc  */
-#line 6907 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6923 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("first"))); }
     break;
 
-  case 951:
+  case 953:
 
 /* Line 690 of lalr1.cc  */
-#line 6908 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6924 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("insert"))); }
     break;
 
-  case 952:
+  case 954:
 
 /* Line 690 of lalr1.cc  */
-#line 6909 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6925 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("before"))); }
     break;
 
-  case 953:
+  case 955:
 
 /* Line 690 of lalr1.cc  */
-#line 6910 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6926 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("after"))); }
     break;
 
-  case 954:
+  case 956:
 
 /* Line 690 of lalr1.cc  */
-#line 6911 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6927 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("revalidation"))); }
     break;
 
-  case 955:
+  case 957:
 
 /* Line 690 of lalr1.cc  */
-#line 6912 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6928 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("with"))); }
     break;
 
-  case 956:
+  case 958:
 
 /* Line 690 of lalr1.cc  */
-#line 6913 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6929 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("nodes"))); }
     break;
 
-  case 957:
+  case 959:
 
 /* Line 690 of lalr1.cc  */
-#line 6914 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6930 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("rename"))); }
     break;
 
-  case 958:
+  case 960:
 
 /* Line 690 of lalr1.cc  */
-#line 6915 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6931 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("last"))); }
     break;
 
-  case 959:
+  case 961:
 
 /* Line 690 of lalr1.cc  */
-#line 6916 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6932 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("delete"))); }
     break;
 
-  case 960:
+  case 962:
 
 /* Line 690 of lalr1.cc  */
-#line 6917 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6933 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("into"))); }
     break;
 
-  case 961:
+  case 963:
 
 /* Line 690 of lalr1.cc  */
-#line 6918 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6934 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("simple"))); }
     break;
 
-  case 962:
+  case 964:
 
 /* Line 690 of lalr1.cc  */
-#line 6919 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6935 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.expr) = new QName(LOC((yyloc)), SYMTAB(SYMTAB_PUT("sequential"))); }
     break;
 
-  case 963:
+  case 965:
 
 /* Line 690 of lalr1.cc  */
-#line 6920 "/home/markos/zorba/repo/ns-nodes/src/compiler/parser/xquery_parser.y"
+#line 6936 "/home/markos/zorba/repo/hof-merge/src/compiler/parser/xquery_parser.y"
     { (yyval.exp

Follow ups