text-show-instances-3.9: tests/Instances/Control/Monad/Trans.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-|
Module: Instances.Control.Monad.Trans
Copyright: (C) 2014-2017 Ryan Scott
License: BSD-style (see the file LICENSE)
Maintainer: Ryan Scott
Stability: Provisional
Portability: GHC
Provides 'Arbitrary' instances for monad transformers.
-}
module Instances.Control.Monad.Trans () where
import Control.Monad.Trans.Except (ExceptT(..))
import Control.Monad.Trans.Identity (IdentityT(..))
import qualified Control.Monad.Trans.Writer.Lazy as WL (WriterT(..))
import qualified Control.Monad.Trans.Writer.Strict as WS (WriterT(..))
import Test.QuickCheck (Arbitrary)
deriving instance Arbitrary (m (Either e a)) => Arbitrary (ExceptT e m a)
deriving instance Arbitrary (f a) => Arbitrary (IdentityT f a)
deriving instance Arbitrary (m (a, w)) => Arbitrary (WL.WriterT w m a)
deriving instance Arbitrary (m (a, w)) => Arbitrary (WS.WriterT w m a)