diff --git a/src/kernel_services/abstract_interp/locations.ml b/src/kernel_services/abstract_interp/locations.ml
index d330023067eb7aa336fad8020cabdb397368f45c..1a19ba3926ebeb591bac02fb259657b22c9332d1 100644
--- a/src/kernel_services/abstract_interp/locations.ml
+++ b/src/kernel_services/abstract_interp/locations.ml
@@ -476,6 +476,8 @@ module Zone = struct
       Base.SetLattice.mem b top_param
     | Map m -> M.mem b m
 
+  let get_bases = get_keys
+
   let shape x = x
 
   let fold2_join_heterogeneous ~cache ~empty_left ~empty_right ~both ~join ~empty =
diff --git a/src/kernel_services/abstract_interp/locations.mli b/src/kernel_services/abstract_interp/locations.mli
index e071ac4420fcfa507a7e8c648830a58e0d15bc2a..982221c633d915dfc66a3f6c62ab94c7c76fa2b4 100644
--- a/src/kernel_services/abstract_interp/locations.mli
+++ b/src/kernel_services/abstract_interp/locations.mli
@@ -265,6 +265,10 @@ module Zone : sig
 
       @since Carbon-20101201 *)
 
+  val get_bases : t -> Base.SetLattice.t
+  (** Returns the bases contained by the given zone. Never fails, but
+      may return [Base.SetLattice.Top]. *)
+
   val intersects : t -> t -> bool
 
   (** Assuming that [z1] and [z2] only contain valid bases,