ANY NONE
class interface TUPLE
   -- Empty TUPLE definition.

feature(s) from TUPLE
   count: INTEGER

   item (i: INTEGER): ANY
      require
         False


end of TUPLE
TUPLE 1: Eiffel class interface
class interface TUPLE[A_]
   -- One field TUPLE definition.

creation
   make_1 (i1: A_)
      ensure
         item_1 = i1

feature(s) from TUPLE
   count: INTEGER

   item (i: INTEGER): ANY
      require
         i = 1
      require else
         False

feature(s) from TUPLE
   item_1: A_

   set_item_1 (i1: A_)
      ensure
         item_1 = i1

   set_first (i1: A_)
      ensure
         item_1 = i1

   first: A_
      -- A well-known alias for item_1

   make_1 (i1: A_)
      ensure
         item_1 = i1


end of TUPLE[A_]
TUPLE 2: Eiffel class interface
class interface TUPLE[A_,B_]
   -- Two fields TUPLE definition.

creation
   make_2 (i1: A_; i2: B_)
      ensure
         item_1 = i1;
         item_2 = i2

feature(s) from TUPLE
   count: INTEGER

   item (i: INTEGER): ANY
      require
         i = 2
      require else
         i = 1
      require else
         False

feature(s) from TUPLE
   item_1: A_

   set_item_1 (i1: A_)
      ensure
         item_1 = i1

   set_first (i1: A_)
      ensure
         item_1 = i1

   first: A_
      -- A well-known alias for item_1

   make_1 (i1: A_)
      ensure
         item_1 = i1

feature(s) from TUPLE
   item_2: B_

   set_item_2 (i2: B_)
      ensure
         item_2 = i2

   set_second (i2: B_)
      ensure
         item_2 = i2

   second: B_
      -- A well-known alias for item_2

   make_2 (i1: A_; i2: B_)
      ensure
         item_1 = i1;
         item_2 = i2


end of TUPLE[A_,B_]
TUPLE 3: Eiffel class interface
class interface TUPLE[A_,B_,C_]
   -- Three fields TUPLE definition.

