Maintainer | Ertugrul Soeylemez <es@ertes.de> |
---|
Type classes used in Netwire.
- class Monad m => MonadClock t m | m -> t where
- getTime :: m t
- class Monad m => MonadRandom m where
- getRandom :: Random a => m a
- getRandomR :: Random a => (a, a) -> m a
- class Arrow >~ => ArrowKleisli m (>~) | >~ -> m where
- arrIO :: (ArrowKleisli m >~, MonadIO m) => IO b >~ b
Various effects
Monadic
class Monad m => MonadClock t m | m -> t whereSource
Monads with a clock.
MonadClock Double IO | Instance for the system time. This is intentionally specific to allow you to define better instances with custom monads. |
class Monad m => MonadRandom m whereSource
Monads supporting random number generation.
Arrows
class Arrow >~ => ArrowKleisli m (>~) | >~ -> m whereSource
Arrows which support running monadic computations.
ArrowKleisli m >~ => ArrowKleisli m (Automaton >~) | |
Monad m => ArrowKleisli m (Kleisli m) | |
(ArrowKleisli m >~, Monoid l) => ArrowKleisli m (WriterArrow l >~) | |
(Applicative f, ArrowKleisli m >~) => ArrowKleisli m (StaticArrow f >~) | |
ArrowKleisli m >~ => ArrowKleisli m (StateArrow s >~) | |
ArrowKleisli m >~ => ArrowKleisli m (ReaderArrow e >~) | |
(ArrowChoice >~, ArrowKleisli m >~) => ArrowKleisli m (ErrorArrow ex >~) | |
Monad m => ArrowKleisli m (Wire e (Kleisli m)) | When the target arrow is an |