What does HackerNews think of reflex-platform?
A curated package set and set of tools that let you build Haskell packages so they can run on a variety of platforms. reflex-platform is built on top of the nix package manager.
The process was learning Functional Reactive Programming, then learning reflex-frp, then getting a contract with obsidian (creators of reflex) for one hour a week where we could ask questions.
( https://github.com/reflex-frp/reflex-platform )
We had a grant requirement to create a phone client for Tahoe-LAFS, a Python application with a bunch of dependencies, including ZFEC, a forward error correction library.
( https://tahoe-lafs.readthedocs.io/ )
( https://github.com/tahoe-lafs/zfec/ )
We needed bug for bug compatibility with the Python codebase, so I ran Tahoe on localhost and tested the Haskell client against the Python server. We used servant to build the API, since it builds both client and server side from the same description.
It's pretty hard to beat the productivity of one codebase for every platform with a powerful type system catching errors across every part of system.
After many years of wrangling FRP my biggest learned lesson is certainly this: not everything is a stream! You need to be able to mix streams (also called events), which embody push semantics and behaviors (things you can sample), which embody pull semantics. This is important for performance and for the structure of large applications.
Coming up with a set of primitives to efficiently combine events and behaviors in expressive ways is really difficult but worth it.