never executed always true always false
1 -- GENERATED by C->Haskell Compiler, version 0.28.8 Switcheroo, 25 November 2017 (Haskell)
2 -- Edit the ORIGNAL .chs file instead!
3
4
5 {-# LANGUAGE TemplateHaskell, StandaloneDeriving #-}
6 -- suppress warnings about unused Extra_ constructors
7 {-# OPTIONS_GHC -Wno-unused-top-binds #-}
8 module QuantLib.Internal.CalendarEnum
9 (
10 mapCalendar
11 , CalendarConstructor(..)
12 , JointCalendarRule(..)
13 , readCalendarConstructorPlain
14
15 , mapDayCounter
16 , DayCounterConstructor(..)
17 , readDayCounterConstructorPlain
18 ) where
19
20
21
22
23
24
25 import QuantLib.Internal.Syntax
26 import QuantLib.Internal.Type
27 import QuantLib.Time.Date(Weekday)
28
29 data JointCalendarRule = JoinHolidays
30 | JoinBusinessDays
31 deriving (Enum,Show,Eq,Read)
32
33
34 data CalendarCountry = Country__Argentina
35 | Country__Australia
36 | Country__Austria
37 | Country__Botswana
38 | Country__Brazil
39 | Country__Canada
40 | Country__China
41 | Country__CzechRepublic
42 | Country__Denmark
43 | Country__Finland
44 | Country__France
45 | Country__Germany
46 | Country__HongKong
47 | Country__Hungary
48 | Country__Iceland
49 | Country__India
50 | Country__Indonesia
51 | Country__Israel
52 | Country__Italy
53 | Country__Japan
54 | Country__Mexico
55 | Country__NewZealand
56 | Country__Norway
57 | Country__Null
58 | Country__Poland
59 | Country__Romania
60 | Country__Russia
61 | Country__SaudiArabia
62 | Country__Singapore
63 | Country__Slovakia
64 | Country__SouthAfrica
65 | Country__SouthKorea
66 | Country__Sweden
67 | Country__Switzerland
68 | Country__Taiwan
69 | Country__TARGET
70 | Country__Thailand
71 | Country__Turkey
72 | Country__Ukraine
73 | Country__UnitedKingdom
74 | Country__UnitedStates
75 | Country__WeekendsOnly
76 | Country__Chile
77 | Country__Croatia
78 | Country__Malta
79 | Country__Montenegro
80 | Country__NorthMacedonia
81 | Country__Serbia
82 | Country__Slovenia
83 | Country__Uzbekistan
84 deriving (Show,Eq,Read)
85 instance Enum CalendarCountry where
86 succ Country__Argentina = Country__Australia
87 succ Country__Australia = Country__Austria
88 succ Country__Austria = Country__Botswana
89 succ Country__Botswana = Country__Brazil
90 succ Country__Brazil = Country__Canada
91 succ Country__Canada = Country__China
92 succ Country__China = Country__CzechRepublic
93 succ Country__CzechRepublic = Country__Denmark
94 succ Country__Denmark = Country__Finland
95 succ Country__Finland = Country__France
96 succ Country__France = Country__Germany
97 succ Country__Germany = Country__HongKong
98 succ Country__HongKong = Country__Hungary
99 succ Country__Hungary = Country__Iceland
100 succ Country__Iceland = Country__India
101 succ Country__India = Country__Indonesia
102 succ Country__Indonesia = Country__Israel
103 succ Country__Israel = Country__Italy
104 succ Country__Italy = Country__Japan
105 succ Country__Japan = Country__Mexico
106 succ Country__Mexico = Country__NewZealand
107 succ Country__NewZealand = Country__Norway
108 succ Country__Norway = Country__Null
109 succ Country__Null = Country__Poland
110 succ Country__Poland = Country__Romania
111 succ Country__Romania = Country__Russia
112 succ Country__Russia = Country__SaudiArabia
113 succ Country__SaudiArabia = Country__Singapore
114 succ Country__Singapore = Country__Slovakia
115 succ Country__Slovakia = Country__SouthAfrica
116 succ Country__SouthAfrica = Country__SouthKorea
117 succ Country__SouthKorea = Country__Sweden
118 succ Country__Sweden = Country__Switzerland
119 succ Country__Switzerland = Country__Taiwan
120 succ Country__Taiwan = Country__TARGET
121 succ Country__TARGET = Country__Thailand
122 succ Country__Thailand = Country__Turkey
123 succ Country__Turkey = Country__Ukraine
124 succ Country__Ukraine = Country__UnitedKingdom
125 succ Country__UnitedKingdom = Country__UnitedStates
126 succ Country__UnitedStates = Country__WeekendsOnly
127 succ Country__WeekendsOnly = Country__Chile
128 succ Country__Chile = Country__Croatia
129 succ Country__Croatia = Country__Malta
130 succ Country__Malta = Country__Montenegro
131 succ Country__Montenegro = Country__NorthMacedonia
132 succ Country__NorthMacedonia = Country__Serbia
133 succ Country__Serbia = Country__Slovenia
134 succ Country__Slovenia = Country__Uzbekistan
135 succ Country__Uzbekistan = error "CalendarCountry.succ: Country__Uzbekistan has no successor"
136
137 pred Country__Australia = Country__Argentina
138 pred Country__Austria = Country__Australia
139 pred Country__Botswana = Country__Austria
140 pred Country__Brazil = Country__Botswana
141 pred Country__Canada = Country__Brazil
142 pred Country__China = Country__Canada
143 pred Country__CzechRepublic = Country__China
144 pred Country__Denmark = Country__CzechRepublic
145 pred Country__Finland = Country__Denmark
146 pred Country__France = Country__Finland
147 pred Country__Germany = Country__France
148 pred Country__HongKong = Country__Germany
149 pred Country__Hungary = Country__HongKong
150 pred Country__Iceland = Country__Hungary
151 pred Country__India = Country__Iceland
152 pred Country__Indonesia = Country__India
153 pred Country__Israel = Country__Indonesia
154 pred Country__Italy = Country__Israel
155 pred Country__Japan = Country__Italy
156 pred Country__Mexico = Country__Japan
157 pred Country__NewZealand = Country__Mexico
158 pred Country__Norway = Country__NewZealand
159 pred Country__Null = Country__Norway
160 pred Country__Poland = Country__Null
161 pred Country__Romania = Country__Poland
162 pred Country__Russia = Country__Romania
163 pred Country__SaudiArabia = Country__Russia
164 pred Country__Singapore = Country__SaudiArabia
165 pred Country__Slovakia = Country__Singapore
166 pred Country__SouthAfrica = Country__Slovakia
167 pred Country__SouthKorea = Country__SouthAfrica
168 pred Country__Sweden = Country__SouthKorea
169 pred Country__Switzerland = Country__Sweden
170 pred Country__Taiwan = Country__Switzerland
171 pred Country__TARGET = Country__Taiwan
172 pred Country__Thailand = Country__TARGET
173 pred Country__Turkey = Country__Thailand
174 pred Country__Ukraine = Country__Turkey
175 pred Country__UnitedKingdom = Country__Ukraine
176 pred Country__UnitedStates = Country__UnitedKingdom
177 pred Country__WeekendsOnly = Country__UnitedStates
178 pred Country__Chile = Country__WeekendsOnly
179 pred Country__Croatia = Country__Chile
180 pred Country__Malta = Country__Croatia
181 pred Country__Montenegro = Country__Malta
182 pred Country__NorthMacedonia = Country__Montenegro
183 pred Country__Serbia = Country__NorthMacedonia
184 pred Country__Slovenia = Country__Serbia
185 pred Country__Uzbekistan = Country__Slovenia
186 pred Country__Argentina = error "CalendarCountry.pred: Country__Argentina has no predecessor"
187
188 enumFromTo from to = go from
189 where
190 end = fromEnum to
191 go v = case compare (fromEnum v) end of
192 LT -> v : go (succ v)
193 EQ -> [v]
194 GT -> []
195
196 enumFrom from = enumFromTo from Country__Uzbekistan
197
198 fromEnum Country__Argentina = 0
199 fromEnum Country__Australia = 1
200 fromEnum Country__Austria = 2
201 fromEnum Country__Botswana = 3
202 fromEnum Country__Brazil = 4
203 fromEnum Country__Canada = 5
204 fromEnum Country__China = 6
205 fromEnum Country__CzechRepublic = 7
206 fromEnum Country__Denmark = 8
207 fromEnum Country__Finland = 9
208 fromEnum Country__France = 10
209 fromEnum Country__Germany = 11
210 fromEnum Country__HongKong = 12
211 fromEnum Country__Hungary = 13
212 fromEnum Country__Iceland = 14
213 fromEnum Country__India = 15
214 fromEnum Country__Indonesia = 16
215 fromEnum Country__Israel = 17
216 fromEnum Country__Italy = 18
217 fromEnum Country__Japan = 19
218 fromEnum Country__Mexico = 20
219 fromEnum Country__NewZealand = 21
220 fromEnum Country__Norway = 22
221 fromEnum Country__Null = 23
222 fromEnum Country__Poland = 24
223 fromEnum Country__Romania = 25
224 fromEnum Country__Russia = 26
225 fromEnum Country__SaudiArabia = 27
226 fromEnum Country__Singapore = 28
227 fromEnum Country__Slovakia = 29
228 fromEnum Country__SouthAfrica = 30
229 fromEnum Country__SouthKorea = 31
230 fromEnum Country__Sweden = 32
231 fromEnum Country__Switzerland = 33
232 fromEnum Country__Taiwan = 34
233 fromEnum Country__TARGET = 35
234 fromEnum Country__Thailand = 36
235 fromEnum Country__Turkey = 37
236 fromEnum Country__Ukraine = 38
237 fromEnum Country__UnitedKingdom = 39
238 fromEnum Country__UnitedStates = 40
239 fromEnum Country__WeekendsOnly = 41
240 fromEnum Country__Chile = 42
241 fromEnum Country__Croatia = 43
242 fromEnum Country__Malta = 44
243 fromEnum Country__Montenegro = 45
244 fromEnum Country__NorthMacedonia = 46
245 fromEnum Country__Serbia = 47
246 fromEnum Country__Slovenia = 48
247 fromEnum Country__Uzbekistan = 49
248
249 toEnum 0 = Country__Argentina
250 toEnum 1 = Country__Australia
251 toEnum 2 = Country__Austria
252 toEnum 3 = Country__Botswana
253 toEnum 4 = Country__Brazil
254 toEnum 5 = Country__Canada
255 toEnum 6 = Country__China
256 toEnum 7 = Country__CzechRepublic
257 toEnum 8 = Country__Denmark
258 toEnum 9 = Country__Finland
259 toEnum 10 = Country__France
260 toEnum 11 = Country__Germany
261 toEnum 12 = Country__HongKong
262 toEnum 13 = Country__Hungary
263 toEnum 14 = Country__Iceland
264 toEnum 15 = Country__India
265 toEnum 16 = Country__Indonesia
266 toEnum 17 = Country__Israel
267 toEnum 18 = Country__Italy
268 toEnum 19 = Country__Japan
269 toEnum 20 = Country__Mexico
270 toEnum 21 = Country__NewZealand
271 toEnum 22 = Country__Norway
272 toEnum 23 = Country__Null
273 toEnum 24 = Country__Poland
274 toEnum 25 = Country__Romania
275 toEnum 26 = Country__Russia
276 toEnum 27 = Country__SaudiArabia
277 toEnum 28 = Country__Singapore
278 toEnum 29 = Country__Slovakia
279 toEnum 30 = Country__SouthAfrica
280 toEnum 31 = Country__SouthKorea
281 toEnum 32 = Country__Sweden
282 toEnum 33 = Country__Switzerland
283 toEnum 34 = Country__Taiwan
284 toEnum 35 = Country__TARGET
285 toEnum 36 = Country__Thailand
286 toEnum 37 = Country__Turkey
287 toEnum 38 = Country__Ukraine
288 toEnum 39 = Country__UnitedKingdom
289 toEnum 40 = Country__UnitedStates
290 toEnum 41 = Country__WeekendsOnly
291 toEnum 42 = Country__Chile
292 toEnum 43 = Country__Croatia
293 toEnum 44 = Country__Malta
294 toEnum 45 = Country__Montenegro
295 toEnum 46 = Country__NorthMacedonia
296 toEnum 47 = Country__Serbia
297 toEnum 48 = Country__Slovenia
298 toEnum 49 = Country__Uzbekistan
299 toEnum unmatched = error ("CalendarCountry.toEnum: Cannot match " ++ show unmatched)
300
301
302 data AustriaMarket = Austria__Settlement
303 | Austria__Exchange
304 deriving (Enum,Show,Eq,Read)
305
306
307 data BrazilMarket = Brazil__Settlement
308 | Brazil__Exchange
309 deriving (Enum,Show,Eq,Read)
310
311
312 data CanadaMarket = Canada__Settlement
313 | Canada__TSX
314 deriving (Enum,Show,Eq,Read)
315
316
317 data ChinaMarket = China__SSE
318 | China__IB
319 deriving (Enum,Show,Eq,Read)
320
321
322 data FranceMarket = France__Settlement
323 | France__Exchange
324 deriving (Enum,Show,Eq,Read)
325
326
327 data GermanyMarket = Germany__Settlement
328 | Germany__FrankfurtStockExchange
329 | Germany__Xetra
330 | Germany__Eurex
331 | Germany__Euwax
332 deriving (Enum,Show,Eq,Read)
333
334
335 data IndonesiaMarket = Indonesia__BEJ
336 | Indonesia__JSX
337 | Indonesia__IDX
338 deriving (Enum,Show,Eq,Read)
339
340
341 data IsraelMarket = Israel__Settlement
342 | Israel__TASE
343 | Israel__SHIR
344 | Israel__Telbor
345 deriving (Enum,Show,Eq,Read)
346
347
348 data ItalyMarket = Italy__Settlement
349 | Italy__Exchange
350 deriving (Enum,Show,Eq,Read)
351
352
353 data RomaniaMarket = Romania__Public
354 | Romania__BVB
355 deriving (Enum,Show,Eq,Read)
356
357
358 data RussiaMarket = Russia__Settlement
359 | Russia__MOEX
360 deriving (Enum,Show,Eq,Read)
361
362
363 data SouthKoreaMarket = SouthKorea__Settlement
364 | SouthKorea__KRX
365 deriving (Enum,Show,Eq,Read)
366
367
368 data UnitedKingdomMarket = UnitedKingdom__Settlement
369 | UnitedKingdom__Exchange
370 | UnitedKingdom__Metals
371 deriving (Enum,Show,Eq,Read)
372
373
374 data UnitedStatesMarket = UnitedStates__Settlement
375 | UnitedStates__NYSE
376 | UnitedStates__GovernmentBond
377 | UnitedStates__NERC
378 | UnitedStates__LiborImpact
379 | UnitedStates__FederalReserve
380 | UnitedStates__SOFR
381 deriving (Enum,Show,Eq,Read)
382
383
384 data AustraliaMarket = Australia__Settlement
385 | Australia__ASX
386 deriving (Enum,Show,Eq,Read)
387
388
389 data NewZealandMarket = NewZealand__Wellington
390 | NewZealand__Auckland
391 deriving (Enum,Show,Eq,Read)
392
393
394 data PolandMarket = Poland__Settlement
395 | Poland__WSE
396 deriving (Enum,Show,Eq,Read)
397
398
399
400 data CalendarExtra =
401 Extra__Bespoke !String ![Weekday]
402 | Extra__Joint2 !Calendar !Calendar !JointCalendarRule
403 | Extra__Joint3 !Calendar !Calendar !Calendar !JointCalendarRule
404 | Extra__Joint4 !Calendar !Calendar !Calendar !Calendar !JointCalendarRule
405
406 $(deriveCrossEnum CrossEnumSpec
407 { crossTypeName = "CalendarConstructor"
408 , crossMapperFn = "mapCalendar"
409 , crossMainEnum = ''CalendarCountry
410 , crossSubSuffix = "Market"
411 , crossExtraType = ''CalendarExtra
412 })
413
414 deriving instance Show CalendarConstructor
415 deriving instance Eq CalendarConstructor
416
417 $(deriveReadPlain "readCalendarConstructorPlain" ''CalendarConstructor)
418
419 data DayCounterType = DayCounter__Actual360
420 | DayCounter__Actual364
421 | DayCounter__Actual365Fixed
422 | DayCounter__ActualActual
423 | DayCounter__One
424 | DayCounter__Simple
425 | DayCounter__Thirty360
426 | DayCounter__Thirty365
427 | DayCounter__Actual36525
428 | DayCounter__Actual366
429 deriving (Show,Eq,Read)
430 instance Enum DayCounterType where
431 succ DayCounter__Actual360 = DayCounter__Actual364
432 succ DayCounter__Actual364 = DayCounter__Actual365Fixed
433 succ DayCounter__Actual365Fixed = DayCounter__ActualActual
434 succ DayCounter__ActualActual = DayCounter__One
435 succ DayCounter__One = DayCounter__Simple
436 succ DayCounter__Simple = DayCounter__Thirty360
437 succ DayCounter__Thirty360 = DayCounter__Thirty365
438 succ DayCounter__Thirty365 = DayCounter__Actual36525
439 succ DayCounter__Actual36525 = DayCounter__Actual366
440 succ DayCounter__Actual366 = error "DayCounterType.succ: DayCounter__Actual366 has no successor"
441
442 pred DayCounter__Actual364 = DayCounter__Actual360
443 pred DayCounter__Actual365Fixed = DayCounter__Actual364
444 pred DayCounter__ActualActual = DayCounter__Actual365Fixed
445 pred DayCounter__One = DayCounter__ActualActual
446 pred DayCounter__Simple = DayCounter__One
447 pred DayCounter__Thirty360 = DayCounter__Simple
448 pred DayCounter__Thirty365 = DayCounter__Thirty360
449 pred DayCounter__Actual36525 = DayCounter__Thirty365
450 pred DayCounter__Actual366 = DayCounter__Actual36525
451 pred DayCounter__Actual360 = error "DayCounterType.pred: DayCounter__Actual360 has no predecessor"
452
453 enumFromTo from to = go from
454 where
455 end = fromEnum to
456 go v = case compare (fromEnum v) end of
457 LT -> v : go (succ v)
458 EQ -> [v]
459 GT -> []
460
461 enumFrom from = enumFromTo from DayCounter__Actual366
462
463 fromEnum DayCounter__Actual360 = 0
464 fromEnum DayCounter__Actual364 = 1
465 fromEnum DayCounter__Actual365Fixed = 2
466 fromEnum DayCounter__ActualActual = 3
467 fromEnum DayCounter__One = 4
468 fromEnum DayCounter__Simple = 5
469 fromEnum DayCounter__Thirty360 = 6
470 fromEnum DayCounter__Thirty365 = 7
471 fromEnum DayCounter__Actual36525 = 8
472 fromEnum DayCounter__Actual366 = 9
473
474 toEnum 0 = DayCounter__Actual360
475 toEnum 1 = DayCounter__Actual364
476 toEnum 2 = DayCounter__Actual365Fixed
477 toEnum 3 = DayCounter__ActualActual
478 toEnum 4 = DayCounter__One
479 toEnum 5 = DayCounter__Simple
480 toEnum 6 = DayCounter__Thirty360
481 toEnum 7 = DayCounter__Thirty365
482 toEnum 8 = DayCounter__Actual36525
483 toEnum 9 = DayCounter__Actual366
484 toEnum unmatched = error ("DayCounterType.toEnum: Cannot match " ++ show unmatched)
485
486
487 data ActualActualConvention = ActualActual__ISMA
488 | ActualActual__Bond
489 | ActualActual__ISDA
490 | ActualActual__Historical
491 | ActualActual__Actual365
492 | ActualActual__AFB
493 | ActualActual__Euro
494 deriving (Enum,Show,Eq,Read)
495
496
497 data Thirty360Convention = Thirty360__USA
498 | Thirty360__BondBasis
499 | Thirty360__European
500 | Thirty360__EurobondBasis
501 | Thirty360__Italian
502 | Thirty360__German
503 | Thirty360__ISMA
504 | Thirty360__ISDA
505 | Thirty360__NASD
506 deriving (Enum,Show,Eq,Read)
507
508
509 data Actual365FixedConvention = Actual365Fixed__Standard
510 | Actual365Fixed__Canadian
511 | Actual365Fixed__NoLeap
512 deriving (Enum,Show,Eq,Read)
513
514
515 -- these three don't have a real named Convention enum upstream, just a plain
516 -- includeLastDay bool -- this marker tells deriveCrossEnum to give them a single
517 -- constructor carrying a runtime Bool instead of cross-producting named values
518 type Actual360Convention = Bool
519 type Actual36525Convention = Bool
520 type Actual366Convention = Bool
521
522 data DayCounterExtra = Extra__Business252 !Calendar
523 | Extra__ActualActualBond' !Schedule
524 | Extra__ActualActualISMA' !Schedule
525
526 $(deriveCrossEnum CrossEnumSpec
527 { crossTypeName = "DayCounterConstructor"
528 , crossMapperFn = "mapDayCounter"
529 , crossMainEnum = ''DayCounterType
530 , crossSubSuffix = "Convention"
531 , crossExtraType = ''DayCounterExtra
532 })
533
534 deriving instance Show DayCounterConstructor
535 deriving instance Eq DayCounterConstructor
536
537 $(deriveReadPlain "readDayCounterConstructorPlain" ''DayCounterConstructor)
538
539 -- vim: set ff=unix ts=8 sts=2 sw=2 et: