packages feed

bearriver 0.13.1.2 → 0.13.1.3

raw patch · 2 files changed

+42/−19 lines, 2 filesdep ~dunaiPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: dunai

API changes (from Hackage documentation)

- FRP.BearRiver: parC' :: Monad m => [SF m a b] -> SF m [a] [b]
- FRP.Yampa: parC' :: Monad m => [SF m a b] -> SF m [a] [b]
+ FRP.BearRiver: instance GHC.Base.Monad FRP.BearRiver.Event
- FRP.BearRiver: (<<<) :: Category cat => cat b c -> cat a b -> cat a c
+ FRP.BearRiver: (<<<) :: forall k cat (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c
- FRP.BearRiver: (>>>) :: Category cat => cat a b -> cat b c -> cat a c
+ FRP.BearRiver: (>>>) :: forall k cat (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat a c
- FRP.BearRiver: (>>>^) :: MonadBase m1 m2 => MSF m2 a b -> MSF m1 b c -> MSF m2 a c
+ FRP.BearRiver: (>>>^) :: forall (m1 :: Type -> Type) (m2 :: Type -> Type) a b c. MonadBase m1 m2 => MSF m2 a b -> MSF m1 b c -> MSF m2 a c
- FRP.BearRiver: (^>>>) :: MonadBase m1 m2 => MSF m1 a b -> MSF m2 b c -> MSF m2 a c
+ FRP.BearRiver: (^>>>) :: forall (m1 :: Type -> Type) (m2 :: Type -> Type) a b c. MonadBase m1 m2 => MSF m1 a b -> MSF m2 b c -> MSF m2 a c
- FRP.BearRiver: ArrowMonad :: a () b -> ArrowMonad b
+ FRP.BearRiver: ArrowMonad :: a () b -> ArrowMonad (a :: Type -> Type -> Type) b
- FRP.BearRiver: Kleisli :: (a -> m b) -> Kleisli a b
+ FRP.BearRiver: Kleisli :: (a -> m b) -> Kleisli (m :: Type -> Type) a b
- FRP.BearRiver: [runKleisli] :: Kleisli a b -> a -> m b
+ FRP.BearRiver: [runKleisli] :: Kleisli (m :: Type -> Type) a b -> a -> m b
- FRP.BearRiver: accumulateWith :: Monad m => (a -> s -> s) -> s -> MSF m a s
+ FRP.BearRiver: accumulateWith :: forall (m :: Type -> Type) a s. Monad m => (a -> s -> s) -> s -> MSF m a s
- FRP.BearRiver: count :: (Num n, Monad m) => MSF m a n
+ FRP.BearRiver: count :: forall n (m :: Type -> Type) a. (Num n, Monad m) => MSF m a n
- FRP.BearRiver: dup :: () => b -> (b, b)
+ FRP.BearRiver: dup :: b -> (b, b)
- FRP.BearRiver: eventToMaybe :: () => Event a -> Maybe a
+ FRP.BearRiver: eventToMaybe :: Event a -> Maybe a
- FRP.BearRiver: feedback :: Monad m => c -> MSF m (a, c) (b, c) -> MSF m a b
+ FRP.BearRiver: feedback :: forall (m :: Type -> Type) c a b. Monad m => c -> MSF m (a, c) (b, c) -> MSF m a b
- FRP.BearRiver: fifo :: Monad m => MSF m [a] (Maybe a)
+ FRP.BearRiver: fifo :: forall (m :: Type -> Type) a. Monad m => MSF m [a] (Maybe a)
- FRP.BearRiver: fromEvent :: () => Event p -> p
+ FRP.BearRiver: fromEvent :: Event p -> p
- FRP.BearRiver: iPost :: Monad m => b -> MSF m a b -> MSF m a b
+ FRP.BearRiver: iPost :: forall (m :: Type -> Type) b a. Monad m => b -> MSF m a b -> MSF m a b
- FRP.BearRiver: iPre :: Monad m => a -> MSF m a a
+ FRP.BearRiver: iPre :: forall (m :: Type -> Type) a. Monad m => a -> MSF m a a
- FRP.BearRiver: infixl 6 ^-^
+ FRP.BearRiver: infixl 6 ^+^
- FRP.BearRiver: infixr 3 &&&
+ FRP.BearRiver: infixr 3 ***
- FRP.BearRiver: isEvent :: () => Event a -> Bool
+ FRP.BearRiver: isEvent :: Event a -> Bool
- FRP.BearRiver: isNoEvent :: () => Event a -> Bool
+ FRP.BearRiver: isNoEvent :: Event a -> Bool
- FRP.BearRiver: liftBaseM :: (Monad m2, MonadBase m1 m2) => (a -> m1 b) -> MSF m2 a b
+ FRP.BearRiver: liftBaseM :: forall (m2 :: Type -> Type) m1 a b. (Monad m2, MonadBase m1 m2) => (a -> m1 b) -> MSF m2 a b
- FRP.BearRiver: liftBaseS :: (Monad m2, MonadBase m1 m2) => MSF m1 a b -> MSF m2 a b
+ FRP.BearRiver: liftBaseS :: forall (m2 :: Type -> Type) (m1 :: Type -> Type) a b. (Monad m2, MonadBase m1 m2) => MSF m1 a b -> MSF m2 a b
- FRP.BearRiver: liftTransS :: (MonadTrans t, Monad m, Monad (t m)) => MSF m a b -> MSF (t m) a b
+ FRP.BearRiver: liftTransS :: forall (t :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) a b. (MonadTrans t, Monad m, Monad (t m)) => MSF m a b -> MSF (t m) a b
- FRP.BearRiver: mapMaybeS :: Monad m => MSF m a b -> MSF m (Maybe a) (Maybe b)
+ FRP.BearRiver: mapMaybeS :: forall (m :: Type -> Type) a b. Monad m => MSF m a b -> MSF m (Maybe a) (Maybe b)
- FRP.BearRiver: mappendFrom :: (Monoid n, Monad m) => n -> MSF m n n
+ FRP.BearRiver: mappendFrom :: forall n (m :: Type -> Type). (Monoid n, Monad m) => n -> MSF m n n
- FRP.BearRiver: mappendS :: (Monoid n, Monad m) => MSF m n n
+ FRP.BearRiver: mappendS :: forall n (m :: Type -> Type). (Monoid n, Monad m) => MSF m n n
- FRP.BearRiver: mealy :: Monad m => (a -> s -> (b, s)) -> s -> MSF m a b
+ FRP.BearRiver: mealy :: forall (m :: Type -> Type) a s b. Monad m => (a -> s -> (b, s)) -> s -> MSF m a b
- FRP.BearRiver: next :: Monad m => b -> MSF m a b -> MSF m a b
+ FRP.BearRiver: next :: forall (m :: Type -> Type) b a. Monad m => b -> MSF m a b -> MSF m a b
- FRP.BearRiver: sumFrom :: (VectorSpace v s, Monad m) => v -> MSF m v v
+ FRP.BearRiver: sumFrom :: forall v s (m :: Type -> Type). (VectorSpace v s, Monad m) => v -> MSF m v v
- FRP.BearRiver: sumS :: (VectorSpace v s, Monad m) => MSF m v v
+ FRP.BearRiver: sumS :: forall v s (m :: Type -> Type). (VectorSpace v s, Monad m) => MSF m v v
- FRP.BearRiver: unfold :: Monad m => (a -> (b, a)) -> a -> MSF m () b
+ FRP.BearRiver: unfold :: forall (m :: Type -> Type) a b. Monad m => (a -> (b, a)) -> a -> MSF m () b
- FRP.Yampa: (<<<) :: Category cat => cat b c -> cat a b -> cat a c
+ FRP.Yampa: (<<<) :: forall k cat (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c
- FRP.Yampa: (>>>) :: Category cat => cat a b -> cat b c -> cat a c
+ FRP.Yampa: (>>>) :: forall k cat (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat a c
- FRP.Yampa: (>>>^) :: MonadBase m1 m2 => MSF m2 a b -> MSF m1 b c -> MSF m2 a c
+ FRP.Yampa: (>>>^) :: forall (m1 :: Type -> Type) (m2 :: Type -> Type) a b c. MonadBase m1 m2 => MSF m2 a b -> MSF m1 b c -> MSF m2 a c
- FRP.Yampa: (^>>>) :: MonadBase m1 m2 => MSF m1 a b -> MSF m2 b c -> MSF m2 a c
+ FRP.Yampa: (^>>>) :: forall (m1 :: Type -> Type) (m2 :: Type -> Type) a b c. MonadBase m1 m2 => MSF m1 a b -> MSF m2 b c -> MSF m2 a c
- FRP.Yampa: ArrowMonad :: a () b -> ArrowMonad b
+ FRP.Yampa: ArrowMonad :: a () b -> ArrowMonad (a :: Type -> Type -> Type) b
- FRP.Yampa: Kleisli :: (a -> m b) -> Kleisli a b
+ FRP.Yampa: Kleisli :: (a -> m b) -> Kleisli (m :: Type -> Type) a b
- FRP.Yampa: [runKleisli] :: Kleisli a b -> a -> m b
+ FRP.Yampa: [runKleisli] :: Kleisli (m :: Type -> Type) a b -> a -> m b
- FRP.Yampa: accumulateWith :: Monad m => (a -> s -> s) -> s -> MSF m a s
+ FRP.Yampa: accumulateWith :: forall (m :: Type -> Type) a s. Monad m => (a -> s -> s) -> s -> MSF m a s
- FRP.Yampa: count :: (Num n, Monad m) => MSF m a n
+ FRP.Yampa: count :: forall n (m :: Type -> Type) a. (Num n, Monad m) => MSF m a n
- FRP.Yampa: dup :: () => b -> (b, b)
+ FRP.Yampa: dup :: b -> (b, b)
- FRP.Yampa: eventToMaybe :: () => Event a -> Maybe a
+ FRP.Yampa: eventToMaybe :: Event a -> Maybe a
- FRP.Yampa: feedback :: Monad m => c -> MSF m (a, c) (b, c) -> MSF m a b
+ FRP.Yampa: feedback :: forall (m :: Type -> Type) c a b. Monad m => c -> MSF m (a, c) (b, c) -> MSF m a b
- FRP.Yampa: fifo :: Monad m => MSF m [a] (Maybe a)
+ FRP.Yampa: fifo :: forall (m :: Type -> Type) a. Monad m => MSF m [a] (Maybe a)
- FRP.Yampa: fromEvent :: () => Event p -> p
+ FRP.Yampa: fromEvent :: Event p -> p
- FRP.Yampa: iPost :: Monad m => b -> MSF m a b -> MSF m a b
+ FRP.Yampa: iPost :: forall (m :: Type -> Type) b a. Monad m => b -> MSF m a b -> MSF m a b
- FRP.Yampa: iPre :: Monad m => a -> MSF m a a
+ FRP.Yampa: iPre :: forall (m :: Type -> Type) a. Monad m => a -> MSF m a a
- FRP.Yampa: infixl 6 ^-^
+ FRP.Yampa: infixl 6 ^+^
- FRP.Yampa: infixr 3 &&&
+ FRP.Yampa: infixr 3 ***
- FRP.Yampa: isEvent :: () => Event a -> Bool
+ FRP.Yampa: isEvent :: Event a -> Bool
- FRP.Yampa: isNoEvent :: () => Event a -> Bool
+ FRP.Yampa: isNoEvent :: Event a -> Bool
- FRP.Yampa: liftBaseM :: (Monad m2, MonadBase m1 m2) => (a -> m1 b) -> MSF m2 a b
+ FRP.Yampa: liftBaseM :: forall (m2 :: Type -> Type) m1 a b. (Monad m2, MonadBase m1 m2) => (a -> m1 b) -> MSF m2 a b
- FRP.Yampa: liftBaseS :: (Monad m2, MonadBase m1 m2) => MSF m1 a b -> MSF m2 a b
+ FRP.Yampa: liftBaseS :: forall (m2 :: Type -> Type) (m1 :: Type -> Type) a b. (Monad m2, MonadBase m1 m2) => MSF m1 a b -> MSF m2 a b
- FRP.Yampa: liftTransS :: (MonadTrans t, Monad m, Monad (t m)) => MSF m a b -> MSF (t m) a b
+ FRP.Yampa: liftTransS :: forall (t :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) a b. (MonadTrans t, Monad m, Monad (t m)) => MSF m a b -> MSF (t m) a b
- FRP.Yampa: mapMaybeS :: Monad m => MSF m a b -> MSF m (Maybe a) (Maybe b)
+ FRP.Yampa: mapMaybeS :: forall (m :: Type -> Type) a b. Monad m => MSF m a b -> MSF m (Maybe a) (Maybe b)
- FRP.Yampa: mappendFrom :: (Monoid n, Monad m) => n -> MSF m n n
+ FRP.Yampa: mappendFrom :: forall n (m :: Type -> Type). (Monoid n, Monad m) => n -> MSF m n n
- FRP.Yampa: mappendS :: (Monoid n, Monad m) => MSF m n n
+ FRP.Yampa: mappendS :: forall n (m :: Type -> Type). (Monoid n, Monad m) => MSF m n n
- FRP.Yampa: mealy :: Monad m => (a -> s -> (b, s)) -> s -> MSF m a b
+ FRP.Yampa: mealy :: forall (m :: Type -> Type) a s b. Monad m => (a -> s -> (b, s)) -> s -> MSF m a b
- FRP.Yampa: next :: Monad m => b -> MSF m a b -> MSF m a b
+ FRP.Yampa: next :: forall (m :: Type -> Type) b a. Monad m => b -> MSF m a b -> MSF m a b
- FRP.Yampa: sumFrom :: (VectorSpace v s, Monad m) => v -> MSF m v v
+ FRP.Yampa: sumFrom :: forall v s (m :: Type -> Type). (VectorSpace v s, Monad m) => v -> MSF m v v
- FRP.Yampa: sumS :: (VectorSpace v s, Monad m) => MSF m v v
+ FRP.Yampa: sumS :: forall v s (m :: Type -> Type). (VectorSpace v s, Monad m) => MSF m v v
- FRP.Yampa: unfold :: Monad m => (a -> (b, a)) -> a -> MSF m () b
+ FRP.Yampa: unfold :: forall (m :: Type -> Type) a b. Monad m => (a -> (b, a)) -> a -> MSF m () b

Files

bearriver.cabal view
@@ -1,5 +1,5 @@ name:                bearriver-version:             0.13.1.2+version:             0.13.1.3 homepage:            keera.co.uk license:             BSD3 license-file:        LICENSE@@ -36,7 +36,7 @@   exposed-modules:     FRP.Yampa,                        FRP.BearRiver -  build-depends:       base >=4.6 && <5, transformers >=0.3, mtl, dunai >= 0.6.0 && < 0.8, MonadRandom, simple-affine-space+  build-depends:       base >=4.6 && <5, transformers >=0.3, mtl, dunai >= 0.6.0 && < 0.9, MonadRandom, simple-affine-space   hs-source-dirs:      src/   default-language:    Haskell2010 
src/FRP/BearRiver.hs view
@@ -53,6 +53,32 @@ data Event a = Event a | NoEvent  deriving (Eq, Show) +-- | The type 'Event' is isomorphic to 'Maybe'. The 'Functor' instance of+-- 'Event' is analogous to the 'Functo' instance of 'Maybe', where the given+-- function is applied to the value inside the 'Event', if any.+instance Functor Event where+  fmap _ NoEvent   = NoEvent+  fmap f (Event c) = Event (f c)++-- | The type 'Event' is isomorphic to 'Maybe'. The 'Applicative' instance of+-- 'Event' is analogous to the 'Applicative' instance of 'Maybe', where the+-- lack of a value (i.e., 'NoEvent') causes '(<*>)' to produce no value+-- ('NoEvent').+instance Applicative Event where+  pure = Event++  Event f <*> Event x = Event (f x)+  _       <*> _       = NoEvent++-- | The type 'Event' is isomorphic to 'Maybe'. The 'Monad' instance of 'Event'+-- is analogous to the 'Monad' instance of 'Maybe', where the lack of a value+-- (i.e., 'NoEvent') causes bind to produce no value ('NoEvent').+instance Monad Event where+  return = pure++  Event x >>= f = f x+  NoEvent >>= _ = NoEvent+ -- ** Lifting arrPrim :: Monad m => (a -> b) -> SF m a b arrPrim = arr@@ -176,16 +202,6 @@  -- * Events -instance Functor Event where-  fmap f NoEvent   = NoEvent-  fmap f (Event c) = Event (f c)--instance Applicative Event where-  pure = Event--  Event f <*> Event x = Event (f x)-  _       <*> _       = NoEvent- -- | Apply an 'MSF' to every input. Freezes temporarily if the input is -- 'NoEvent', and continues as soon as an 'Event' is received. mapEventS :: Monad m => MSF m a b -> MSF m (Event a) (Event b)@@ -448,14 +464,21 @@ -- ** Parallel composition over collections  parC :: Monad m => SF m a b -> SF m [a] [b]-parC sf = parC' [sf]+parC sf = parC0 sf+  where+    parC0 :: Monad m => SF m a b -> SF m [a] [b]+    parC0 sf0 = MSF $ \as -> do+      os <- T.mapM (\(a,sf) -> unMSF sf a) $ zip as (replicate (length as) sf0)+      let bs  = fmap fst os+          cts = fmap snd os+      return (bs, parC' cts) -parC' :: Monad m => [SF m a b] -> SF m [a] [b]-parC' sfs = MSF $ \as -> do-  os <- T.mapM (\(a,sf) -> unMSF sf a) $ zip as sfs-  let bs  = fmap fst os-      cts = fmap snd os-  return (bs, parC' cts)+    parC' :: Monad m => [SF m a b] -> SF m [a] [b]+    parC' sfs = MSF $ \as -> do+      os <- T.mapM (\(a,sf) -> unMSF sf a) $ zip as sfs+      let bs  = fmap fst os+          cts = fmap snd os+      return (bs, parC' cts)  -- * Discrete to continuous-time signal functions