-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Monadic representation of transactions.
--   
--   Monadic representation of transactions. Alike <a>List</a>, but can be
--   declared with `do` notations.
@package transaction
@version 0.1.1.3


-- | Monadic representation of transactions.
module Data.Transaction

-- | <pre>
--   &gt;&gt;&gt; :{
--   toList $ do
--     action 4
--     action 5
--     action 6
--   :}
--   [4,5,6]
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; :{
--   toList $ filter even $ do
--     action 4
--     action 5
--     action 6
--   :}
--   [4,6]
--   </pre>
action :: a -> Transaction a

-- | An alias of <a>foldl</a> for convenience.
reduce :: (b -> a -> b) -> b -> Transaction a -> b
toList :: Transaction a -> [a]

-- | An alias of <a>first</a> for convenience.
--   
--   <pre>
--   &gt;&gt;&gt; :{
--   toList $ do
--     action 4
--     tMap (+1) $ do
--       action 5
--       action 6
--     action 7
--   :}
--   [4,6,7,7]
--   </pre>
tMap :: (a -> b) -> Transaction a -> Transaction b

-- | An alias of <a>filter</a>.
--   
--   <pre>
--   &gt;&gt;&gt; :{
--   toList $ do
--     action 4
--     tFilter even $ do
--       action 5
--       action 6
--     action 7
--   :}
--   [4,6,7]
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; :{
--   toList $ do
--     action 4
--     filter even $ do
--       action 5
--       action 6
--     action 7
--   :}
--   [4,6,7]
--   </pre>

-- | <i>Deprecated: Use <a>filter</a> instead.</i>
tFilter :: (a -> Bool) -> Transaction a -> Transaction a

-- | <pre>
--   &gt;&gt;&gt; :{
--   toList $ do
--     action 4
--     tFilterMap (\x -&gt; if even x then Just (x + 1) else Nothing) $ do
--       action 5
--       action 6
--     action 7
--   :}
--   [4,7,7]
--   </pre>

-- | <i>Deprecated: This will be removed in a future release.</i>
tFilterMap :: (a -> Maybe b) -> Transaction a -> Transaction b
type Transaction a = TransactionM a ()
data TransactionM a x
instance GHC.Base.Functor (Data.Transaction.TransactionM a)
instance GHC.Base.Semigroup (Data.Transaction.Transaction a)
instance GHC.Base.Monoid (Data.Transaction.Transaction a)
instance Data.MonoTraversable.MonoFunctor (Data.Transaction.Transaction a)
instance Data.MonoTraversable.MonoFoldable (Data.Transaction.Transaction a)
instance Data.MonoTraversable.MonoPointed (Data.Transaction.Transaction a)
instance Data.Sequences.SemiSequence (Data.Transaction.Transaction a)
instance Data.MonoTraversable.GrowingAppend (Data.Transaction.Transaction a)
instance Data.MonoTraversable.MonoTraversable (Data.Transaction.Transaction a)
instance Data.Sequences.IsSequence (Data.Transaction.Transaction a)
instance GHC.Base.Applicative (Data.Transaction.TransactionM a)
instance GHC.Base.Monad (Data.Transaction.TransactionM a)
instance Data.Bifunctor.Bifunctor Data.Transaction.TransactionM
