git.iko.soy/typeable/extra-time
on master help sign in
exterminate orphans
4d32a63Ville Tirronen
extra-time.cabal+4−1
@@ -15,7 +15,9 @@ library
15 DataKinds
15 DataKinds
16 DeriveFunctor
16 DeriveFunctor
17 DeriveGeneric
17 DeriveGeneric
18+ DerivingStrategies
18 GeneralizedNewtypeDeriving
19 GeneralizedNewtypeDeriving
20+ ImportQualifiedPost
19 KindSignatures
21 KindSignatures
20 OverloadedStrings
22 OverloadedStrings
21 RankNTypes
23 RankNTypes
@@ -46,6 +48,7 @@ library
46 QuickCheck ,
48 QuickCheck ,
47 quickcheck-instances ,
49 quickcheck-instances ,
48 timezone-series ,
50 timezone-series ,
51+ vector ,
49 if !impl(ghcjs)
52 if !impl(ghcjs)
50 build-depends:
53 build-depends:
51 dom-parser ,
54 dom-parser ,
@@ -58,4 +61,4 @@ library
58 Data.Time.Utils
61 Data.Time.Utils
59 other-modules:
62 other-modules:
60 Data.Time.LocalTime.Instances
63 Data.Time.LocalTime.Instances
61− Holidays.Orphans
64+ Holidays.EDay
src/Data/Time/Holidays.hs+3−4
@@ -8,15 +8,14 @@ import qualified Data.Set as S
8import Data.Time
8import Data.Time
9import Data.Time.Calendar.OrdinalDate
9import Data.Time.Calendar.OrdinalDate
10import Data.Time.LocalTime.TimeZone.Series
10import Data.Time.LocalTime.TimeZone.Series
11−import Data.Csv (Only(..))
12import Data.FileEmbed (makeRelativeToProject)
11import Data.FileEmbed (makeRelativeToProject)
13import Data.Csv.Embed (embedRecords)
12import Data.Csv.Embed (embedRecords)
14−import Holidays.Orphans ()
13+import Holidays.EDay (eDayToDay, EDay)
15
14
16opmHolidays2023to2030 :: S.Set Day
15opmHolidays2023to2030 :: S.Set Day
17opmHolidays2023to2030 = S.fromList $
16opmHolidays2023to2030 = S.fromList $
18− fromOnly <$>
17+ eDayToDay <$>
19− $(makeRelativeToProject "data/opm-holidays.csv" >>= embedRecords (Proxy @(Only Day)))
18+ $(makeRelativeToProject "data/opm-holidays.csv" >>= embedRecords (Proxy @(EDay)))
20
19
21addTimeExcludingHolidays
20addTimeExcludingHolidays
22 :: S.Set Day
21 :: S.Set Day
src/Holidays/Orphans.hsdeleted−15
@@ -1,15 +0,0 @@
1−{-# OPTIONS -Wno-orphans #-}
2−
3−module Holidays.Orphans () where
4−
5−import Data.ByteString.Char8
6−import Data.Csv
7−import Data.Time
8−import Language.Haskell.TH.Lift
9−
10−deriveLift ''Day
11−deriveLift ''Only
12−
13−instance FromField Day where
14− parseField =
15− parseTimeM False defaultTimeLocale (iso8601DateFormat Nothing) . unpack