creation
   make_3 (i1: A_; i2: B_; i3: C_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3

feature(s) from TUPLE
   count: INTEGER

   item (i: INTEGER): ANY
      require
         i = 3
      require else
         i = 2
      require else
         i = 1
      require else
         False

feature(s) from TUPLE
   item_1: A_

   set_item_1 (i1: A_)
      ensure
         item_1 = i1

   set_first (i1: A_)
      ensure
         item_1 = i1

   first: A_
      -- A well-known alias for item_1

   make_1 (i1: A_)
      ensure
         item_1 = i1

feature(s) from TUPLE
   item_2: B_

   set_item_2 (i2: B_)
      ensure
         item_2 = i2

   set_second (i2: B_)
      ensure
         item_2 = i2

   second: B_
      -- A well-known alias for item_2

   make_2 (i1: A_; i2: B_)
      ensure
         item_1 = i1;
         item_2 = i2

feature(s) from TUPLE
   item_3: C_

   set_item_3 (i3: C_)
      ensure
         item_3 = i3

   set_third (i3: C_)
      ensure
         item_3 = i3

   third: C_
      -- A well-known alias for item_3

   make_3 (i1: A_; i2: B_; i3: C_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3


end of TUPLE[A_,B_,C_]
TUPLE 4: Eiffel class interface
class interface TUPLE[A_,B_,C_,D_]
   -- Four fields TUPLE definition.

creation
   make_4 (i1: A_; i2: B_; i3: C_; i4: D_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4

feature(s) from TUPLE
   count: INTEGER

   item (i: INTEGER): ANY
      require
         i = 4
      require else
         i = 3
      require else
         i = 2
      require else
         i = 1
      require else
         False

feature(s) from TUPLE
   item_1: A_

   set_item_1 (i1: A_)
      ensure
         item_1 = i1

   set_first (i1: A_)
      ensure
         item_1 = i1

   first: A_
      -- A well-known alias for item_1

   make_1 (i1: A_)
      ensure
         item_1 = i1

feature(s) from TUPLE
   item_2: B_

   set_item_2 (i2: B_)
      ensure
         item_2 = i2

   set_second (i2: B_)
      ensure
         item_2 = i2

   second: B_
      -- A well-known alias for item_2

   make_2 (i1: A_; i2: B_)
      ensure
         item_1 = i1;
         item_2 = i2

feature(s) from TUPLE
   item_3: C_

   set_item_3 (i3: C_)
      ensure
         item_3 = i3

   set_third (i3: C_)
      ensure
         item_3 = i3

   third: C_
      -- A well-known alias for item_3

   make_3 (i1: A_; i2: B_; i3: C_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3

feature(s) from TUPLE
   item_4: D_

   set_item_4 (i4: D_)
      ensure
         item_4 = i4

   set_fourth (i4: D_)
      ensure
         item_4 = i4

   fourth: D_
      -- A well-known alias for item_4

   make_4 (i1: A_; i2: B_; i3: C_; i4: D_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4


end of TUPLE[A_,B_,C_,D_]
TUPLE 5: Eiffel class interface
class interface TUPLE[A_,B_,C_,D_,E_]
   -- Five fields TUPLE definition.

creation
   make_5 (i1: A_; i2: B_; i3: C_; i4: D_; i5: E_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4;
         item_5 = i5

feature(s) from TUPLE
   count: INTEGER

   item (i: INTEGER): ANY
      require
         i = 5
      require else
         i = 4
      require else
         i = 3
      require else
         i = 2
      require else
         i = 1
      require else
         False

feature(s) from TUPLE
   item_1: A_

   set_item_1 (i1: A_)
      ensure
         item_1 = i1

   set_first (i1: A_)
      ensure
         item_1 = i1

   first: A_
      -- A well-known alias for item_1

   make_1 (i1: A_)
      ensure
         item_1 = i1

feature(s) from TUPLE
   item_2: B_

   set_item_2 (i2: B_)
      ensure
         item_2 = i2

   set_second (i2: B_)
      ensure
         item_2 = i2

   second: B_
      -- A well-known alias for item_2

   make_2 (i1: A_; i2: B_)
      ensure
         item_1 = i1;
         item_2 = i2

feature(s) from TUPLE
   item_3: C_

   set_item_3 (i3: C_)
      ensure
         item_3 = i3

   set_third (i3: C_)
      ensure
         item_3 = i3

   third: C_
      -- A well-known alias for item_3

   make_3 (i1: A_; i2: B_; i3: C_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3

feature(s) from TUPLE
   item_4: D_

   set_item_4 (i4: D_)
      ensure
         item_4 = i4

   set_fourth (i4: D_)
      ensure
         item_4 = i4

   fourth: D_
      -- A well-known alias for item_4

   make_4 (i1: A_; i2: B_; i3: C_; i4: D_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4

feature(s) from TUPLE
   item_5: E_

   set_item_5 (i5: E_)
      ensure
         item_5 = i5

   set_fifth (i5: E_)
      ensure
         item_5 = i5

   fifth: E_
      -- A well-known alias for item_5

   make_5 (i1: A_; i2: B_; i3: C_; i4: D_; i5: E_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4;
         item_5 = i5


end of TUPLE[A_,B_,C_,D_,E_]
TUPLE 6: Eiffel class interface
class interface TUPLE[A_,B_,C_,D_,E_,F_]
   -- Six fields TUPLE definition.

creation
   make_6 (i1: A_; i2: B_; i3: C_; i4: D_; i5: E_; i6: F_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4;
         item_5 = i5;
         item_6 = i6

feature(s) from TUPLE
   count: INTEGER

   item (i: INTEGER): ANY
      require
         i = 6
      require else
         i = 5
      require else
         i = 4
      require else
         i = 3
      require else
         i = 2
      require else
         i = 1
      require else
         False

feature(s) from TUPLE
   item_1: A_

   set_item_1 (i1: A_)
      ensure
         item_1 = i1

   set_first (i1: A_)
      ensure
         item_1 = i1

   first: A_
      -- A well-known alias for item_1

   make_1 (i1: A_)
      ensure
         item_1 = i1

feature(s) from TUPLE
   item_2: B_

   set_item_2 (i2: B_)
      ensure
         item_2 = i2

   set_second (i2: B_)
      ensure
         item_2 = i2

   second: B_
      -- A well-known alias for item_2

   make_2 (i1: A_; i2: B_)
      ensure
         item_1 = i1;
         item_2 = i2

feature(s) from TUPLE
   item_3: C_

   set_item_3 (i3: C_)
      ensure
         item_3 = i3

   set_third (i3: C_)
      ensure
         item_3 = i3

   third: C_
      -- A well-known alias for item_3

   make_3 (i1: A_; i2: B_; i3: C_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3

feature(s) from TUPLE
   item_4: D_

   set_item_4 (i4: D_)
      ensure
         item_4 = i4

   set_fourth (i4: D_)
      ensure
         item_4 = i4

   fourth: D_
      -- A well-known alias for item_4

   make_4 (i1: A_; i2: B_; i3: C_; i4: D_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4

feature(s) from TUPLE
   item_5: E_

   set_item_5 (i5: E_)
      ensure
         item_5 = i5

   set_fifth (i5: E_)
      ensure
         item_5 = i5

   fifth: E_
      -- A well-known alias for item_5

   make_5 (i1: A_; i2: B_; i3: C_; i4: D_; i5: E_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4;
         item_5 = i5

feature(s) from TUPLE
   item_6: F_

   set_item_6 (i6: F_)
      ensure
         item_6 = i6

   make_6 (i1: A_; i2: B_; i3: C_; i4: D_; i5: E_; i6: F_)
      ensure
         item_1 = i1;
         item_2 = i2;
         item_3 = i3;
         item_4 = i4;
         item_5 = i5;
         item_6 = i6


end of TUPLE[A_,B_,C_,D_,E_,F_]