module m {
  interface int1 {
     short op1();
     attribute long attr1, attr11;
     typedef string myType1;
     const long myConstant1 = 1;
     exception myException1 {};
     struct myStruct1 {
        long  a;
	short b;
     };
     union myUnion1 switch (long) {
        case 1: case 3: long counter;
	case 2: boolean flag;
	default: long unknown;
     };
     enum Color {Red, Green, Blue};
  };
  interface int2 {
     short op2();
     attribute long attr2, attr22;
     typedef string myType2;
     const long myConstant2 = 2;
     exception myException2 {};
     struct myStruct2 {
        long  e;
	short f;
     };
     union myUnion2 switch (long) {
        case 1: long counter;
	case 2: boolean flag;
	case 4: string name;
	default: long unknown;
     };
     enum Week {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
  };
  interface int3 : int1, int2 {
     short op3();
     attribute long attr3, attr33;
     typedef string myType3;
     const long myConstant3 = 3;
     exception myException3 {};
  };
};

