packages feed

bearriver 0.10.4.3 → 0.10.4.4

raw patch · 2 files changed

+13/−11 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.Yampa.Point2: instance (GHC.Show.Show a, GHC.Float.RealFloat a) => GHC.Show.Show (FRP.Yampa.Point2.Point2 a)
- FRP.Yampa.Vector2: instance (GHC.Show.Show a, GHC.Float.RealFloat a) => GHC.Show.Show (FRP.Yampa.Vector2.Vector2 a)
- FRP.Yampa.Vector3: instance (GHC.Show.Show a, GHC.Float.RealFloat a) => GHC.Show.Show (FRP.Yampa.Vector3.Vector3 a)
+ 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: (<<<) :: 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: (>>>) :: 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: (>>^) :: 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: (^>>>) :: 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 b
+ FRP.BearRiver: Kleisli :: (a -> m b) -> Kleisli a b
+ FRP.BearRiver: [runKleisli] :: Kleisli a b -> a -> m b
+ FRP.BearRiver: accumulateWith :: 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 -> Type -> Type)
+ FRP.BearRiver: class Arrow a => ArrowApply (a :: Type -> Type -> Type)
+ FRP.BearRiver: class Arrow a => ArrowChoice (a :: Type -> Type -> Type)
+ FRP.BearRiver: class Arrow a => ArrowLoop (a :: Type -> Type -> Type)
+ FRP.BearRiver: class ArrowZero a => ArrowPlus (a :: Type -> Type -> Type)
+ FRP.BearRiver: class Arrow a => ArrowZero (a :: Type -> Type -> 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 :: (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 :: 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: first :: Arrow a => a b c -> a (b, d) (c, d)
+ FRP.BearRiver: iPost :: Monad m => b -> MSF m a b -> MSF m a b
+ FRP.BearRiver: iPre :: 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 :: (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: liftTransS :: (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 :: 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: mappendS :: (Monoid n, Monad m) => MSF m n n
+ FRP.BearRiver: mealy :: 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 :: 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: repeatedly :: Monad m => (a -> a) -> a -> MSF m () 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 :: (RModule v, Monad m) => v -> MSF m v v
+ FRP.BearRiver: sumS :: (RModule v, 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 :: 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.Yampa: (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c')
+ FRP.Yampa: (***) :: Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
+ FRP.Yampa: (*^) :: VectorSpace v a => a -> v -> v
+ FRP.Yampa: (+++) :: ArrowChoice a => a b c -> a b' c' -> a (Either b b') (Either c c')
+ FRP.Yampa: (-->) :: Monad m => b -> SF m a b -> SF m a b
+ FRP.Yampa: (.+^) :: AffineSpace p v a => p -> v -> p
+ FRP.Yampa: (.-.) :: AffineSpace p v a => p -> p -> v
+ FRP.Yampa: (.-^) :: AffineSpace p v a => p -> v -> p
+ FRP.Yampa: (<+>) :: ArrowPlus a => a b c -> a b c -> a b c
+ FRP.Yampa: (<<<) :: Category cat => cat b c -> cat a b -> cat a c
+ FRP.Yampa: (<<^) :: Arrow a => a c d -> (b -> c) -> a b d
+ FRP.Yampa: (>--) :: Monad m => a -> SF m a b -> SF m a b
+ FRP.Yampa: (>>>) :: 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: (>>^) :: Arrow a => a b c -> (c -> d) -> a b d
+ FRP.Yampa: (^+^) :: VectorSpace v a => v -> v -> v
+ FRP.Yampa: (^-^) :: VectorSpace v a => v -> v -> v
+ FRP.Yampa: (^/) :: VectorSpace v a => v -> a -> v
+ FRP.Yampa: (^<<) :: Arrow a => (c -> d) -> a b c -> a b d
+ FRP.Yampa: (^>>) :: Arrow a => (b -> c) -> a c d -> a b d
+ FRP.Yampa: (^>>>) :: MonadBase m1 m2 => MSF m1 a b -> MSF m2 b c -> MSF m2 a c
+ FRP.Yampa: (|||) :: ArrowChoice a => a b d -> a c d -> a (Either b c) d
+ FRP.Yampa: ArrowMonad :: a () b -> ArrowMonad b
+ FRP.Yampa: Event :: a -> Event a
+ FRP.Yampa: Kleisli :: (a -> m b) -> Kleisli a b
+ FRP.Yampa: NoEvent :: Event a
+ FRP.Yampa: Point2 :: !a -> !a -> Point2 a
+ FRP.Yampa: Point3 :: !a -> !a -> !a -> Point3 a
+ FRP.Yampa: [runKleisli] :: Kleisli a b -> a -> m b
+ FRP.Yampa: accumHoldBy :: Monad m => (b -> a -> b) -> b -> SF m (Event a) b
+ FRP.Yampa: accumulateWith :: Monad m => (a -> s -> s) -> s -> MSF m a s
+ FRP.Yampa: after :: Monad m => Time -> b -> SF m a (Event b)
+ FRP.Yampa: app :: ArrowApply a => a (a b c, b) c
+ FRP.Yampa: arr :: Arrow a => (b -> c) -> a b c
+ FRP.Yampa: arrM :: Monad m => (a -> m b) -> MSF m a b
+ FRP.Yampa: boolToEvent :: Bool -> Event ()
+ FRP.Yampa: class (Floating a, VectorSpace v a) => AffineSpace p v a | p -> v, v -> a
+ FRP.Yampa: class Category a => Arrow (a :: Type -> Type -> Type)
+ FRP.Yampa: class Arrow a => ArrowApply (a :: Type -> Type -> Type)
+ FRP.Yampa: class Arrow a => ArrowChoice (a :: Type -> Type -> Type)
+ FRP.Yampa: class Arrow a => ArrowLoop (a :: Type -> Type -> Type)
+ FRP.Yampa: class ArrowZero a => ArrowPlus (a :: Type -> Type -> Type)
+ FRP.Yampa: class Arrow a => ArrowZero (a :: Type -> Type -> Type)
+ FRP.Yampa: class (Eq a, Floating a) => VectorSpace v a | v -> a
+ FRP.Yampa: constM :: Monad m => m b -> MSF m a b
+ FRP.Yampa: constant :: Monad m => b -> SF m a b
+ FRP.Yampa: count :: (Num n, Monad m) => MSF m a n
+ FRP.Yampa: dSwitch :: Monad m => SF m a (b, Event c) -> (c -> SF m a b) -> SF m a b
+ FRP.Yampa: data Event a
+ FRP.Yampa: data MSF (m :: Type -> Type) a b
+ FRP.Yampa: data RealFloat a => Point2 a
+ FRP.Yampa: data RealFloat a => Point3 a
+ FRP.Yampa: data RealFloat a => Vector2 a
+ FRP.Yampa: data RealFloat a => Vector3 a
+ FRP.Yampa: derivative :: (Monad m, VectorSpace a s) => SF m a a
+ FRP.Yampa: derivativeFrom :: (Monad m, VectorSpace a s) => a -> SF m a a
+ FRP.Yampa: distance :: AffineSpace p v a => p -> p -> a
+ FRP.Yampa: dot :: VectorSpace v a => v -> v -> a
+ FRP.Yampa: dpSwitchB :: (Monad m, Traversable col) => col (SF m a b) -> SF m (a, col b) (Event c) -> (col (SF m a b) -> c -> SF m a (col b)) -> SF m a (col b)
+ FRP.Yampa: dup :: () => b -> (b, b)
+ FRP.Yampa: edge :: Monad m => SF m Bool (Event ())
+ FRP.Yampa: edgeBy :: Monad m => (a -> a -> Maybe b) -> a -> SF m a (Event b)
+ FRP.Yampa: edgeFrom :: Monad m => Bool -> SF m Bool (Event ())
+ FRP.Yampa: embed :: Monad m => MSF m a b -> [a] -> m [b]
+ FRP.Yampa: event :: a -> (b -> a) -> Event b -> 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: fifo :: Monad m => MSF m [a] (Maybe a)
+ FRP.Yampa: first :: Arrow a => a b c -> a (b, d) (c, d)
+ FRP.Yampa: fromEvent :: () => Event p -> p
+ FRP.Yampa: hold :: Monad m => a -> SF m (Event a) a
+ FRP.Yampa: iPost :: Monad m => b -> MSF m a b -> MSF m a b
+ FRP.Yampa: iPre :: Monad m => a -> MSF m a a
+ FRP.Yampa: identity :: Monad m => SF m a a
+ FRP.Yampa: infix 6 .-.
+ FRP.Yampa: infix 7 `dot`
+ FRP.Yampa: infixl 6 ^-^
+ FRP.Yampa: infixl 9 ^/
+ FRP.Yampa: infixr 1 <<<
+ FRP.Yampa: infixr 2 +++
+ FRP.Yampa: infixr 3 &&&
+ FRP.Yampa: infixr 5 <+>
+ FRP.Yampa: infixr 9 *^
+ FRP.Yampa: integral :: (Monad m, VectorSpace a s) => SF m a a
+ FRP.Yampa: integralFrom :: (Monad m, VectorSpace a s) => a -> SF m a a
+ FRP.Yampa: isEvent :: () => Event a -> Bool
+ FRP.Yampa: iterFrom :: Monad m => (a -> a -> DTime -> b -> b) -> b -> SF m a b
+ FRP.Yampa: lMerge :: Event a -> Event a -> Event a
+ FRP.Yampa: left :: ArrowChoice a => a b c -> a (Either b d) (Either c d)
+ FRP.Yampa: leftApp :: ArrowApply a => a b c -> a (Either b d) (Either c d)
+ FRP.Yampa: liftBaseM :: (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: liftTransS :: (MonadTrans t, Monad m, Monad (t m)) => MSF m a b -> MSF (t m) a b
+ FRP.Yampa: loop :: ArrowLoop a => a (b, d) (c, d) -> a b c
+ FRP.Yampa: loopPre :: Monad m => c -> SF m (a, c) (b, c) -> SF m a b
+ FRP.Yampa: mapMaybeS :: 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: mappendS :: (Monoid n, Monad m) => MSF m n n
+ FRP.Yampa: maybeToEvent :: () => Maybe a -> Event a
+ FRP.Yampa: mealy :: Monad m => (a -> s -> (b, s)) -> s -> MSF m a b
+ FRP.Yampa: mergeBy :: (a -> a -> a) -> Event a -> Event a -> Event a
+ FRP.Yampa: morphGS :: Monad m2 => (forall c. () => (a1 -> m1 (b1, c)) -> a2 -> m2 (b2, c)) -> MSF m1 a1 b1 -> MSF m2 a2 b2
+ FRP.Yampa: morphS :: (Monad m2, Monad m1) => (forall c. () => m1 c -> m2 c) -> MSF m1 a b -> MSF m2 a b
+ FRP.Yampa: negateVector :: VectorSpace v a => v -> v
+ FRP.Yampa: never :: Monad m => SF m a (Event b)
+ FRP.Yampa: newtype ArrowMonad (a :: Type -> Type -> Type) b
+ FRP.Yampa: newtype Kleisli (m :: Type -> Type) a b
+ FRP.Yampa: next :: Monad m => b -> MSF m a b -> MSF m a b
+ FRP.Yampa: noEvent :: Event a
+ FRP.Yampa: norm :: VectorSpace v a => v -> a
+ FRP.Yampa: normalize :: VectorSpace v a => v -> v
+ FRP.Yampa: notYet :: Monad m => SF m (Event a) (Event a)
+ FRP.Yampa: now :: Monad m => b -> SF m a (Event b)
+ FRP.Yampa: occasionally :: MonadRandom m => Time -> b -> SF m a (Event b)
+ FRP.Yampa: once :: Monad m => SF m (Event a) (Event a)
+ FRP.Yampa: origin :: AffineSpace p v a => p
+ FRP.Yampa: 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.Yampa: pauseOn :: Show a => (a -> Bool) -> String -> MSF IO a a
+ FRP.Yampa: point2X :: RealFloat a => Point2 a -> a
+ FRP.Yampa: point2Y :: RealFloat a => Point2 a -> a
+ FRP.Yampa: point3X :: RealFloat a => Point3 a -> a
+ FRP.Yampa: point3Y :: RealFloat a => Point3 a -> a
+ FRP.Yampa: point3Z :: RealFloat a => Point3 a -> a
+ FRP.Yampa: reactimate :: Monad m => m a -> (Bool -> m (DTime, Maybe a)) -> (Bool -> b -> m Bool) -> SF Identity a b -> m ()
+ FRP.Yampa: repeatedly :: Monad m => (a -> a) -> a -> MSF m () a
+ FRP.Yampa: replaceOnce :: Monad m => a -> SF m a a
+ FRP.Yampa: returnA :: Arrow a => a b b
+ FRP.Yampa: right :: ArrowChoice a => a b c -> a (Either d b) (Either d c)
+ FRP.Yampa: second :: Arrow a => a b c -> a (d, b) (d, c)
+ FRP.Yampa: sumFrom :: (RModule v, Monad m) => v -> MSF m v v
+ FRP.Yampa: sumS :: (RModule v, Monad m) => MSF m v v
+ FRP.Yampa: switch :: Monad m => SF m a (b, Event c) -> (c -> SF m a b) -> SF m a b
+ FRP.Yampa: tag :: Event a -> b -> Event b
+ FRP.Yampa: takeEvents :: Monad m => Int -> SF m (Event a) (Event a)
+ FRP.Yampa: time :: Monad m => SF m () Time
+ FRP.Yampa: traceWhen :: (Monad m, Show a) => (a -> Bool) -> (String -> m ()) -> String -> MSF m a a
+ FRP.Yampa: traceWith :: (Monad m, Show a) => (String -> m ()) -> String -> MSF m a a
+ FRP.Yampa: type ClockInfo m = ReaderT DTime m
+ FRP.Yampa: type DTime = Double
+ FRP.Yampa: type MSink (m :: Type -> Type) a = MSF m a ()
+ FRP.Yampa: type MStream (m :: Type -> Type) a = MSF m () a
+ FRP.Yampa: type Time = Double
+ FRP.Yampa: unfold :: Monad m => (a -> (b, a)) -> a -> MSF m () b
+ FRP.Yampa: vector2 :: RealFloat a => a -> a -> Vector2 a
+ FRP.Yampa: vector2Polar :: RealFloat a => a -> a -> Vector2 a
+ FRP.Yampa: vector2Rho :: RealFloat a => Vector2 a -> a
+ FRP.Yampa: vector2RhoTheta :: RealFloat a => Vector2 a -> (a, a)
+ FRP.Yampa: vector2Rotate :: RealFloat a => a -> Vector2 a -> Vector2 a
+ FRP.Yampa: vector2Theta :: RealFloat a => Vector2 a -> a
+ FRP.Yampa: vector2X :: RealFloat a => Vector2 a -> a
+ FRP.Yampa: vector2XY :: RealFloat a => Vector2 a -> (a, a)
+ FRP.Yampa: vector2Y :: RealFloat a => Vector2 a -> a
+ FRP.Yampa: vector3 :: RealFloat a => a -> a -> a -> Vector3 a
+ FRP.Yampa: vector3Phi :: RealFloat a => Vector3 a -> a
+ FRP.Yampa: vector3Rho :: RealFloat a => Vector3 a -> a
+ FRP.Yampa: vector3RhoThetaPhi :: RealFloat a => Vector3 a -> (a, a, a)
+ FRP.Yampa: vector3Rotate :: RealFloat a => a -> a -> Vector3 a -> Vector3 a
+ FRP.Yampa: vector3Spherical :: RealFloat a => a -> a -> a -> Vector3 a
+ FRP.Yampa: vector3Theta :: RealFloat a => Vector3 a -> a
+ FRP.Yampa: vector3X :: RealFloat a => Vector3 a -> a
+ FRP.Yampa: vector3XYZ :: RealFloat a => Vector3 a -> (a, a, a)
+ FRP.Yampa: vector3Y :: RealFloat a => Vector3 a -> a
+ FRP.Yampa: vector3Z :: RealFloat a => Vector3 a -> a
+ FRP.Yampa: withSideEffect :: Monad m => (a -> m b) -> MSF m a a
+ FRP.Yampa: withSideEffect_ :: Monad m => m b -> MSF m a a
+ FRP.Yampa: zeroArrow :: ArrowZero a => a b c
+ FRP.Yampa: zeroVector :: VectorSpace v a => v
+ FRP.Yampa.AffineSpace: infix 6 .+^
+ FRP.Yampa.Point2: instance (GHC.Float.RealFloat a, GHC.Show.Show a) => GHC.Show.Show (FRP.Yampa.Point2.Point2 a)
+ FRP.Yampa.Vector2: instance (GHC.Float.RealFloat a, GHC.Show.Show a) => GHC.Show.Show (FRP.Yampa.Vector2.Vector2 a)
+ FRP.Yampa.Vector3: instance (GHC.Float.RealFloat a, GHC.Show.Show a) => GHC.Show.Show (FRP.Yampa.Vector3.Vector3 a)
+ FRP.Yampa.VectorSpace: infix 7 `dot`
+ FRP.Yampa.VectorSpace: infixl 6 ^+^
+ FRP.Yampa.VectorSpace: infixl 9 ^/
+ FRP.Yampa.VectorSpace: infixr 9 *^

Files

bearriver.cabal view
@@ -1,5 +1,5 @@ name:                bearriver-version:             0.10.4.3+version:             0.10.4.4 synopsis:            A replacement of Yampa based on Monadic Stream Functions. description:         A Yampa replacement built using Dunai. homepage:            keera.co.uk@@ -23,7 +23,7 @@                        FRP.Yampa.AffineSpace,                        FRP.BearRiver -  build-depends:       base >=4.6 && <5, transformers >=0.3, mtl, dunai, MonadRandom+  build-depends:       base >=4.6 && <5, transformers >=0.3, mtl, dunai >= 0.5 && < 0.6, MonadRandom   hs-source-dirs:      src/   default-language:    Haskell2010 
src/FRP/BearRiver.hs view
@@ -17,16 +17,18 @@ import           Control.Monad                                  (mapM) import           Control.Monad.Random import           Control.Monad.Trans.Maybe-import           Control.Monad.Trans.MSF-import           Control.Monad.Trans.MSF.Except                 as MSF+import           Control.Monad.Trans.MSF                        hiding (switch)+import           Control.Monad.Trans.MSF.Except                 as MSF hiding (switch) import           Control.Monad.Trans.MSF.Random import           Data.Functor.Identity import           Data.Maybe+import           Data.MonadicStreamFunction.InternalCore import           Data.MonadicStreamFunction                     as X hiding (reactimate,                                                                       sum,                                                                       switch,                                                                       trace) import qualified Data.MonadicStreamFunction                     as MSF+import qualified Control.Monad.Trans.MSF                        as MSF import           Data.MonadicStreamFunction.Instances.ArrowLoop import           Data.Traversable                               as T import           FRP.Yampa.VectorSpace                          as X@@ -54,7 +56,7 @@  integralFrom :: (Monad m, VectorSpace a s) => a -> SF m a a integralFrom a0 = proc a -> do-  dt <- arrM_ ask         -< ()+  dt <- constM ask         -< ()   accumulateWith (^+^) a0 -< realToFrac dt *^ a  derivative :: (Monad m, VectorSpace a s) => SF m a a@@ -62,7 +64,7 @@  derivativeFrom :: (Monad m, VectorSpace a s) => a -> SF m a a derivativeFrom a0 = proc a -> do-  dt   <- arrM_ ask   -< ()+  dt   <- constM ask   -< ()   aOld <- MSF.iPre a0 -< a   returnA             -< (a ^-^ aOld) ^/ realToFrac dt @@ -176,7 +178,7 @@                   ct = if t' < 0 then constant (NoEvent, t') else go               return ((e, t'), ct) -occasionally :: MonadRandom m +occasionally :: MonadRandom m              => Time -- ^ The time /q/ after which the event should be produced on average              -> b    -- ^ Value to produce at time of event              -> SF m a (Event b)@@ -189,7 +191,7 @@       returnA -< if r < p then Event b else NoEvent  where   timeDelta :: Monad m => SF m a DTime-  timeDelta = arrM_ ask+  timeDelta = constM ask  -- | Initialization operator (cf. Lustre/Lucid Synchrone). --@@ -266,12 +268,12 @@   -- runMaybeT $ MSF.reactimate $ liftMSFTrans (senseSF >>> sfIO) >>> actuateSF   MSF.reactimateB $ senseSF >>> sfIO >>> actuateSF   return ()- where sfIO        = liftMSFPurer (return.runIdentity) (runReaderS sf)+ where sfIO        = morphS (return.runIdentity) (runReaderS sf)         -- Sense        senseSF     = switch senseFirst senseRest-       senseFirst  = arrM_ senseI >>> (arr $ \x -> ((0, x), Event x))-       senseRest a = arrM_ (sense True) >>> (arr id *** keepLast a)+       senseFirst  = constM senseI >>> (arr $ \x -> ((0, x), Event x))+       senseRest a = constM (sense True) >>> (arr id *** keepLast a)         keepLast :: Monad m => a -> MSF m (Maybe a) a        keepLast a = MSF $ \ma -> let a' = fromMaybe a ma in return (a', keepLast a')