diff --git a/f.py b/f.py
deleted file mode 100644
index 02a3668..0000000
--- a/f.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from __future__ import annotations
-from dataclasses import dataclass
-from typing import List
-from typing import ClassVar as CV
-
-@dataclass
-class A:
-    a: List[str]
-
-@dataclass
-class B(A):
-    b: CV[int]
diff --git a/j.py b/j.py
deleted file mode 100644
index 9551702..0000000
--- a/j.py
+++ /dev/null
@@ -1,15 +0,0 @@
-
-class X:
-    def __init__(self, value):
-        self.value = value
-    def __str__(self):
-        return str(self.value)
-    def __format__(self, fmt):
-        assert fmt[0] == '='
-        self.value = eval(fmt[1:])
-        return ''
-
-x = X(3)
-print(x)
-f'{x:=4}'   # Behold!
-print(x)
diff --git a/t.py b/t.py
deleted file mode 100644
index 7484cf9..0000000
--- a/t.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from dataclasses import *
-
-class D:
-    """A descriptor class that knows its name."""
-    def __set_name__(self, owner, name):
-        self.name = name
-    def __get__(self, instance, owner):
-        if instance is not None:
-            return 1
-        return self
-
-from dataclasses import *
-
-@dataclass
-class C:
-    d: int = field(default=D(), init=False)
-
-@dataclass
-class E(C):
-    e: int = field(default=D(), init=False)
diff --git a/x.py b/x.py
deleted file mode 100644
index 2b78f3e..0000000
--- a/x.py
+++ /dev/null
@@ -1,31 +0,0 @@
-#from __future__ import annotations
-from typing import ClassVar, Dict, get_type_hints
-from dataclasses import *
-
-class Starship:
-    stats: ClassVar[Dict[str, int]] = {}
-
-#print(get_type_hints(Starship))
-
-#class A:
-#    a: Dict[int, C]
-
-#print(get_type_hints(A))
-
-cv = [ClassVar[int]]
-
-@dataclass
-class C:
-    CVS = [ClassVar[str]]
-    a: cv[0]
-    b: 'C'
-    c: 'CVS[0]'
-    x: 'ClassVar["int"]'
-    y: 'ClassVar[C]'
-
-print()
-print(C.__annotations__)
-print(C.__dataclass_fields__)
-
-
-#print(get_type_hints(C))
