1+ let
2+ ~ unsafeFromBuiltinData : all a . (\a - > data - > a ) a - > data - > a
3+ = / \a - > \(v : (\a - > data - > a ) a ) - > v
4+ in
5+ let
6+ ! unsafeDataAsMap : data - > list (pair data data ) = unMapData
7+ in
8+ let
9+ ! unsafeDataAsList : data - > list data = unListData
10+ in
11+ let
12+ ! unsafeDataAsI : data - > int eger = unIData
13+ in
14+ let
15+ ! unsafeDataAsConstr : data - > pair int eger (list data ) = unConstrData
16+ in
17+ let
18+ ! unsafeDataAsB : data - > bytestring = unBData
19+ in
20+ let
21+ ! unitval : unit = ()
22+ in
23+ let
24+ ~ toBuiltinData : all a . (\a - > a - > data ) a - > a - > data
25+ = / \a - > \(v : (\a - > a - > data ) a ) - > v
26+ in
27+ let
28+ ! mkI : int eger - > data = iData
29+ in
30+ letrec
31+ data (Maybe :: * - > * ) a | Maybe_match where
32+ Just : a - > Maybe a
33+ Nothing : Maybe a
34+ in
35+ let
36+ ~ fromBuiltinData : all a . (\a - > data - > Maybe a ) a - > data - > Maybe a
37+ = / \a - > \(v : (\a - > data - > Maybe a ) a ) - > v
38+ in
39+ let
40+ ! error : all a . unit - > a = / \a - > \(thunk : unit ) - > error {a }
41+ in
42+ let
43+ ! equalsInteger : int eger - > int eger - > bool = equalsInteger
44+ in
45+ let
46+ ! chooseData : all a . data - > a - > a - > a - > a - > a - > a = chooseData
47+ in
48+ let
49+ ! casePair : all a b r . pair a b - > (a - > b - > r ) - > r
50+ = / \a b r - >
51+ \(p : pair a b ) (f : a - > b - > r ) - >
52+ f (fstPair {a } {b } p ) (sndPair {a } {b } p )
53+ in
54+ letrec
55+ data SomeVeryLargeEnum | SomeVeryLargeEnum_match where
56+ E10Ten : SomeVeryLargeEnum
57+ E1One : SomeVeryLargeEnum
58+ E2Two : SomeVeryLargeEnum
59+ E3Three : SomeVeryLargeEnum
60+ E4Four : SomeVeryLargeEnum
61+ E5Five : SomeVeryLargeEnum
62+ E6Six : SomeVeryLargeEnum
63+ E7Seven : SomeVeryLargeEnum
64+ E8Eight : SomeVeryLargeEnum
65+ E9Nine : SomeVeryLargeEnum
66+ in
67+ letrec
68+ data Unit | Unit_match where
69+ Unit : Unit
70+ in
71+ let
72+ ~ `$cunsafeFromBuiltinData ` : data - > SomeVeryLargeEnum
73+ = \(input : data ) - >
74+ let
75+ ! input : data = input
76+ in
77+ let
78+ ! decoded : int eger = unsafeDataAsI input
79+ in
80+ if ThenElse
81+ {all dead . SomeVeryLargeEnum }
82+ (equalsInteger decoded 0)
83+ (/ \dead - > E1One )
84+ (/ \dead - >
85+ if ThenElse
86+ {all dead . SomeVeryLargeEnum }
87+ (equalsInteger decoded 1)
88+ (/ \dead - > E2Two )
89+ (/ \dead - >
90+ if ThenElse
91+ {all dead . SomeVeryLargeEnum }
92+ (equalsInteger decoded 2)
93+ (/ \dead - > E3Three )
94+ (/ \dead - >
95+ if ThenElse
96+ {all dead . SomeVeryLargeEnum }
97+ (equalsInteger decoded 3)
98+ (/ \dead - > E4Four )
99+ (/ \dead - >
100+ if ThenElse
101+ {all dead . SomeVeryLargeEnum }
102+ (equalsInteger decoded 4)
103+ (/ \dead - > E5Five )
104+ (/ \dead - >
105+ if ThenElse
106+ {all dead . SomeVeryLargeEnum }
107+ (equalsInteger decoded 5)
108+ (/ \dead - > E6Six )
109+ (/ \dead - >
110+ if ThenElse
111+ {all dead . SomeVeryLargeEnum }
112+ (equalsInteger decoded 6)
113+ (/ \dead - > E7Seven )
114+ (/ \dead - >
115+ if ThenElse
116+ {all dead . SomeVeryLargeEnum }
117+ (equalsInteger decoded 7)
118+ (/ \dead - > E8Eight )
119+ (/ \dead - >
120+ if ThenElse
121+ {all dead . SomeVeryLargeEnum }
122+ (equalsInteger decoded 8)
123+ (/ \dead - > E9Nine )
124+ (/ \dead - >
125+ if ThenElse
126+ {all dead .
127+ SomeVeryLargeEnum }
128+ (equalsInteger decoded 9)
129+ (/ \dead - > E10Ten )
130+ (/ \dead - >
131+ error
132+ {SomeVeryLargeEnum }
133+ unitval )
134+ {all dead . dead })
135+ {all dead . dead })
136+ {all dead . dead })
137+ {all dead . dead })
138+ {all dead . dead })
139+ {all dead . dead })
140+ {all dead . dead })
141+ {all dead . dead })
142+ {all dead . dead })
143+ {all dead . dead }
144+ in
145+ let
146+ ~ `$fUnsafeFromDataSomeVeryLargeEnum ` : (\a - > data - > a ) SomeVeryLargeEnum
147+ = `$cunsafeFromBuiltinData `
148+ in
149+ let
150+ ~ `$ctoBuiltinData ` : SomeVeryLargeEnum - > data
151+ = \(ds : SomeVeryLargeEnum ) - >
152+ SomeVeryLargeEnum_match
153+ ds
154+ {all dead . data }
155+ (/ \dead - > mkI 9)
156+ (/ \dead - > mkI 0)
157+ (/ \dead - > mkI 1)
158+ (/ \dead - > mkI 2)
159+ (/ \dead - > mkI 3)
160+ (/ \dead - > mkI 4)
161+ (/ \dead - > mkI 5)
162+ (/ \dead - > mkI 6)
163+ (/ \dead - > mkI 7)
164+ (/ \dead - > mkI 8)
165+ {all dead . dead }
166+ in
167+ let
168+ ~ `$fToDataSomeVeryLargeEnum ` : (\a - > a - > data ) SomeVeryLargeEnum
169+ = `$ctoBuiltinData `
170+ in
171+ let
172+ ~ `$cfromBuiltinData ` :
173+ data - > Maybe SomeVeryLargeEnum
174+ = \(input : data ) - >
175+ let
176+ ! input : data = input
177+ in
178+ chooseData
179+ {Unit - > Maybe SomeVeryLargeEnum }
180+ input
181+ (\(ds : Unit ) - >
182+ casePair
183+ {int eger}
184+ {list data }
185+ {Maybe SomeVeryLargeEnum }
186+ (unsafeDataAsConstr input )
187+ (\(l : int eger) (r : list data ) - > Nothing {SomeVeryLargeEnum }))
188+ (\(ds : Unit ) - >
189+ let
190+ ! ds : list (pair data data ) = unsafeDataAsMap input
191+ in
192+ Nothing {SomeVeryLargeEnum })
193+ (\(ds : Unit ) - >
194+ let
195+ ! ds : list data = unsafeDataAsList input
196+ in
197+ Nothing {SomeVeryLargeEnum })
198+ (\(ds : Unit ) - >
199+ let
200+ ! decoded : int eger = unsafeDataAsI input
201+ in
202+ if ThenElse
203+ {all dead . Maybe SomeVeryLargeEnum }
204+ (equalsInteger decoded 0)
205+ (/ \dead - > Just {SomeVeryLargeEnum } E1One )
206+ (/ \dead - >
207+ if ThenElse
208+ {all dead . Maybe SomeVeryLargeEnum }
209+ (equalsInteger decoded 1)
210+ (/ \dead - > Just {SomeVeryLargeEnum } E2Two )
211+ (/ \dead - >
212+ if ThenElse
213+ {all dead . Maybe SomeVeryLargeEnum }
214+ (equalsInteger decoded 2)
215+ (/ \dead - > Just {SomeVeryLargeEnum } E3Three )
216+ (/ \dead - >
217+ if ThenElse
218+ {all dead . Maybe SomeVeryLargeEnum }
219+ (equalsInteger decoded 3)
220+ (/ \dead - > Just {SomeVeryLargeEnum } E4Four )
221+ (/ \dead - >
222+ if ThenElse
223+ {all dead . Maybe SomeVeryLargeEnum }
224+ (equalsInteger decoded 4)
225+ (/ \dead - > Just {SomeVeryLargeEnum } E5Five )
226+ (/ \dead - >
227+ if ThenElse
228+ {all dead . Maybe SomeVeryLargeEnum }
229+ (equalsInteger decoded 5)
230+ (/ \dead - >
231+ Just {SomeVeryLargeEnum } E6Six )
232+ (/ \dead - >
233+ if ThenElse
234+ {all dead . Maybe SomeVeryLargeEnum }
235+ (equalsInteger decoded 6)
236+ (/ \dead - >
237+ Just
238+ {SomeVeryLargeEnum }
239+ E7Seven )
240+ (/ \dead - >
241+ if ThenElse
242+ {all dead .
243+ Maybe SomeVeryLargeEnum }
244+ (equalsInteger decoded 7)
245+ (/ \dead - >
246+ Just
247+ {SomeVeryLargeEnum }
248+ E8Eight )
249+ (/ \dead - >
250+ if ThenElse
251+ {all dead .
252+ Maybe
253+ SomeVeryLargeEnum }
254+ (equalsInteger decoded 8)
255+ (/ \dead - >
256+ Just
257+ {SomeVeryLargeEnum }
258+ E9Nine )
259+ (/ \dead - >
260+ if ThenElse
261+ {all dead .
262+ Maybe
263+ SomeVeryLargeEnum }
264+ (equalsInteger
265+ decoded
266+ 9)
267+ (/ \dead - >
268+ Just
269+ {SomeVeryLargeEnum }
270+ E10Ten )
271+ (/ \dead - >
272+ Nothing
273+ {SomeVeryLargeEnum })
274+ {all dead . dead })
275+ {all dead . dead })
276+ {all dead . dead })
277+ {all dead . dead })
278+ {all dead . dead })
279+ {all dead . dead })
280+ {all dead . dead })
281+ {all dead . dead })
282+ {all dead . dead })
283+ {all dead . dead })
284+ (\(ds : Unit ) - >
285+ let
286+ ! ds : bytestring = unsafeDataAsB input
287+ in
288+ Nothing {SomeVeryLargeEnum })
289+ Unit
290+ in
291+ let
292+ ~ `$fFromDataSomeVeryLargeEnum ` : (\a - > data - > Maybe a ) SomeVeryLargeEnum
293+ = `$cfromBuiltinData `
294+ in
295+ fromBuiltinData
296+ {SomeVeryLargeEnum }
297+ `$fFromDataSomeVeryLargeEnum `
298+ (toBuiltinData
299+ {SomeVeryLargeEnum }
300+ `$fToDataSomeVeryLargeEnum `
301+ (unsafeFromBuiltinData
302+ {SomeVeryLargeEnum }
303+ `$fUnsafeFromDataSomeVeryLargeEnum `
304+ (toBuiltinData {SomeVeryLargeEnum } `$fToDataSomeVeryLargeEnum ` E10Ten )))
0 commit comments