forbidden-fruit-0.1.0: A library accelerates imperative style programming.

Copyright(C) 2015, Yu Fukuzawa
LicenseBSD3
Maintainerminpou.primer@email.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Control.Imperative.Operators

Contents

Description

 

Synopsis

Operators

liftOp :: Monad m => (a -> b) -> Ref m a -> Ref m b Source

Apply a function to a stored value without rewriting original one.

liftOp2 :: Monad m => (a -> b -> c) -> Ref m a -> Ref m b -> Ref m c Source

Apply a binary function to two Refs.

(~$) :: Monad m => (a -> b) -> Ref m a -> Ref m b infixl 4 Source

Alias for liftOp.

(~*) :: Monad m => Ref m (a -> b) -> Ref m a -> Ref m b infixl 4 Source

Analogous to (<*>) for Applicative.

Binary Operation

(/.) :: Monad m => Integral a => Ref m a -> Ref m a -> Ref m a infixl 7 Source

(%.) :: Monad m => Integral a => Ref m a -> Ref m a -> Ref m a infixl 7 Source

(^.) :: (Num a, Integral b, Monad m) => Ref m a -> Ref m b -> Ref m a infixr 8 Source

(&&.) :: Monad m => Ref m Bool -> Ref m Bool -> Ref m Bool infixr 3 Source

(||.) :: Monad m => Ref m Bool -> Ref m Bool -> Ref m Bool infixr 2 Source

(==.) :: (Ord a, Monad m) => Ref m a -> Ref m a -> Ref m Bool infixl 4 Source

(/=.) :: (Ord a, Monad m) => Ref m a -> Ref m a -> Ref m Bool infixl 4 Source

(>=.) :: (Ord a, Monad m) => Ref m a -> Ref m a -> Ref m Bool infixl 4 Source

(<=.) :: (Ord a, Monad m) => Ref m a -> Ref m a -> Ref m Bool infixl 4 Source

(>.) :: (Ord a, Monad m) => Ref m a -> Ref m a -> Ref m Bool infixl 4 Source

(<.) :: (Ord a, Monad m) => Ref m a -> Ref m a -> Ref m Bool infixl 4 Source

notR :: Monad m => Ref m Bool -> Ref m Bool Source

(&.) :: (Bits a, Monad m) => Ref m a -> Ref m a -> Ref m a infixl 7 Source

(|.) :: (Bits a, Monad m) => Ref m a -> Ref m a -> Ref m a infixl 5 Source

xorR :: (Bits a, Monad m) => Ref m a -> Ref m a -> Ref m a Source

complR :: (Bits a, Monad m) => Ref m a -> Ref m a Source

(<<.) :: (Bits a, Monad m) => Ref m a -> Ref m Int -> Ref m a infixl 5 Source

(>>.) :: (Bits a, Monad m) => Ref m a -> Ref m Int -> Ref m a infixl 5 Source

Assignment Operators

assignModify :: MonadBase (BaseEff m) m => (a -> b -> a) -> Ref (BaseEff m) a -> Ref (BaseEff m) b -> m () Source

Modify the value of mutable Ref with another Ref.

(=:) :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

An assignment operator.

(+=:) :: (Num a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(-=:) :: (Num a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(*=:) :: (Num a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(/=:) :: (Integral a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(%=:) :: (Integral a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(^=:) :: (Num a, Integral b, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) b -> m () infix 2 Source

(//=:) :: (Fractional a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(**=:) :: (Floating a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(<>=:) :: (Monoid a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(&&=:) :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> Ref (BaseEff m) Bool -> m () infix 2 Source

(||=:) :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> Ref (BaseEff m) Bool -> m () infix 2 Source

(&=:) :: (Bits a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(|=:) :: (Bits a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source

(<<=:) :: (Bits a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) Int -> m () infix 2 Source

(>>=:) :: (Bits a, MonadBase (BaseEff m) m) => Ref (BaseEff m) a -> Ref (BaseEff m) Int -> m () infix 2 Source

(<~) :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> m a -> m () infixr 2 Source

Run a monadic action, and assign the result of it to the mutable Ref.

(<&~) :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> (a -> a) -> m () infix 2 Source

Modify the mutable Ref with an endomorphism.