import java.util.*; abstract aspect GenericAspect { interface SimpleI {} declare parents: A implements SimpleI; // Error: 'B' specified in the GenericAspect declaration doesnt say 'B extends Number' public N SimpleI.m4(N n) { System.err.println(n);return n;} } aspect GenericAspectK extends GenericAspect { // Error: String doesnt extend Number public static void main(String []argv) { Base b = new Base(); String s = b.m4("hello"); if (!s.equals("hello")) throw new RuntimeException("Not hello?? "+s); } } class Base {}