A region is just a natural integer. Regions appear in types via the
TyRegion constructor. Resources map regions to permissions. Regions
can be thought of as runtime objects -- they do not appear in a typing
derivation for a source program.
Regions must not be confused with region variables. The latter are just
type variables -- that is, de Bruijn indices -- and they appear in types
via the TyVar constructor.