diff --git a/src/libexpr/primops/flake.cc b/src/libexpr/primops/flake.cc
index f6744a1f7..84e878f75 100644
--- a/src/libexpr/primops/flake.cc
+++ b/src/libexpr/primops/flake.cc
@@ -146,7 +146,7 @@ std::shared_ptr<FlakeRegistry> getFlagRegistry()
     return std::make_shared<FlakeRegistry>();
 }
 
-// This always returns a vector with flakeRef, userReg, globalReg.
+// This always returns a vector with flakeReg, userReg, globalReg.
 // If one of them doesn't exist, the registry is left empty but does exist.
 const Registries EvalState::getFlakeRegistries()
 {
diff --git a/src/libexpr/primops/flake.hh b/src/libexpr/primops/flake.hh
index 4e0d3b646..8e9af5843 100644
--- a/src/libexpr/primops/flake.hh
+++ b/src/libexpr/primops/flake.hh
@@ -5,6 +5,10 @@
 
 namespace nix {
 
+static const size_t FLAG_REGISTRY = 0;
+static const size_t USER_REGISTRY = 1;
+static const size_t GLOBAL_REGISTRY = 2;
+
 struct Value;
 class EvalState;
 
diff --git a/src/nix/flake.cc b/src/nix/flake.cc
index a25493f79..a80338fd3 100644
--- a/src/nix/flake.cc
+++ b/src/nix/flake.cc
@@ -30,13 +30,13 @@ struct CmdFlakeList : StoreCommand, MixEvalArgs
 
         stopProgressBar();
 
-        for (auto & entry : registries[0]->entries)
+        for (auto & entry : registries[FLAG_REGISTRY]->entries)
             std::cout << entry.first.to_string() << " flags " << entry.second.to_string() << "\n";
 
-        for (auto & entry : registries[1]->entries)
+        for (auto & entry : registries[USER_REGISTRY]->entries)
             std::cout << entry.first.to_string() << " user " << entry.second.to_string() << "\n";
 
-        for (auto & entry : registries[2]->entries)
+        for (auto & entry : registries[GLOBAL_REGISTRY]->entries)
             std::cout << entry.first.to_string() << " global " << entry.second.to_string() << "\n";
     }
 };