sig
  type path = Region.offset list
  and offset = Oindex of Lang.F.term | Ofield of Lang.field
  val access : Lang.F.term -> Region.path -> Lang.F.term
  val update : Lang.F.term -> Region.path -> Lang.F.term -> Lang.F.term
  type rpath = Region.roffset list
  and roffset = Rindex of Vset.set | Rfield of Lang.field
  type region
  val empty : Region.region
  val full : Region.region
  val path : Region.path -> Region.region
  val rpath : Region.rpath -> Region.region
  val merge : Region.region -> Region.region -> Region.region
  val disjoint : Region.region -> Region.region -> Lang.F.pred
  val subset : Region.region -> Region.region -> Lang.F.pred
  val equal_but :
    Lang.F.tau -> Region.region -> Lang.F.term -> Lang.F.term -> Lang.F.pred
  val vars : Region.region -> Lang.F.Vars.t
  val occurs : Lang.F.var -> Region.region -> bool
  val pretty : Format.formatter -> Region.region -> unit
end