-- Use Template Haskell to generate good instances. {-# LANGUAGE CPP #-} {-# LANGUAGE TemplateHaskell #-} {-# OPTIONS_GHC -fno-warn-orphans #-} #ifdef HAS_BOTH_AESON_AND_BENCHMARKS {-# LANGUAGE PackageImports #-} #endif module Twitter.TH ( Metadata(..) , Geo(..) , Story(..) , Result(..) ) where import Prelude () import Twitter import Twitter.Options #ifndef HAS_BOTH_AESON_AND_BENCHMARKS import Data.Aeson.TH #else import "aeson" Data.Aeson.TH import qualified "aeson-benchmarks" Data.Aeson.TH as B #endif $(deriveJSON twitterOptions ''Metadata) $(deriveJSON twitterOptions ''Geo) $(deriveJSON twitterOptions ''Story) $(deriveJSON twitterOptions ''Result) #ifdef HAS_BOTH_AESON_AND_BENCHMARKS $(B.deriveJSON btwitterOptions ''Metadata) $(B.deriveJSON btwitterOptions ''Geo) $(B.deriveJSON btwitterOptions ''Story) $(B.deriveJSON btwitterOptions ''Result) #endif