Copyright | (C) 2015, Yu Fukuzawa |
---|---|
License | BSD3 |
Maintainer | minpou.primer@email.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
- var :: MonadVar m => a -> m (Ref (BaseEff m) a)
- val :: Monad m => a -> Ref m a
- ref :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> m a
- assign :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> a -> m ()
- (=:) :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m ()
- type MonadImperative m = (MonadVar m, MonadVector m, MonadHash m)
- type family BaseEff m :: * -> *
- class Indexable v where
- whenR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> m () -> m ()
- unlessR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> m () -> m ()
- ifR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> m a -> m a -> m a
- whileR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> LoopT c () m c -> m ()
- untilR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> LoopT c () m c -> m ()
- doWhileR :: MonadBase (BaseEff m) m => LoopT a a m a -> Ref (BaseEff m) Bool -> m a
- data Ref m a
- data Size n where
- dim1 :: Dim (S Z)
- dim2 :: Dim (S (S Z))
- dim3 :: Dim (S (S (S Z)))
- module Control.Monad.Trans.Loop
- module Control.Monad.Base
Documentation
assign :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> a -> m () Source
Assign a value to the Ref
.
(=:) :: MonadBase (BaseEff m) m => Ref (BaseEff m) a -> Ref (BaseEff m) a -> m () infix 2 Source
An assignment operator.
type MonadImperative m = (MonadVar m, MonadVector m, MonadHash m) Source
Useful constraint synonym.
type family BaseEff m :: * -> * Source
type BaseEff [] = [] | |
type BaseEff IO = IO | |
type BaseEff Maybe = Maybe | |
type BaseEff Identity = Identity | |
type BaseEff (Either e) = Either e | |
type BaseEff (ST s) = ST s | |
type BaseEff (ST s) = ST s | |
type BaseEff (MaybeT m) = BaseEff m | |
type BaseEff (ListT m) = BaseEff m | |
type BaseEff (IdentityT m) = BaseEff m | |
type BaseEff (WriterT w m) = BaseEff m | |
type BaseEff (WriterT w m) = BaseEff m | |
type BaseEff (ExceptT e m) = BaseEff m | |
type BaseEff (StateT s m) = BaseEff m | |
type BaseEff (StateT s m) = BaseEff m | |
type BaseEff (ReaderT r m) = BaseEff m | |
type BaseEff (ContT r m) = BaseEff m | |
type BaseEff (LoopT c e m) = BaseEff m | |
type BaseEff (RWST r w s m) = BaseEff m | |
type BaseEff (RWST r w s m) = BaseEff m |
class Indexable v where Source
Indexing for array-like.
PrimMonad m => Indexable (Ref m (Vector m (S (S n)) a)) | |
(VectorElem a, PrimMonad m) => Indexable (Ref m (Vector m (S Z) a)) | |
PrimMonad m => Indexable (Ref m (Vector m (S (S n)) a)) | |
(VectorElem a, PrimMonad m) => Indexable (Ref m (Vector m (S Z) a)) | |
PrimMonad m => Indexable (Vector m (S (S n)) a) | |
(VectorElem a, PrimMonad m) => Indexable (Vector m (S Z) a) | |
PrimMonad m => Indexable (Vector m (S (S n)) a) | |
(VectorElem a, PrimMonad m) => Indexable (Vector m (S Z) a) | |
(HashKey k, MHash m) => Indexable (HashTable m k v) |
Control Structures
whenR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> m () -> m () Source
A when statement for Ref
.
unlessR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> m () -> m () Source
A unless statement for Ref
.
ifR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> m a -> m a -> m a Source
A if statement for Ref
whileR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> LoopT c () m c -> m () Source
A while loop statement for Ref
.
untilR :: MonadBase (BaseEff m) m => Ref (BaseEff m) Bool -> LoopT c () m c -> m () Source
A until loop statement for Ref
.
doWhileR :: MonadBase (BaseEff m) m => LoopT a a m a -> Ref (BaseEff m) Bool -> m a Source
A do-while loop statement for Ref
.
Types
A reference type in the specified monad.
(Floating a, Monad m) => Floating (Ref m a) | |
(Fractional a, Monad m) => Fractional (Ref m a) | |
(Num a, Monad m) => Num (Ref m a) | |
(IsString a, Monad m) => IsString (Ref m a) | |
(Monoid w, Monad m) => Monoid (Ref m w) | |
PrimMonad m => Indexable (Ref m (Vector m (S (S n)) a)) | |
(VectorElem a, PrimMonad m) => Indexable (Ref m (Vector m (S Z) a)) | |
PrimMonad m => Indexable (Ref m (Vector m (S (S n)) a)) | |
(VectorElem a, PrimMonad m) => Indexable (Ref m (Vector m (S Z) a)) | |
Monad m => HasVector (Ref m (Vector m n a)) (Vector m n a) m | |
Monad m => HasVector (Ref m (Vector m n a)) (Vector m n a) m | |
type Element (Ref m (Vector m (S (S n)) a)) = Ref m (Vector m (S n) a) | |
type Element (Ref m (Vector m (S Z) a)) = Ref m a | |
type Element (Ref m (Vector m (S (S n)) a)) = Ref m (Vector m (S n) a) | |
type Element (Ref m (Vector m (S Z) a)) = Ref m a | |
type IndexType (Ref m (Vector m (S (S n)) a)) = Int | |
type IndexType (Ref m (Vector m (S Z) a)) = Int | |
type IndexType (Ref m (Vector m (S (S n)) a)) = Int | |
type IndexType (Ref m (Vector m (S Z) a)) = Int |
A sized-list type for specify the size of array.
Re-exports
module Control.Monad.Trans.Loop
module Control.Monad.Base