abstract sclass TreeView { abstract A node(); abstract L> children(); TreeView parent() { null; } toString { ret str(node()); } }