git.iko.soy/typeable/cassava-embed
on master help sign in
30 lines 596 B history raw
1{-# LANGUAGE CPP #-}
2{-# LANGUAGE OverloadedStrings #-}
3#if __GLASGOW_HASKELL__ >= 800
4{-# LANGUAGE DeriveLift #-}
5{-# LANGUAGE StandaloneDeriving #-}
6#endif
7{-# LANGUAGE TemplateHaskell #-}
9module Types where
11import Data.Csv
12#if __GLASGOW_HASKELL__ < 800
13import Language.Haskell.TH.Lift
14#else
15import Language.Haskell.TH.Syntax
16#endif
18data Rec = Rec
19 { _rKey :: !String
20 , _rVal :: !Int
21 } deriving (Show)
23#if __GLASGOW_HASKELL__ < 800
24$(deriveLift ''Rec)
25#else
26deriving instance Lift Rec
27#endif
29instance FromNamedRecord Rec where
30 parseNamedRecord r = Rec <$> r .: "key" <*> r .: "val"