public static void Visit(this ITypedElement root, Action <int, ITypedElement> visitor) => root.visit(visitor, 0);