bearriver 0.13.7 → 0.14
raw patch · 3 files changed
+19/−7 lines, 3 filesdep ~MonadRandomdep ~simple-affine-spacePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: MonadRandom, simple-affine-space
API changes (from Hackage documentation)
- FRP.BearRiver: (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c')
- FRP.BearRiver: (***) :: Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
- FRP.BearRiver: (*^) :: VectorSpace v a => a -> v -> v
- FRP.BearRiver: (+++) :: ArrowChoice a => a b c -> a b' c' -> a (Either b b') (Either c c')
- FRP.BearRiver: (<+>) :: ArrowPlus a => a b c -> a b c -> a b 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: (<<^) :: Arrow a => a c d -> (b -> c) -> a b d
- FRP.BearRiver: (>>>) :: forall {k} cat (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat 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: (>>^) :: Arrow a => a b c -> (c -> d) -> a b d
- FRP.BearRiver: (^+^) :: VectorSpace v a => v -> v -> v
- FRP.BearRiver: (^-^) :: VectorSpace v a => v -> v -> v
- FRP.BearRiver: (^/) :: VectorSpace v a => v -> a -> v
- FRP.BearRiver: (^<<) :: Arrow a => (c -> d) -> a b c -> a b d
- FRP.BearRiver: (^>>) :: Arrow a => (b -> c) -> a c d -> a b d
- 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: (|||) :: ArrowChoice a => a b d -> a c d -> a (Either b c) d
- FRP.BearRiver: ArrowMonad :: a () b -> ArrowMonad (a :: Type -> Type -> Type) b
- FRP.BearRiver: Kleisli :: (a -> m b) -> Kleisli (m :: Type -> Type) a b
- FRP.BearRiver: [runKleisli] :: Kleisli (m :: Type -> Type) a b -> a -> m b
- FRP.BearRiver: accumulateWith :: forall (m :: Type -> Type) a s. Monad m => (a -> s -> s) -> s -> MSF m a s
- FRP.BearRiver: app :: ArrowApply a => a (a b c, b) c
- FRP.BearRiver: arr :: Arrow a => (b -> c) -> a b c
- FRP.BearRiver: arrM :: Monad m => (a -> m b) -> MSF m a b
- FRP.BearRiver: class Category a => Arrow (a :: TYPE LiftedRep -> TYPE LiftedRep -> Type)
- FRP.BearRiver: class Arrow a => ArrowApply (a :: TYPE LiftedRep -> TYPE LiftedRep -> Type)
- FRP.BearRiver: class Arrow a => ArrowChoice (a :: TYPE LiftedRep -> TYPE LiftedRep -> Type)
- FRP.BearRiver: class Arrow a => ArrowLoop (a :: TYPE LiftedRep -> TYPE LiftedRep -> Type)
- FRP.BearRiver: class ArrowZero a => ArrowPlus (a :: TYPE LiftedRep -> TYPE LiftedRep -> Type)
- FRP.BearRiver: class Arrow a => ArrowZero (a :: TYPE LiftedRep -> TYPE LiftedRep -> Type)
- FRP.BearRiver: class (Eq a, Floating a) => VectorSpace v a | v -> a
- FRP.BearRiver: constM :: Monad m => m b -> MSF m a b
- FRP.BearRiver: count :: forall n (m :: Type -> Type) a. (Num n, Monad m) => MSF m a n
- FRP.BearRiver: data MSF (m :: Type -> Type) a b
- FRP.BearRiver: dot :: VectorSpace v a => v -> v -> a
- FRP.BearRiver: embed :: Monad m => MSF m a b -> [a] -> m [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 :: forall (m :: Type -> Type) a. Monad m => MSF m [a] (Maybe a)
- FRP.BearRiver: first :: Arrow a => a b c -> a (b, d) (c, d)
- FRP.BearRiver: iPost :: forall (m :: Type -> Type) b a. Monad m => b -> MSF m a b -> MSF m a b
- FRP.BearRiver: iPre :: forall (m :: Type -> Type) a. Monad m => a -> MSF m a a
- FRP.BearRiver: infix 7 `dot`
- FRP.BearRiver: infixl 6 ^+^
- FRP.BearRiver: infixl 9 ^/
- FRP.BearRiver: infixr 1 <<<
- FRP.BearRiver: infixr 2 +++
- FRP.BearRiver: infixr 3 ***
- FRP.BearRiver: infixr 5 <+>
- FRP.BearRiver: infixr 9 *^
- FRP.BearRiver: left :: ArrowChoice a => a b c -> a (Either b d) (Either c d)
- FRP.BearRiver: leftApp :: ArrowApply a => a b c -> a (Either b d) (Either c d)
- 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 :: 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 :: 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: loop :: ArrowLoop a => a (b, d) (c, d) -> a b c
- FRP.BearRiver: mapMaybeS :: forall (m :: Type -> Type) a b. Monad m => MSF m a b -> MSF m (Maybe a) (Maybe b)
- FRP.BearRiver: mappendFrom :: forall n (m :: Type -> Type). (Monoid n, Monad m) => n -> MSF m n n
- FRP.BearRiver: mappendS :: forall n (m :: Type -> Type). (Monoid n, Monad m) => MSF m n n
- FRP.BearRiver: mealy :: forall (m :: Type -> Type) a s b. Monad m => (a -> s -> (b, s)) -> s -> MSF m a b
- FRP.BearRiver: morphGS :: Monad m2 => (forall c. () => (a1 -> m1 (b1, c)) -> a2 -> m2 (b2, c)) -> MSF m1 a1 b1 -> MSF m2 a2 b2
- FRP.BearRiver: morphS :: (Monad m2, Monad m1) => (forall c. () => m1 c -> m2 c) -> MSF m1 a b -> MSF m2 a b
- FRP.BearRiver: negateVector :: VectorSpace v a => v -> v
- FRP.BearRiver: newtype ArrowMonad (a :: Type -> Type -> Type) b
- FRP.BearRiver: newtype Kleisli (m :: Type -> Type) a b
- FRP.BearRiver: next :: forall (m :: Type -> Type) b a. Monad m => b -> MSF m a b -> MSF m a b
- FRP.BearRiver: norm :: VectorSpace v a => v -> a
- FRP.BearRiver: normalize :: VectorSpace v a => v -> v
- FRP.BearRiver: pauseOn :: Show a => (a -> Bool) -> String -> MSF IO a a
- FRP.BearRiver: returnA :: Arrow a => a b b
- FRP.BearRiver: right :: ArrowChoice a => a b c -> a (Either d b) (Either d c)
- FRP.BearRiver: second :: Arrow a => a b c -> a (d, b) (d, c)
- FRP.BearRiver: sumFrom :: forall v s (m :: Type -> Type). (VectorSpace v s, Monad m) => v -> MSF m v v
- FRP.BearRiver: sumS :: forall v s (m :: Type -> Type). (VectorSpace v s, Monad m) => MSF m v v
- FRP.BearRiver: traceWhen :: (Monad m, Show a) => (a -> Bool) -> (String -> m ()) -> String -> MSF m a a
- FRP.BearRiver: traceWith :: (Monad m, Show a) => (String -> m ()) -> String -> MSF m a a
- FRP.BearRiver: type MSink (m :: Type -> Type) a = MSF m a ()
- FRP.BearRiver: type MStream (m :: Type -> Type) a = MSF m () a
- FRP.BearRiver: unfold :: forall (m :: Type -> Type) a b. Monad m => (a -> (b, a)) -> a -> MSF m () b
- FRP.BearRiver: withSideEffect :: Monad m => (a -> m b) -> MSF m a a
- FRP.BearRiver: withSideEffect_ :: Monad m => m b -> MSF m a a
- FRP.BearRiver: zeroArrow :: ArrowZero a => a b c
- FRP.BearRiver: zeroVector :: VectorSpace v a => v
- FRP.BearRiver: derivative :: (Monad m, VectorSpace a s) => SF m a a
+ FRP.BearRiver: derivative :: (Monad m, Fractional s, VectorSpace a s) => SF m a a
- FRP.BearRiver: derivativeFrom :: (Monad m, VectorSpace a s) => a -> SF m a a
+ FRP.BearRiver: derivativeFrom :: (Monad m, Fractional s, VectorSpace a s) => a -> SF m a a
- FRP.BearRiver: integral :: (Monad m, VectorSpace a s) => SF m a a
+ FRP.BearRiver: integral :: (Monad m, Fractional s, VectorSpace a s) => SF m a a
- FRP.BearRiver: integralFrom :: (Monad m, VectorSpace a s) => a -> SF m a a
+ FRP.BearRiver: integralFrom :: (Monad m, Fractional s, VectorSpace a s) => a -> SF m a a
- FRP.Yampa: class (Eq a, Floating a) => VectorSpace v a | v -> a
+ FRP.Yampa: class VectorSpace v a | v -> a
- FRP.Yampa: derivative :: (Monad m, VectorSpace a s) => SF m a a
+ FRP.Yampa: derivative :: (Monad m, Fractional s, VectorSpace a s) => SF m a a
- FRP.Yampa: derivativeFrom :: (Monad m, VectorSpace a s) => a -> SF m a a
+ FRP.Yampa: derivativeFrom :: (Monad m, Fractional s, VectorSpace a s) => a -> SF m a a
- FRP.Yampa: integral :: (Monad m, VectorSpace a s) => SF m a a
+ FRP.Yampa: integral :: (Monad m, Fractional s, VectorSpace a s) => SF m a a
- FRP.Yampa: integralFrom :: (Monad m, VectorSpace a s) => a -> SF m a a
+ FRP.Yampa: integralFrom :: (Monad m, Fractional s, VectorSpace a s) => a -> SF m a a
Files
- CHANGELOG +7/−0
- bearriver.cabal +7/−3
- src/FRP/BearRiver.hs +5/−4
CHANGELOG view
@@ -1,3 +1,10 @@+2022-12-21 Ivan Perez <ivan.perez@keera.co.uk>+ * bearriver.cabal: Version bump (0.14) (#340).+ * Bump version bounds for MonadRandom (#337).+ * Adjust to work with simple-affine-space-0.2 (#339).+ * src/BearRiver.hs: show sections in haddock (#322).+ * Thanks: @geroldmeisinger.+ 2022-10-21 Ivan Perez <ivan.perez@keera.co.uk> * bearriver.cabal: Version bump (0.13.7) (#335), update copyright owners, years (#332).
bearriver.cabal view
@@ -30,7 +30,7 @@ build-type: Simple name: bearriver-version: 0.13.7+version: 0.14 author: Ivan Perez, Manuel Bärenz maintainer: ivan.perez@keera.co.uk homepage: https://github.com/ivanperez-keera/dunai@@ -82,9 +82,9 @@ base >= 4.6 && <5 , deepseq >= 1.3.0.0 && < 1.5 , dunai >= 0.6.0 && < 0.10- , MonadRandom >= 0.2 && < 0.6+ , MonadRandom >= 0.2 && < 0.7 , mtl >= 2.1.2 && < 2.3- , simple-affine-space >= 0.1 && < 0.2+ , simple-affine-space >= 0.1 && < 0.3 , transformers >= 0.3 && < 0.7 default-language:@@ -92,6 +92,10 @@ hs-source-dirs: src/++ if impl(ghc <= 7.8.4)+ build-depends:+ MonadRandom >= 0.2 && < 0.6 if !impl(ghc >= 8.0) build-depends:
src/FRP/BearRiver.hs view
@@ -8,6 +8,7 @@ #else {-# OPTIONS_GHC -Wno-deprecations #-} #endif+{-# OPTIONS_HADDOCK ignore-exports #-} -- Copyright : (c) Ivan Perez, 2019-2022 -- (c) Ivan Perez and Manuel Baerenz, 2016-2018 -- License : BSD3@@ -712,24 +713,24 @@ -- * Integration and differentiation -- | Integration using the rectangle rule.-integral :: (Monad m, VectorSpace a s) => SF m a a+integral :: (Monad m, Fractional s, VectorSpace a s) => SF m a a integral = integralFrom zeroVector -- | Integrate using an auxiliary function that takes the current and the last -- input, the time between those samples, and the last output, and returns a -- new output.-integralFrom :: (Monad m, VectorSpace a s) => a -> SF m a a+integralFrom :: (Monad m, Fractional s, VectorSpace a s) => a -> SF m a a integralFrom a0 = proc a -> do dt <- constM ask -< () accumulateWith (^+^) a0 -< realToFrac dt *^ a -- | A very crude version of a derivative. It simply divides the -- value difference by the time difference. Use at your own risk.-derivative :: (Monad m, VectorSpace a s) => SF m a a+derivative :: (Monad m, Fractional s, VectorSpace a s) => SF m a a derivative = derivativeFrom zeroVector -derivativeFrom :: (Monad m, VectorSpace a s) => a -> SF m a a+derivativeFrom :: (Monad m, Fractional s, VectorSpace a s) => a -> SF m a a derivativeFrom a0 = proc a -> do dt <- constM ask -< () aOld <- MSF.iPre a0 -< a