/** create a constructor that can be traced back to the aspect that introduced it. */
  public InterTypeConstructorInstance_c(
      TypeSystem ts,
      Position pos,
      String identifier,
      ClassType origin,
      ClassType container,
      Flags flags,
      List formalTypes,
      List excTypes) {
    super(ts, pos, container, flags, formalTypes, excTypes);
    this.origin = origin;
    this.identifier = identifier;
    if (container.toClass().flags().isInterface()) interfaceTarget = container.toClass();
    else interfaceTarget = null;

    if (flags().isPrivate() || flags().isPackage()) {
      mangleType = origin; // not quite right, same as ajc.
      // ought to generate a fresh type for each aspect
      List fts = new LinkedList(formalTypes);
      fts.add(mangleType);
      mangled = new ConstructorInstance_c(ts, pos, container, flags, fts, excTypes);
    }
  }