functional: Added functional lib
[nit.git] / lib / functional / functional_types.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 # This module provides functional type to represents various function forms.
16 # Function types can hold up to 20 arguments. The type `Fun` is for function
17 # (input and output) and `Proc` is for procedure (input but no output).
18 # This file is automatically generated, do not edit it manually.
19 module functional_types
20
21 interface Routine
22 end
23 interface Fun
24 super Routine
25 end
26 interface Proc
27 super Routine
28 end
29 class Fun0[RESULT]
30 super Fun
31 fun call: RESULT is abstract
32 end
33 class Proc0
34 super Proc
35 fun call is abstract
36 end
37 class Fun1[A0,RESULT]
38 super Fun
39 fun call(a0: A0): RESULT is abstract
40 end
41 class Proc1[A0]
42 super Proc
43 fun call(a0: A0) is abstract
44 end
45 class Fun2[A0,A1,RESULT]
46 super Fun
47 fun call(a0: A0,a1: A1): RESULT is abstract
48 end
49 class Proc2[A0,A1]
50 super Proc
51 fun call(a0: A0,a1: A1) is abstract
52 end
53 class Fun3[A0,A1,A2,RESULT]
54 super Fun
55 fun call(a0: A0,a1: A1,a2: A2): RESULT is abstract
56 end
57 class Proc3[A0,A1,A2]
58 super Proc
59 fun call(a0: A0,a1: A1,a2: A2) is abstract
60 end
61 class Fun4[A0,A1,A2,A3,RESULT]
62 super Fun
63 fun call(a0: A0,a1: A1,a2: A2,a3: A3): RESULT is abstract
64 end
65 class Proc4[A0,A1,A2,A3]
66 super Proc
67 fun call(a0: A0,a1: A1,a2: A2,a3: A3) is abstract
68 end
69 class Fun5[A0,A1,A2,A3,A4,RESULT]
70 super Fun
71 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4): RESULT is abstract
72 end
73 class Proc5[A0,A1,A2,A3,A4]
74 super Proc
75 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4) is abstract
76 end
77 class Fun6[A0,A1,A2,A3,A4,A5,RESULT]
78 super Fun
79 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5): RESULT is abstract
80 end
81 class Proc6[A0,A1,A2,A3,A4,A5]
82 super Proc
83 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5) is abstract
84 end
85 class Fun7[A0,A1,A2,A3,A4,A5,A6,RESULT]
86 super Fun
87 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6): RESULT is abstract
88 end
89 class Proc7[A0,A1,A2,A3,A4,A5,A6]
90 super Proc
91 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6) is abstract
92 end
93 class Fun8[A0,A1,A2,A3,A4,A5,A6,A7,RESULT]
94 super Fun
95 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7): RESULT is abstract
96 end
97 class Proc8[A0,A1,A2,A3,A4,A5,A6,A7]
98 super Proc
99 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7) is abstract
100 end
101 class Fun9[A0,A1,A2,A3,A4,A5,A6,A7,A8,RESULT]
102 super Fun
103 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8): RESULT is abstract
104 end
105 class Proc9[A0,A1,A2,A3,A4,A5,A6,A7,A8]
106 super Proc
107 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8) is abstract
108 end
109 class Fun10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,RESULT]
110 super Fun
111 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9): RESULT is abstract
112 end
113 class Proc10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9]
114 super Proc
115 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9) is abstract
116 end
117 class Fun11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,RESULT]
118 super Fun
119 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10): RESULT is abstract
120 end
121 class Proc11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10]
122 super Proc
123 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10) is abstract
124 end
125 class Fun12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,RESULT]
126 super Fun
127 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11): RESULT is abstract
128 end
129 class Proc12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11]
130 super Proc
131 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11) is abstract
132 end
133 class Fun13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,RESULT]
134 super Fun
135 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12): RESULT is abstract
136 end
137 class Proc13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12]
138 super Proc
139 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12) is abstract
140 end
141 class Fun14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,RESULT]
142 super Fun
143 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13): RESULT is abstract
144 end
145 class Proc14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13]
146 super Proc
147 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13) is abstract
148 end
149 class Fun15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,RESULT]
150 super Fun
151 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14): RESULT is abstract
152 end
153 class Proc15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14]
154 super Proc
155 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14) is abstract
156 end
157 class Fun16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,RESULT]
158 super Fun
159 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15): RESULT is abstract
160 end
161 class Proc16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15]
162 super Proc
163 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15) is abstract
164 end
165 class Fun17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,RESULT]
166 super Fun
167 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16): RESULT is abstract
168 end
169 class Proc17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16]
170 super Proc
171 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16) is abstract
172 end
173 class Fun18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,RESULT]
174 super Fun
175 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17): RESULT is abstract
176 end
177 class Proc18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17]
178 super Proc
179 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17) is abstract
180 end
181 class Fun19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,RESULT]
182 super Fun
183 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17,a18: A18): RESULT is abstract
184 end
185 class Proc19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18]
186 super Proc
187 fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17,a18: A18) is abstract
188 end