class CompilationUnit {

}

public interface VoidVisitor<A> {

	void visit(CompilationUnit n, A arg);

	void visit(JavadocComment n, A arg);
}

public interface GenericVisitor<R, A> {

	R visit(CompilationUnit n, A arg);

	R visit(JavadocComment n, A arg);
}

class JavadocComment {

    public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
        return v.visit(this, arg);
    }

    public <A> void accept(VoidVisitor<A> v, A arg) {
        v.visit(this, arg);
    }

}

public abstract class VoidVisitorAdapter<A> implements VoidVisitor<A> {

	@Override public void visit(final AnnotationDeclaration n, final A arg) {
	    JavadocComment javadocComment;
		javadocComment.accept(this, arg);
	}

}