{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} #if __GLASGOW_HASKELL__ >= 800 {-# LANGUAGE DeriveLift #-} {-# LANGUAGE StandaloneDeriving #-} #endif {-# LANGUAGE TemplateHaskell #-} module Types where import Data.Csv #if __GLASGOW_HASKELL__ < 800 import Language.Haskell.TH.Lift #else import Language.Haskell.TH.Syntax #endif data Rec = Rec { _rKey :: !String , _rVal :: !Int } deriving (Show) #if __GLASGOW_HASKELL__ < 800 $(deriveLift ''Rec) #else deriving instance Lift Rec #endif instance FromNamedRecord Rec where parseNamedRecord r = Rec <$> r .: "key" <*> r .: "val"