on mapQueryT help sign in
25 lines 856 B history raw
1{-|
2Module: Reflex.BehaviorWriter.Class
3Description: This module defines the 'MonadBehaviorWriter' class
4-}
5{-# LANGUAGE CPP #-}
6{-# LANGUAGE FlexibleInstances #-}
7{-# LANGUAGE FunctionalDependencies #-}
8{-# LANGUAGE UndecidableInstances #-}
9#ifdef USE_REFLEX_OPTIMIZER
10{-# OPTIONS_GHC -fplugin=Reflex.Optimizer #-}
11#endif
12module Reflex.BehaviorWriter.Class
13 ( MonadBehaviorWriter (..)
14 ) where
16import Control.Monad.Reader (ReaderT, lift)
17import Reflex.Class (Behavior)
19-- | 'MonadBehaviorWriter' efficiently collects 'Behavior' values using 'tellBehavior'
20-- and combines them monoidally to provide a 'Behavior' result.
21class (Monad m, Monoid w) => MonadBehaviorWriter t w m | m -> t w where
22 tellBehavior :: Behavior t w -> m ()
24instance MonadBehaviorWriter t w m => MonadBehaviorWriter t w (ReaderT r m) where
25 tellBehavior = lift . tellBehavior