module Code_util_pattern_matcher: sig
.. end
type
navigation_param = Optimization_walker.sub_expr_kind * int
type
algop_test_function = Algebra_type.algop_expr -> bool
type 'a
state_update_function = Algebra_type.algop_expr -> 'a -> 'a
type 'a
test_and_apply = Algebra_type.algop_expr -> 'a -> bool * 'a
type 'a
pattern_matcher_pattern_element = navigation_param *
'a test_and_apply
type 'a
pattern_matcher_pattern = 'a pattern_matcher_pattern_element list
val mk_dep_child_param : int -> navigation_param
val mk_indep_child_param : int -> navigation_param
val dep_zero : navigation_param
val indep_zero : navigation_param
: algop_test_function ->
'a state_update_function ->
Algebra_type.algop_expr -> 'a -> bool * 'a
: algop_test_function ->
Algebra_type.algop_expr -> 'a -> bool * 'a
val walk_patterns : 'a ->
'a pattern_matcher_pattern list ->
Algebra_type.algop_expr -> bool * 'a