diff --git a/src/gboml/ast/variables.py b/src/gboml/ast/variables.py
index 6a1f0942484777809560f6671c87ce02d017bbb7..8964a3829ce9060b6570cb4c49a94a01db2fe62d 100644
--- a/src/gboml/ast/variables.py
+++ b/src/gboml/ast/variables.py
@@ -55,7 +55,7 @@ class IndexingParameterDefinition(Definition):
 @dataclass
 class VariableDefinition(NamedGBOMLObject):
     name: str
-    indices: list[str]
+    indices: list[RValue]
     scope: VarScope
     type: VarType
     bound_lower: Optional[Expression]
diff --git a/src/gboml/parsing.py b/src/gboml/parsing.py
index a87584108f3c874c4d4861779775b055fd8d6006..a6c8ff0dbc01495109158c3f05259f57d50f7899 100644
--- a/src/gboml/parsing.py
+++ b/src/gboml/parsing.py
@@ -211,7 +211,7 @@ class GBOMLParser:
             def start(self, meta: Meta, time_horizon: Optional[int], global_defs: list[Definition], nodes_hyperedges: NodesAndHyperEdges):
                 return GBOMLGraph(time_horizon, global_defs, nodes_hyperedges.nodes, nodes_hyperedges.hyperedges, meta=meta)
 
-            def variable_definition(self, meta: Meta, scope: VarScope, type: Optional[VarType], names: list[(str, list[str])],
+            def variable_definition(self, meta: Meta, scope: VarScope, type: Optional[VarType], names: list[(str, list[RValue])],
                                     imports_from: Optional[list[VarOrParam]],
                                     bound_lower: Optional[Expression], bound_upper: Optional[Expression], tags: set[str]):
                 if imports_from is not None and len(imports_from) != len(names):