I have been studying this, Elm explicitly forbids &quot;signals of signals&quot;. This basically bans dynamic mutation of the dataflow graph and makes dynamic Gui&#x27;s very difficult. The solution is not to enable signals of signals, because they are a source of problems. The solution would be to hoist all the functions up one level and operate on a dataflow graph comprised of transformations of signal transforms. This will kill many of the nice properties of Elm (hot code replacement), but the cost of the current system is that its unusable for application context switches and dynamic GUIs. In the literature the high level style of FRP is called AFRP (arrowized FRP).<p>I am currently prototyping AFRP ideas in Typescript and RxJS, although its very early days and basically not usable ATM. <a href="https:&#x2F;&#x2F;github.com&#x2F;tomlarkworthy&#x2F;animaxe" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tomlarkworthy&#x2F;animaxe</a> (a better typed version is in a branch and not compiling ATM)