{-# OPTIONS_GHC -fno-warn-orphans #-} module Control.Monad.Select.OrphanInstances where import Control.Monad.Select import Control.Monad.Trans.Control.Identity import Control.Monad.Trans.Select qualified 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 = ((a -> m r) -> m a) -> SelectT r m a forall r (m :: * -> *) a. ((a -> m r) -> m a) -> SelectT r m a T.SelectT (((a -> m r) -> m a) -> SelectT r m a) -> ((a -> m r) -> m a) -> SelectT r m a forall a b. (a -> b) -> a -> b $ \ a -> m r k -> ((forall x. m x -> Identity x) -> Identity a) -> m a forall a. ((forall x. m x -> Identity x) -> Identity a) -> m a forall (b :: * -> *) (m :: * -> *) a. MonadBaseControlIdentity b m => ((forall x. m x -> b x) -> b a) -> m a liftBaseWithIdentity (((forall x. m x -> Identity x) -> Identity a) -> m a) -> ((forall x. m x -> Identity x) -> Identity a) -> m a forall a b. (a -> b) -> a -> b $ \forall x. m x -> Identity x runInIdentity -> a -> Identity a forall a. a -> Identity a Identity (a -> Identity a) -> a -> Identity a forall a b. (a -> b) -> a -> b $ (a -> r) -> a f ((a -> r) -> a) -> (a -> r) -> a forall a b. (a -> b) -> a -> b $ Identity r -> r forall a. Identity a -> a runIdentity (Identity r -> r) -> (a -> Identity r) -> a -> r forall b c a. (b -> c) -> (a -> b) -> a -> c . m r -> Identity r forall x. m x -> Identity x runInIdentity (m r -> Identity r) -> (a -> m r) -> a -> Identity r forall b c a. (b -> c) -> (a -> b) -> a -> c . a -> m r k