module Web.RBB.Util
( module ReExport
, ixSetModifyIx
) where
import Control.Applicative as ReExport
import Control.Lens as ReExport
import Control.Monad as ReExport
import Control.Monad.Base as ReExport (MonadBase)
import Data.Data as ReExport (Typeable)
import Data.Function as ReExport (on)
import Data.IxSet
import Data.IxSet as ReExport (IxSet)
import qualified Data.IxSet as IxSet
import Data.Maybe as ReExport
import Data.Monoid as ReExport
import Data.Text as ReExport (Text, pack)
import Data.Time as ReExport (UTCTime)
import Text.Blaze.Html5 as ReExport (Html)
ixSetModifyIx :: (Ord a, Typeable a, IxSet.Indexable a, Typeable k)
=> k -> (a -> a) -> IxSet a -> IxSet a
ixSetModifyIx k f is = case getOne $ is @= k of
Nothing -> is
Just a -> insert (f a) $ delete a is