you can use S.fix to bind recursive relationships between modules
¤%%link;;{½3;so the subscriber relation is inverted, relative to OO, where you register listeners
¤%%link;;{½3;in effect, a FRP first class module, is a stateful instance, which others can subscribe to
¤%%link;;{½3;you can use E.fold/S.fix inside a module to accumulate state
¤%%link;;{½3;you can program with time-semantics in a declarative way
¤%%link;;{½3;.. though ofc. much more is possible with FRP than with modular-synth modules
¤%%link;;{½3;there is btw. a direct relation between modular-synth modules and this model too
¤%%link;;{½3;.. and return a module containing events and signals
¤%%link;;{½3;.. which are module-functors that receive a set of events and signals as input
¤%%link;;{½3;then you get something that looks a bit like OO, if you squint, but it's safe
¤%%link;;{½3;and I've found that if you mix OCamls module system with FRP..
¤%%link;;{½3;