def METHOD_NAME(vyper_module: vy_ast.Module) -> None:
    """
    Remove statement nodes that are unused after type checking.
    Once type checking is complete, we can remove now-meaningless statements to
    simplify the AST prior to IR generation.
    Arguments
    ---------
    vyper_module : Module
        Top-level Vyper AST node.
    """
    # constant declarations - values were substituted within the AST during folding
    for node in vyper_module.get_children(vy_ast.VariableDecl, {"is_constant": True}):
        vyper_module.remove_from_body(node)
    # `implements: interface` statements - validated during type checking
    for node in vyper_module.get_children(vy_ast.ImplementsDecl):
        vyper_module.remove_from_body(node)