FRP build system - Haskell

Welcome to the Functional Programming Zulip Chat Archive. You can join the chat here.

TheMatten

Is there some sort of "FRP build system"? E.g. something based on reflex providing capabilities similar to shake?

Torsten Schmits

I have this feeling that you asked that before

TheMatten

@Daniel Díaz Carrete read that one, but now I'm realizing that it is describing something that could be a good starting point for such implementation - thanks!

@Torsten Schmits not sure :sweat_smile:

Sridhar Ratnakumar

read that one, but now I'm realizing that it is describing something that could be a good starting point for such implementation - thanks!

You want Reflex.Host.Headless, which is what neuron switched to (from Shake).

TheMatten

Cool, thanks
Is there some reflex functionality that can resume updates after restart? I mean, Shake is about "pulling updates" on program start using stored state, but Reflex seems to be more of a runtime thing

Sridhar Ratnakumar

There is no persistence, but you can build one yourself. You might have to use a low-level type like Incremental rather than Event. One of my experimental projects used it to monitor directory tree, and then build incremental data structures throughout the pipeline. https://github.com/srid/emanote.obelisk/search?q=Incremental

Emanote itself doesn't use reflex, since I figured it would be far more simpler to write my own primitive reactive system to achieve the specific goals in hand (the TIncremental type in the aforementioned link is a prelude to this). unionMount is something I designed that mounts a series of directories (merging them), and updating an in-memory data structure as the underlying files change over time. This is how Emanote's live-server updates in real-time. Not sure how relevant that is to what you are trying to build ...

TheMatten

I see, thanks - in that case, I guess your approach of writing custom FRP impl may work the best here