Replies: 2 comments 1 reply
-
Hi Vlad, Thanks for your nice words :) Glad you liked the paper. Regarding 1, check out https://dl.acm.org/doi/10.1145/3299711.3242757 and https://github.com/turion/rhine/. Regarding 2, I think the simplest way to think of it is to think of an MSF Then the following happens: msf = proc () -> do
x <- l -< ()
return (x, x) is not the same as : msf = proc () -> do
x <- l -< ()
y <- l -< ()
return (x, y) If Now, imagine that you define a monad like the following (assume all the necessary instances are defined): data MyMonad a = MyMonad (Maybe String -> IO (a, Maybe String)) with an additional action: readLine :: MyMonad String that only reads a new string from the terminal if none is already available in the incoming You could now define l :: MSF MyMonad () String
l = constM readLine and that would make msf = proc () -> do
x <- l -< ()
return (x, x) and: msf = proc () -> do
x <- l -< ()
y <- l -< ()
return (x, y) equivalent. |
Beta Was this translation helpful? Give feedback.
-
Thanks, Ivan! I've just finished reading the Rihine paper. Another great read! The advertised functionality, the benefits and structure are all top notch, but, man, those type-sigs!:
The library certainly fulfills the shopping list for the space simulator that I've been working on in terms of asynchronicity, clocks at various refresh rates, parallelism, that all sounds so tasty! The types look scary though, I would like to see how it is in practice when I will be rewriting the project inline with some ideas presented in Rhine, to see what are the practical implications and if generating type-sigs might get in the way. I did have similar concerns back in the days when looking at Yampa for the first time, but now it does not look so scary any more. Perhaps developing a Stockholm syndrome won't take too long. Thanks again, |
Beta Was this translation helpful? Give feedback.
-
Hey guys,
I really enjoyed reading the paper, thank you Ivan, Manuel and Henrik so much!
The paper has addressed a lot of questions that I had in regards to
dunai
in specifics and FRP topic in general, I've got a few questions left though:I wonder how is this going? Looking at dunai on hackage I can see
Data.MonadicStreamFunction.Async
which does not have much at the moment. Is there anything else I should look at?This is a topic that I am very interested in to know more about. Could you elaborate or give some hints and/or references?
Thanks,
Vlad
Beta Was this translation helpful? Give feedback.
All reactions