module Code_util_predicates: sig .. end
type op_expr_type = 
type predicate_branch 
val mk_predicate_branch : Algebra_type.algop_expr option ->
       op_expr_type ->
       (Physical_value.xml_value -> unit) option ->
       predicate_branch
val invalid_predicate_branch : predicate_branch
val is_fs_untyped_to_any_predicate_branch : predicate_branch -> bool
val eval_predicate_desc : Algebra_type.eval_fun ->
       Execution_context.algebra_context ->
       Algebra_type.algop_expr array -> Xquery_algebra_ast.predicate_desc -> bool
val eval_predicate_desc_to_rid_list : ('a -> Code_util_ridlist.rid_list) ->
       'a array -> Xquery_algebra_ast.predicate_desc -> Code_util_ridlist.rid_list
val evaluate_predicate_branch : predicate_branch ->
       Algebra_type.eval_fun ->
       Execution_context.algebra_context ->
       Namespace_context.nsenv -> Dm_atomic.atomicValue list
type supported_predicates 
type supported_scans = 
| | 
Value_Equality | 
| | 
Greater_Than | 
| | 
Greater_Than_or_Equal | 
| | 
Less_Than | 
| | 
Less_Than_or_Equal | 
| | 
Invalid_Scan | 
val switch_predicate : supported_predicates ->
       supported_predicates
val supported_predicate_supported_scans : supported_predicates ->
       supported_scans
val predicate_type : Algebra_type.algop_expr -> supported_predicates
val needed_types : Algebra_type.algop_expr ->
       supported_predicates -> Datatypes.atomic_type list
val predicate_invalid : supported_predicates
type predicate_functions = (predicate_branch *
        predicate_branch * supported_scans)
       array