package bugsOtherPackage; import java.util.ArrayList; public abstract aspect NodeImpl { declare parents : Child implements INode; declare parents : Parent implements INode; private final ArrayList INode.fChildren = new ArrayList(); // are you not supposed to use type parameters here? private INode INode.fParent; public final INode INode.getParent() { return fParent; } public final boolean INode.setParent(INode newParent) { fParent = newParent; return true; } }