-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | An extension removing the sequentiality from monads
--
-- An extension removing the sequentiality from monads
@package unsequential
@version 0.5.2.1
module Unsequential
-- | Allows to use the Applicative interface to compose the actions
-- of the base monad while being abstracted from the order of their
-- successful execution.
data Unsequential m a
-- | Runs Unsequential given an implementation of the "skip" effect.
--
-- The "skip" effect can be just return () in case you don't
-- want skipping or mzero if you want to fail on the attempt to
-- skip.
runUnsequential :: MonadPlus m => Unsequential m a -> m () -> m a
-- | Lift a computation in the base monad.
--
-- Same as lift.
unsequential :: Monad m => m a -> Unsequential m a
instance GHC.Base.Functor m => GHC.Base.Functor (Unsequential.Unsequential m)
instance GHC.Base.Applicative m => GHC.Base.Applicative (Unsequential.Unsequential m)
instance Control.Monad.Trans.Class.MonadTrans Unsequential.Unsequential