{-# OPTIONS_GHC -fno-warn-orphans #-} module Control.Monad.Select.OrphanInstances where import Control.Monad.Select import Control.Monad.Trans.Control.Identity import qualified Control.Monad.Trans.Select as T import Data.Functor.Identity instance MonadBaseControlIdentity Identity m => MonadSelect r (T.SelectT r m) where select :: forall a. ((a -> r) -> a) -> SelectT r m a select (a -> r) -> a f = forall r (m :: * -> *) a. ((a -> m r) -> m a) -> SelectT r m a T.SelectT forall a b. (a -> b) -> a -> b $ \ a -> m r k -> forall (b :: * -> *) (m :: * -> *) a. MonadBaseControlIdentity b m => ((forall x. m x -> b x) -> b a) -> m a liftBaseWithIdentity forall a b. (a -> b) -> a -> b $ \forall x. m x -> Identity x runInIdentity -> forall a. a -> Identity a Identity forall a b. (a -> b) -> a -> b $ (a -> r) -> a f forall a b. (a -> b) -> a -> b $ forall a. Identity a -> a runIdentity forall b c a. (b -> c) -> (a -> b) -> a -> c . forall x. m x -> Identity x runInIdentity forall b c a. (b -> c) -> (a -> b) -> a -> c . a -> m r k