ivanperez-keera / dunai

Classic FRP, Arrowized FRP, Reactive Programming, and Stream Programming, all via Monadic Stream Functions
197 stars 30 forks source link

`bearriver`: Offer all definitions from `FRP.Yampa.Simulation` #425

Open ivanperez-keera opened 1 week ago

ivanperez-keera commented 1 week ago

The module FRP.Yampa.Simulation is being offered by Yampa, but not bearriver.

This makes the interface offered by bearriver not compliant with Yampa, therefore not delivering on the promise of being API-compatible.

This is a subissue of #40. Because #40 is a big issue, it's good to split it in several smaller ones.

ivanperez-keera commented 3 days ago

I've put a draft implementation in a branch https://github.com/ivanperez-keera/dunai/tree/develop-bearriver-simulation.

I need to think for a bit about this. I wonder if there's an easy, clean, elegant way to generalize it so that it's not specific to the Identity monad.

Opinions welcome.

ivanperez-keera commented 3 days ago

This seems like a reasonable balance for now. If anyone has ideas of how to make it even more general, please let me know. Otherwise, I'll merge this as is.