sig
  type physop_variable_binding =
      Xquery_physical_type_ast.physical_variable_type
  type physop_tuple_field_binding =
      Xquery_physical_type_ast.physical_tuple_field_type
  type physop_tuple_binding = Xquery_physical_type_ast.physical_tuple_type
  type physop_expr_name =
      POIf
    | POWhile
    | POLetvar of Xquery_physical_algebra_ast.physop_variable_binding
    | POTypeswitch of Xquery_common_ast.cvname option array
    | POVar of Xquery_common_ast.cvname
    | POScalar
    | POEmpty
    | POSeq_Stream
    | POSeq_Materialized
    | POImperativeSeq_Stream
    | POImperativeSeq_Materialized
    | PODocument_Stream
    | PODocument_Materialized
    | POPI_Stream
    | POPI_Materialized
    | POPIComputed_Stream
    | POPIComputed_Materialized
    | POComment_Stream
    | POComment_Materialized
    | POCommentComputed_Stream
    | POCommentComputed_Materialized
    | POText_Stream
    | POText_Materialized
    | POTextComputed_Stream
    | POTextComputed_Materialized
    | POElem_Stream
    | POElem_Materialized
    | POAnyElem_Stream
    | POAnyElem_Materialized
    | POAttr_Stream
    | POAttr_Materialized
    | POAnyAttr_Stream
    | POAnyAttr_Materialized
    | POError
    | POTreat
    | POValidate
    | POCast
    | POCastable
    | POSome of Xquery_physical_algebra_ast.physop_variable_binding
    | POEvery of Xquery_physical_algebra_ast.physop_variable_binding
    | POInputTuple
    | POCallBuiltIn
    | POCallOverloaded
    | POCallUserDefined
    | POConvertSimple
    | POPromoteNumeric
    | POPromoteAnyString
    | POUnsafePromoteNumeric
    | POCallBuiltIn_Fn_Count_Stream
    | POCallBuiltIn_Fs_First_Stream
    | POCallBuiltIn_Fs_Item2Node_Stream
    | POServerImplementsTree
    | POServerImplementsTuple
    | POForServerCloseTree
    | POForServerCloseTuple
    | POEvalClosureTree
    | POEvalClosureTuple
    | POExecuteTree
    | POExecuteTuple
    | POCreateTuple of Xquery_physical_algebra_ast.physop_tuple_binding
    | POAccessTuple of Xquery_common_ast.crname
    | POConcatTuples
    | POProject of Xquery_common_ast.crname array
    | POMapFromItem of Xquery_physical_algebra_ast.physop_variable_binding
    | POMapToItem
    | POMap
    | PONullMap of Xquery_common_ast.crname
    | POMapIndex of Xquery_common_ast.crname
    | POMapIndexStep of Xquery_common_ast.crname
    | POMapConcat
    | POOuterMapConcat of Xquery_common_ast.crname
    | POProduct
    | POSelect
    | POJoin_Hash
    | POJoin_Sort
    | POJoin_NestedLoop
    | POLeftOuterJoin_Hash of Xquery_common_ast.crname
    | POLeftOuterJoin_Sort of Xquery_common_ast.crname
    | POLeftOuterJoin_NestedLoop of Xquery_common_ast.crname
    | POGroupBy of Xquery_common_ast.cvname list
    | POOrderBy
    | POCopy
    | PODelete
    | POInsert
    | PORename
    | POReplace
    | POSnap
    | POSet of Xquery_common_ast.cvname
    | POParse_Stream
    | POParse_Load
    | POTreeJoin_Sort
    | POTreeJoin_Stream
    | POTreeJoin_NestedLoop
    | POTupleTreePattern_IndexSortJoin of Xquery_common_ast.crname list
    | POTupleTreePattern_NestedLoop of Xquery_common_ast.crname list
    | POTupleTreePattern_SCJoin of Xquery_common_ast.crname list
    | POTupleTreePattern_Streaming of Xquery_common_ast.crname list
    | POTupleTreePattern_TwigJoin of Xquery_common_ast.crname list
end