@@ -37,7 +37,202 @@ public A _1() {
3737 };
3838 }
3939
40- /**
40+
41+ public static <A > P1 <A > lazy (final P1 <A > pa ) {
42+ return pa ;
43+ }
44+
45+ public static <A , B > P2 <A , B > lazy (final P1 <A > pa , final P1 <B > pb ) {
46+ return new P2 <A , B >() {
47+ @ Override
48+ public A _1 () {
49+ return pa ._1 ();
50+ }
51+ @ Override
52+ public B _2 () {
53+ return pb ._1 ();
54+ }
55+ };
56+ }
57+
58+ public static <A , B , C > P3 <A , B , C > lazy (final P1 <A > pa , final P1 <B > pb , final P1 <C > pc ) {
59+ return new P3 <A , B , C >() {
60+ @ Override
61+ public A _1 () {
62+ return pa ._1 ();
63+ }
64+ @ Override
65+ public B _2 () {
66+ return pb ._1 ();
67+ }
68+ @ Override
69+ public C _3 () {
70+ return pc ._1 ();
71+ }
72+ };
73+ }
74+
75+ public static <A , B , C , D > P4 <A , B , C , D > lazy (final P1 <A > pa , final P1 <B > pb , final P1 <C > pc , final P1 <D > pd ) {
76+ return new P4 <A , B , C , D >() {
77+ @ Override
78+ public A _1 () {
79+ return pa ._1 ();
80+ }
81+ @ Override
82+ public B _2 () {
83+ return pb ._1 ();
84+ }
85+ @ Override
86+ public C _3 () {
87+ return pc ._1 ();
88+ }
89+
90+ @ Override
91+ public D _4 () {
92+ return pd ._1 ();
93+ }
94+ };
95+ }
96+
97+ public static <A , B , C , D , E > P5 <A , B , C , D , E > lazy (final P1 <A > pa , final P1 <B > pb , final P1 <C > pc , final P1 <D > pd , P1 <E > pe ) {
98+ return new P5 <A , B , C , D , E >() {
99+ @ Override
100+ public A _1 () {
101+ return pa ._1 ();
102+ }
103+ @ Override
104+ public B _2 () {
105+ return pb ._1 ();
106+ }
107+ @ Override
108+ public C _3 () {
109+ return pc ._1 ();
110+ }
111+
112+ @ Override
113+ public D _4 () {
114+ return pd ._1 ();
115+ }
116+
117+ @ Override
118+ public E _5 () {
119+ return pe ._1 ();
120+ }
121+ };
122+ }
123+
124+ public static <A , B , C , D , E , F > P6 <A , B , C , D , E , F > lazy (final P1 <A > pa , final P1 <B > pb , final P1 <C > pc , final P1 <D > pd , P1 <E > pe , P1 <F > pf ) {
125+ return new P6 <A , B , C , D , E , F >() {
126+ @ Override
127+ public A _1 () {
128+ return pa ._1 ();
129+ }
130+ @ Override
131+ public B _2 () {
132+ return pb ._1 ();
133+ }
134+ @ Override
135+ public C _3 () {
136+ return pc ._1 ();
137+ }
138+
139+ @ Override
140+ public D _4 () {
141+ return pd ._1 ();
142+ }
143+
144+ @ Override
145+ public E _5 () {
146+ return pe ._1 ();
147+ }
148+
149+ @ Override
150+ public F _6 () {
151+ return pf ._1 ();
152+ }
153+ };
154+ }
155+
156+ public static <A , B , C , D , E , F , G > P7 <A , B , C , D , E , F , G > lazy (final P1 <A > pa , final P1 <B > pb , final P1 <C > pc , final P1 <D > pd , P1 <E > pe , P1 <F > pf , P1 <G > pg ) {
157+ return new P7 <A , B , C , D , E , F , G >() {
158+ @ Override
159+ public A _1 () {
160+ return pa ._1 ();
161+ }
162+ @ Override
163+ public B _2 () {
164+ return pb ._1 ();
165+ }
166+ @ Override
167+ public C _3 () {
168+ return pc ._1 ();
169+ }
170+
171+ @ Override
172+ public D _4 () {
173+ return pd ._1 ();
174+ }
175+
176+ @ Override
177+ public E _5 () {
178+ return pe ._1 ();
179+ }
180+
181+ @ Override
182+ public F _6 () {
183+ return pf ._1 ();
184+ }
185+
186+ @ Override
187+ public G _7 () {
188+ return pg ._1 ();
189+ }
190+ };
191+ }
192+
193+ public static <A , B , C , D , E , F , G , H > P8 <A , B , C , D , E , F , G , H > lazy (final P1 <A > pa , final P1 <B > pb , final P1 <C > pc , final P1 <D > pd , P1 <E > pe , P1 <F > pf , P1 <G > pg , P1 <H > ph ) {
194+ return new P8 <A , B , C , D , E , F , G , H >() {
195+ @ Override
196+ public A _1 () {
197+ return pa ._1 ();
198+ }
199+ @ Override
200+ public B _2 () {
201+ return pb ._1 ();
202+ }
203+ @ Override
204+ public C _3 () {
205+ return pc ._1 ();
206+ }
207+
208+ @ Override
209+ public D _4 () {
210+ return pd ._1 ();
211+ }
212+
213+ @ Override
214+ public E _5 () {
215+ return pe ._1 ();
216+ }
217+
218+ @ Override
219+ public F _6 () {
220+ return pf ._1 ();
221+ }
222+
223+ @ Override
224+ public G _7 () {
225+ return pg ._1 ();
226+ }
227+
228+ @ Override
229+ public H _8 () {
230+ return ph ._1 ();
231+ }
232+ };
233+ }
234+
235+ /**
41236 * A function that puts an element in a product-2.
42237 *
43238 * @return A function that puts an element in a product-2.
0 commit comments