dunai
dunai copied to clipboard
Classic FRP, Arrowized FRP, Reactive Programming, and Stream Programming, all via Monadic Stream Functions
Out of curiosity I ran Yampa's test suite on bearriver, by chaning the dependency on Yampa to bearriver. First I discovered that some functions such as `snap` and `delay` that...
This is my first pass at adding Profunctor and Traversing instances. I'm not 100% positive they're correct, though, some hand-rolled experiments seem to match my intuitions so far. My interest...
This branch defines a `link`, a new switching primitive for Bear River, and `vain`, a continuation-capturing primitive for Dunai. These can be used to implement high-level switching facilities as described...
`SF` has a monad parameter that is transformed with `ClockInfo` in its type synonym definition: > type SF m = MSF (ClockInfo m) This branch defines transformations of signal functions...
To date, `FRP.BearRiver` re-exports the module `Data.VectorSpace` from the "simple-affine-space" package. That makes it easy to use its definitions like `^+^` just by importing `FRP.BearRiver`. However, these names crowd the...
slightly generalize the type of reactInit. This allows for passing parameters using ReaderT without passing a parameter when the react handle is created.
I wanted to test different monoid instances for `MSF`, I tried [`Ap`](https://hackage.haskell.org/package/base-4.12.0.0/docs/src/Data.Monoid.html#Ap) but only the first one worked because `MSF` is defined as a `data` not a `newtype`. Making it...
The MSF instance of `VectorSpace` does not give an implementation for `dot`: ``` src/Data/MonadicStreamFunction/Instances/VectorSpace.hs:46:10: warning: [-Wmissing-methods] • No explicit implementation for ‘dot’ • In the instance declaration for ‘VectorSpace (MSF...
This issue is an attempt at starting a discussion about whether we should import Haskell's `Prelude` by default. A lot of the issues that we've had over the years in...
The module `Control.Monad.Trans.MSF.Except` uses inconsistent conditions to select the version of base: First it uses `MIN_VERSION_base`: https://github.com/ivanperez-keera/dunai/blob/6ae88bedfe4969702cf9bafbc38550ed06debceb/dunai/src/Control/Monad/Trans/MSF/Except.hs#L20-L22 Afterwards, it uses `__GLASGOW_HASKELL__`: https://github.com/ivanperez-keera/dunai/blob/6ae88bedfe4969702cf9bafbc38550ed06debceb/dunai/src/Control/Monad/Trans/MSF/Except.hs#L40-L49 If possible, we should stick to one kind...