module Region: sig
.. end
Paths
type
path = offset list
type
offset =
val access : Lang.F.term -> offset list -> Lang.F.term
val update : Lang.F.term -> offset list -> Lang.F.term -> Lang.F.term
type
rpath = roffset list
type
roffset =
type
region =
val empty : region
val full : region
val path : offset list -> region
Empty, but Full for the path
val rpath : roffset list -> region
Empty, but Full for the r-paths
val merge : region -> region -> region
val merge_fields : (Lang.F.Field.t * region) list ->
(Lang.F.Field.t * region) list ->
(Lang.F.Field.t * region) list
val disjoint : region -> region -> Lang.F.pred
val disjoint_fields : (Lang.F.Field.t * region) list ->
(Lang.F.Field.t * region) list -> Lang.F.pred list
val disjoint_indices : Lang.F.pred list ->
(Vset.set * region) list ->
(Vset.set * region) list -> Lang.F.pred list
val subset : region -> region -> Lang.F.pred
val subset_fields : (Lang.F.Field.t * region) list ->
(Lang.F.Field.t * region) list -> Lang.F.pred
val subset_indices : Vset.set -> region -> (Vset.set * region) list -> Lang.F.pred
val subset_index : Lang.F.term ->
region -> (Vset.set * region) list -> Lang.F.pred
val equal_but : Lang.tau -> region -> Lang.F.term -> Lang.F.term -> Lang.F.pred
val equal_but_fields : Lang.F.term ->
Lang.F.term ->
Lang.F.Field.t list ->
(Lang.F.Field.t * region) list -> Lang.F.pred list
val equal_but_index : Lang.tau ->
Lang.F.term ->
Lang.F.term ->
Lang.F.term ->
Vset.set -> (Vset.set * region) list -> Lang.F.pred list
val occurs : Lang.F.var -> region -> bool
val occurs_idx : Lang.F.var -> Vset.set * region -> bool
val vars : region -> Lang.F.Vars.t
val pretty : Format.formatter -> region -> unit