interface Transaction {
  readonly attribute Account from;
  readonly attribute Account to;
  readonly attribute float amount;
  readonly attribute DOMString description;
  readonly attribute unsigned long number;

  [Default] object toJSON();
};

interface Account {
  attribute DOMString name;
  attribute unsigned long number;
  DOMString serialize();
};

interface Transaction2 {
  readonly attribute Account2 from;
  readonly attribute Account2 to;
  readonly attribute float amount;
  readonly attribute DOMString description;
  readonly attribute unsigned long number;
};

interface Account2 {
  attribute DOMString name;
  attribute unsigned long number;
};

interface Account3 {
  attribute DOMString name;
  attribute unsigned long number;
};

interface Account4 {
  getter object getItem(unsigned long index);
};

interface Account5 : Account {
  attribute DOMString secondname;
};

interface Account6 : Account {
  attribute DOMString secondname;
};

interface Account7 {
  attribute DOMString name;
  attribute unsigned long number;
};

interface Account8 {
  getter object getItem(unsigned long index);
};
