{-# OPTIONS -fno-warn-orphans #-} {-# LANGUAGE CPP #-} {-# LANGUAGE NoImplicitPrelude #-} -- | Various orphans. -- module Preamble.Types.Orphan where import Control.Monad.Random import Control.Monad.Trans.Resource #if MIN_VERSION_aeson(1,1,0) #else import Data.Aeson import Data.UUID #endif import Preamble.Prelude #if MIN_VERSION_aeson(1,1,0) #else instance ToJSON UUID where toJSON = toJSON . toText instance FromJSON UUID where parseJSON (String s) = maybe mzero pure $ fromText s parseJSON _ = mzero #endif instance MonadRandom m => MonadRandom (ResourceT m) where getRandom = lift getRandom {-# INLINE getRandom #-} getRandoms = lift getRandoms {-# INLINE getRandomR #-} getRandomR = lift . getRandomR {-# INLINE getRandoms #-} getRandomRs = lift . getRandomRs {-# INLINE getRandomRs #-}