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: