zwirn-core-0.1.1.0: library for manipulating functions of time.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Zwirn.Core.Types

Synopsis

Documentation

data Value i a Source #

Constructors

Value 

Fields

Instances

Instances details
Applicative (Value i) Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

pure :: a -> Value i a #

(<*>) :: Value i (a -> b) -> Value i a -> Value i b #

liftA2 :: (a -> b -> c) -> Value i a -> Value i b -> Value i c #

(*>) :: Value i a -> Value i b -> Value i b #

(<*) :: Value i a -> Value i b -> Value i a #

Functor (Value i) Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

fmap :: (a -> b) -> Value i a -> Value i b #

(<$) :: a -> Value i b -> Value i a #

MultiApplicative (Value i) Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

liftA2Left :: (a -> b -> c) -> Value i a -> Value i b -> Value i c Source #

liftA2Right :: (a -> b -> c) -> Value i a -> Value i b -> Value i c Source #

liftA2Both :: (a -> b -> c) -> Value i a -> Value i b -> Value i c Source #

(*>) :: Value i (a -> b) -> Value i a -> Value i b Source #

(<*) :: Value i (a -> b) -> Value i a -> Value i b Source #

(Show a, Show i) => Show (Value i a) Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

showsPrec :: Int -> Value i a -> ShowS #

show :: Value i a -> String #

showList :: [Value i a] -> ShowS #

(Eq a, Eq i) => Eq (Value i a) Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

(==) :: Value i a -> Value i a -> Bool #

(/=) :: Value i a -> Value i a -> Bool #

(Ord a, Ord i) => Ord (Value i a) Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

compare :: Value i a -> Value i a -> Ordering #

(<) :: Value i a -> Value i a -> Bool #

(<=) :: Value i a -> Value i a -> Bool #

(>) :: Value i a -> Value i a -> Bool #

(>=) :: Value i a -> Value i a -> Bool #

max :: Value i a -> Value i a -> Value i a #

min :: Value i a -> Value i a -> Value i a #

newtype ZwirnT k st i a Source #

Constructors

ZwirnT 

Fields

Instances

Instances details
Applicative k => Applicative (ZwirnT k st i) Source # 
Instance details

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 # 
Instance details

Defined in Zwirn.Core.Core

Methods

fmap :: (a -> b) -> ZwirnT k st i a -> ZwirnT k st i b #

(<$) :: a -> ZwirnT k st i b -> ZwirnT k st i a #

Monad k => Monad (ZwirnT k st i) Source # 
Instance details

Defined in Zwirn.Core.Core

Methods

(>>=) :: ZwirnT k st i a -> (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 b #

return :: a -> ZwirnT k st i a #

MultiApplicative k => MultiApplicative (ZwirnT k st i) Source # 
Instance details

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 # 
Instance details

Defined in Zwirn.Core.Core

Methods

innerJoin :: ZwirnT k st i (ZwirnT k st i a) -> ZwirnT k st i a Source #

outerJoin :: ZwirnT k st i (ZwirnT k st i a) -> ZwirnT k st i a Source #

squeezeJoin :: ZwirnT k st i (ZwirnT k st i a) -> ZwirnT k st i a Source #

(Monoid a, Applicative k) => Monoid (ZwirnT k st i a) Source # 
Instance details

Defined in Zwirn.Core.Core

Methods

mempty :: ZwirnT k st i a #

mappend :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a #

mconcat :: [ZwirnT k st i a] -> ZwirnT k st i a #

(Semigroup a, Applicative k) => Semigroup (ZwirnT k st i a) Source #

just lifts, only operates on the values

Instance details

Defined in Zwirn.Core.Core

Methods

(<>) :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a #

sconcat :: NonEmpty (ZwirnT k st i a) -> ZwirnT k st i a #

stimes :: Integral b => b -> ZwirnT k st i a -> ZwirnT k st i a #

(Ord a, Floating a, MultiMonad k, HasSilence k) => Floating (ZwirnT k st i a) Source # 
Instance details

Defined in Zwirn.Core.Number

Methods

pi :: ZwirnT k st i a #

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 #

log1pexp :: ZwirnT k st i a -> ZwirnT k st i a #

log1mexp :: ZwirnT k st i a -> ZwirnT k st i a #

(Num a, Applicative k) => Num (ZwirnT k st i a) Source # 
Instance details

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 # 
Instance details

Defined in Zwirn.Core.Number

Methods

(/) :: ZwirnT k st i a -> ZwirnT k st i a -> ZwirnT k st i a #

recip :: ZwirnT k st i a -> ZwirnT k st i a #

fromRational :: Rational -> ZwirnT k st i a #

(Show a, Num st, ToList k) => Show (ZwirnT k st i a) Source # 
Instance details

Defined in Zwirn.Core.Query

Methods

showsPrec :: Int -> ZwirnT k st i a -> ShowS #

show :: ZwirnT k st i a -> String #

showList :: [ZwirnT k st i a] -> ShowS #

unzwirn :: ZwirnT k st i a -> Time -> st -> k (Value i a, st) Source #

zwirn :: (Time -> st -> k (Value i a, st)) -> ZwirnT k st i a Source #

class HasSilence k where Source #

represents instances of k that allow for a special zwirn with no values

Methods

silence :: ZwirnT k st i a Source #

Instances

Instances details
HasSilence Tree Source # 
Instance details

Defined in Zwirn.Core.Cord

Methods

silence :: ZwirnT Tree st i a Source #

class ToList k where Source #

Methods

toList :: k a -> [a] Source #

Instances

Instances details
ToList Identity Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

toList :: Identity a -> [a] Source #

ToList Tree Source # 
Instance details

Defined in Zwirn.Core.Tree

Methods

toList :: Tree a -> [a] Source #

ToList List Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

toList :: [a] -> [a] Source #

class Applicative f => MultiApplicative f where Source #

Minimal complete definition

liftA2Left, liftA2Right

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 #

(*>) :: f (a -> b) -> f a -> f b infixl 4 Source #

(<*) :: f (a -> b) -> f a -> f b infixl 4 Source #

Instances

Instances details
MultiApplicative Identity Source # 
Instance details

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 # 
Instance details

Defined in Zwirn.Core.Tree

Methods

liftA2Left :: (a -> b -> c) -> Tree a -> Tree b -> Tree c Source #

liftA2Right :: (a -> b -> c) -> Tree a -> Tree b -> Tree c Source #

liftA2Both :: (a -> b -> c) -> Tree a -> Tree b -> Tree c Source #

(*>) :: Tree (a -> b) -> Tree a -> Tree b Source #

(<*) :: Tree (a -> b) -> Tree a -> Tree b Source #

MultiApplicative List Source # 
Instance details

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 #

(*>) :: [a -> b] -> [a] -> [b] Source #

(<*) :: [a -> b] -> [a] -> [b] Source #

MultiApplicative (Value i) Source # 
Instance details

Defined in Zwirn.Core.Types

Methods

liftA2Left :: (a -> b -> c) -> Value i a -> Value i b -> Value i c Source #

liftA2Right :: (a -> b -> c) -> Value i a -> Value i b -> Value i c Source #

liftA2Both :: (a -> b -> c) -> Value i a -> Value i b -> Value i c Source #

(*>) :: Value i (a -> b) -> Value i a -> Value i b Source #

(<*) :: Value i (a -> b) -> Value i a -> Value i b Source #

MultiApplicative k => MultiApplicative (ZwirnT k st i) Source # 
Instance details

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

outerJoin, squeezeJoin

Methods

innerJoin :: m (m a) -> m a Source #

outerJoin :: m (m a) -> m a Source #

squeezeJoin :: m (m a) -> m a Source #

Instances

Instances details
MultiMonad Identity Source # 
Instance details

Defined in Zwirn.Core.Types

MultiMonad Tree Source # 
Instance details

Defined in Zwirn.Core.Tree

Methods

innerJoin :: Tree (Tree a) -> Tree a Source #

outerJoin :: Tree (Tree a) -> Tree a Source #

squeezeJoin :: Tree (Tree a) -> Tree a Source #

MultiMonad List Source # 
Instance details

Defined in Zwirn.Core.Tree

Methods

innerJoin :: [[a]] -> [a] Source #

outerJoin :: [[a]] -> [a] Source #

squeezeJoin :: [[a]] -> [a] Source #

MultiMonad k => MultiMonad (ZwirnT k st i) Source # 
Instance details

Defined in Zwirn.Core.Core

Methods

innerJoin :: ZwirnT k st i (ZwirnT k st i a) -> ZwirnT k st i a Source #

outerJoin :: ZwirnT k st i (ZwirnT k st i a) -> ZwirnT k st i a Source #

squeezeJoin :: ZwirnT k st i (ZwirnT k st i a) -> ZwirnT k st i a Source #