diff --git a/muppet/puppet/ast.py b/muppet/puppet/ast.py
index de266e8c4d5980861f666311aafc713c0b1e6fd9..9624aaeb5f7c821e8ac3e39e98eaf38c4fdb8908 100644
--- a/muppet/puppet/ast.py
+++ b/muppet/puppet/ast.py
@@ -116,7 +116,7 @@ class PuppetCall(PuppetAST):
 
 @dataclass
 class PuppetCallMethod(PuppetAST):
-    """A method call? TODO."""
+    """A method call."""
 
     func: PuppetAST
     args: list[PuppetAST]
@@ -312,14 +312,14 @@ class PuppetParenthesis(PuppetAST):
 
 @dataclass
 class PuppetQn(PuppetAST):
-    """Qn TODO."""
+    """Qn."""
 
     name: str
 
 
 @dataclass
 class PuppetQr(PuppetAST):
-    """Qr TODO."""
+    """Qr."""
 
     name: str
 
@@ -839,25 +839,23 @@ from typing import (
     TypeVar,
     Callable,
 )
+import sys
 
 
 F = TypeVar('F', bound=Callable[..., object])
 
-# TODO replace this decorator with
-# from typing import override
-# once the target python version is changed to 3.12
-
-
-def override(f: F) -> F:
-    """
-    Return function unchanged.
-
-    Placeholder @override annotator if the actual annotation isn't
-    implemented in the current python version.
-    """
-    return f
 
+if sys.version_info >= (3, 12):
+    from typing import override
+else:
+    def override(f: F) -> F:
+        """
+        Return function unchanged.
 
+        Placeholder @override annotator if the actual annotation isn't
+        implemented in the current python version.
+        """
+        return f
 '''.lstrip())
 
     print('''"""