1st class pedagogical/didactical thinking …
Consider: there are recursive defined ADTs and we want to enable
students to understand concepts and produce python-code to realize, what
they understood.
The main point:
if the students already understood, that it is possible to place type
hints to place type hints for arguments and results of functions/methods
they should be able to reuse the notation in an orthogonal manner.
When it comes to recursive ADTs they should be able to write
class Tree:
def __init__(self, left: Tree, right: Tree):
self.left = left
self.right = right