module Control.Monad.Trans.Has.Accum
  ( module Control.Monad.Trans.Has.Accum
  , module X
  ) where

import "transformers" Control.Monad.Trans.Accum
  qualified as Accum
import "transformers" Control.Monad.Trans.Accum
  as X
  (AccumT (..))

import "this" Control.Monad.Trans.Has

type HasAccum w m = Has (AccumT w) m

add :: HasAccum w m => w -> m ()
add :: w -> m ()
add w
w = (forall (n :: * -> *). Monad n => AccumT w n ()) -> m ()
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
Has t m =>
(forall (n :: * -> *). Monad n => t n a) -> m a
liftH ((forall (n :: * -> *). Monad n => AccumT w n ()) -> m ())
-> (forall (n :: * -> *). Monad n => AccumT w n ()) -> m ()
forall a b. (a -> b) -> a -> b
$ w -> AccumT w n ()
forall (m :: * -> *) w. Monad m => w -> AccumT w m ()
Accum.add w
w