Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Zwirn.Core.Types
Synopsis
- data Value i a = Value {}
- newtype ZwirnT k st i a = ZwirnT {}
- unzwirn :: ZwirnT k st i a -> Time -> st -> k (Value i a, st)
- zwirn :: (Time -> st -> k (Value i a, st)) -> ZwirnT k st i a
- class HasSilence k where
- class ToList k where
- toList :: k a -> [a]
- class Applicative f => MultiApplicative f where
- liftA2Left :: (a -> b -> c) -> f a -> f b -> f c
- liftA2Right :: (a -> b -> c) -> f a -> f b -> f c
- liftA2Both :: (a -> b -> c) -> f a -> f b -> f c
- (*>) :: f (a -> b) -> f a -> f b
- (<*) :: f (a -> b) -> f a -> f b
- class (MultiApplicative m, Monad m) => MultiMonad m where
- innerJoin :: m (m a) -> m a
- outerJoin :: m (m a) -> m a
- squeezeJoin :: m (m a) -> m a
Documentation
Instances
Applicative (Value i) Source # | |
Functor (Value i) Source # | |
MultiApplicative (Value i) Source # | |
Defined in Zwirn.Core.Types | |
(Show a, Show i) => Show (Value i a) Source # | |
(Eq a, Eq i) => Eq (Value i a) Source # | |
(Ord a, Ord i) => Ord (Value i a) Source # | |
newtype ZwirnT k st i a Source #
Instances
Applicative k => Applicative (ZwirnT k st i) Source # | |
Defined in Zwirn.Core.Core Methods pure :: a -> ZwirnT k st i a # (<*>) :: ZwirnT k st i (a -> b) -> ZwirnT k st i a -> ZwirnT k st i b # liftA2 :: (a -> b -> c) -> ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i c # (*>) :: ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i b # (<*) :: ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i a # | |
Functor k => Functor (ZwirnT k st i) Source # | |
Monad k => Monad (ZwirnT k st i) Source # | |
MultiApplicative k => MultiApplicative (ZwirnT k st i) Source # | |
Defined in Zwirn.Core.Core Methods liftA2Left :: (a -> b -> c) -> ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i c Source # liftA2Right :: (a -> b -> c) -> ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i c Source # liftA2Both :: (a -> b -> c) -> ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i c Source # (*>) :: ZwirnT k st i (a -> b) -> ZwirnT k st i a -> ZwirnT k st i b Source # (<*) :: ZwirnT k st i (a -> b) -> ZwirnT k st i a -> ZwirnT k st i b Source # | |
MultiMonad k => MultiMonad (ZwirnT k st i) Source # | |
(Monoid a, Applicative k) => Monoid (ZwirnT k st i a) Source # | |
(Semigroup a, Applicative k) => Semigroup (ZwirnT k st i a) Source # | just lifts, only operates on the values |
(Ord a, Floating a, MultiMonad k, HasSilence k) => Floating (ZwirnT k st i a) Source # | |
Defined in Zwirn.Core.Number Methods exp :: ZwirnT k st i a -> ZwirnT k st i a # log :: ZwirnT k st i a -> ZwirnT k st i a # sqrt :: ZwirnT k st i a -> ZwirnT k st i a # (**) :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a # logBase :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a # sin :: ZwirnT k st i a -> ZwirnT k st i a # cos :: ZwirnT k st i a -> ZwirnT k st i a # tan :: ZwirnT k st i a -> ZwirnT k st i a # asin :: ZwirnT k st i a -> ZwirnT k st i a # acos :: ZwirnT k st i a -> ZwirnT k st i a # atan :: ZwirnT k st i a -> ZwirnT k st i a # sinh :: ZwirnT k st i a -> ZwirnT k st i a # cosh :: ZwirnT k st i a -> ZwirnT k st i a # tanh :: ZwirnT k st i a -> ZwirnT k st i a # asinh :: ZwirnT k st i a -> ZwirnT k st i a # acosh :: ZwirnT k st i a -> ZwirnT k st i a # atanh :: ZwirnT k st i a -> ZwirnT k st i a # log1p :: ZwirnT k st i a -> ZwirnT k st i a # expm1 :: ZwirnT k st i a -> ZwirnT k st i a # | |
(Num a, Applicative k) => Num (ZwirnT k st i a) Source # | |
Defined in Zwirn.Core.Number Methods (+) :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a # (-) :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a # (*) :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a # negate :: ZwirnT k st i a -> ZwirnT k st i a # abs :: ZwirnT k st i a -> ZwirnT k st i a # signum :: ZwirnT k st i a -> ZwirnT k st i a # fromInteger :: Integer -> ZwirnT k st i a # | |
(Eq a, Fractional a, MultiMonad k, HasSilence k) => Fractional (ZwirnT k st i a) Source # | |
(Show a, Num st, ToList k) => Show (ZwirnT k st i a) Source # | |
class HasSilence k where Source #
represents instances of k that allow for a special zwirn with no values
Instances
class Applicative f => MultiApplicative f where Source #
Minimal complete definition
Methods
liftA2Left :: (a -> b -> c) -> f a -> f b -> f c Source #
liftA2Right :: (a -> b -> c) -> f a -> f b -> f c Source #
liftA2Both :: (a -> b -> c) -> f a -> f b -> f c Source #
Instances
MultiApplicative Identity Source # | |
Defined in Zwirn.Core.Types Methods liftA2Left :: (a -> b -> c) -> Identity a -> Identity b -> Identity c Source # liftA2Right :: (a -> b -> c) -> Identity a -> Identity b -> Identity c Source # liftA2Both :: (a -> b -> c) -> Identity a -> Identity b -> Identity c Source # (*>) :: Identity (a -> b) -> Identity a -> Identity b Source # (<*) :: Identity (a -> b) -> Identity a -> Identity b Source # | |
MultiApplicative Tree Source # | |
MultiApplicative List Source # | |
Defined in Zwirn.Core.Tree Methods liftA2Left :: (a -> b -> c) -> [a] -> [b] -> [c] Source # liftA2Right :: (a -> b -> c) -> [a] -> [b] -> [c] Source # liftA2Both :: (a -> b -> c) -> [a] -> [b] -> [c] Source # | |
MultiApplicative (Value i) Source # | |
Defined in Zwirn.Core.Types | |
MultiApplicative k => MultiApplicative (ZwirnT k st i) Source # | |
Defined in Zwirn.Core.Core Methods liftA2Left :: (a -> b -> c) -> ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i c Source # liftA2Right :: (a -> b -> c) -> ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i c Source # liftA2Both :: (a -> b -> c) -> ZwirnT k st i a -> ZwirnT k st i b -> ZwirnT k st i c Source # (*>) :: ZwirnT k st i (a -> b) -> ZwirnT k st i a -> ZwirnT k st i b Source # (<*) :: ZwirnT k st i (a -> b) -> ZwirnT k st i a -> ZwirnT k st i b Source # |
class (MultiApplicative m, Monad m) => MultiMonad m where Source #
Minimal complete definition
Methods
innerJoin :: m (m a) -> m a Source #
outerJoin :: m (m a) -> m a Source #
squeezeJoin :: m (m a) -> m a Source #
Instances
MultiMonad Identity Source # | |
MultiMonad Tree Source # | |
MultiMonad List Source # | |
Defined in Zwirn.Core.Tree | |
MultiMonad k => MultiMonad (ZwirnT k st i) Source # | |