diff --git a/src/backends/fvm_types.hpp b/src/backends/fvm_types.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..71dfcbfa4db4635a682343faa3c07afc593c959c
--- /dev/null
+++ b/src/backends/fvm_types.hpp
@@ -0,0 +1,14 @@
+#pragma once
+
+#include <common_types.hpp>
+
+// Basic types shared across FVM implementations/backends.
+
+namespace nest {
+namespace mc {
+
+using fvm_value_type = double;
+using fvm_size_type = cell_local_size_type;
+
+} // namespace mc
+} // namespace nest
diff --git a/src/backends/gpu/fvm.hpp b/src/backends/gpu/fvm.hpp
index c7a4dbb6b782c2c1754537735b212ead9d6d296e..28a48ec5c84e05b9d8fe913e2f43fde9045c7301 100644
--- a/src/backends/gpu/fvm.hpp
+++ b/src/backends/gpu/fvm.hpp
@@ -4,6 +4,7 @@
 #include <string>
 
 #include <backends/event.hpp>
+#include <backends/fvm_types.hpp>
 #include <common_types.hpp>
 #include <mechanism.hpp>
 #include <memory/memory.hpp>
@@ -26,8 +27,8 @@ struct backend {
     }
 
     /// define the real and index types
-    using value_type = double;
-    using size_type  = nest::mc::cell_lid_type;
+    using value_type = fvm_value_type;
+    using size_type  = fvm_size_type;
 
     /// define storage types
     using array  = memory::device_vector<value_type>;
diff --git a/src/backends/multicore/fvm.hpp b/src/backends/multicore/fvm.hpp
index fa3b1b14e46b5492a7a3735b5a97b6fee119d462..4c9e761839f132ec58b9057c2d7be8d079d98d06 100644
--- a/src/backends/multicore/fvm.hpp
+++ b/src/backends/multicore/fvm.hpp
@@ -4,6 +4,7 @@
 #include <string>
 
 #include <backends/event.hpp>
+#include <backends/fvm_types.hpp>
 #include <common_types.hpp>
 #include <event_queue.hpp>
 #include <mechanism.hpp>
@@ -28,8 +29,8 @@ struct backend {
     }
 
     /// define the real and index types
-    using value_type = double;
-    using size_type  = nest::mc::cell_lid_type;
+    using value_type = fvm_value_type;
+    using size_type  = fvm_size_type;
 
     /// define storage types
     using array  = memory::host_vector<value_type>;
diff --git a/src/fvm_multicell.hpp b/src/fvm_multicell.hpp
index 37aba8de4ff4805bddb2f3417088f7a2834a3cad..f74298e2f3cb388c72061983c3c86a809e605c3f 100644
--- a/src/fvm_multicell.hpp
+++ b/src/fvm_multicell.hpp
@@ -8,6 +8,7 @@
 #include <vector>
 
 #include <algorithms.hpp>
+#include <backends/fvm_types.hpp>
 #include <cell.hpp>
 #include <compartment.hpp>
 #include <event_queue.hpp>
@@ -48,10 +49,10 @@ public:
     using backend = Backend;
 
     /// the real number type
-    using value_type = typename backend::value_type;
+    using value_type = fvm_value_type;
 
     /// the integral index type
-    using size_type = typename backend::size_type;
+    using size_type = fvm_size_type;
 
     /// the container used for values
     using array = typename backend::array;