paf31 / purescript-react-explore

Experiments with comonads for modelling React UIs
MIT License
91 stars 4 forks source link

This is pretty neat #3

Open martyall opened 6 years ago

martyall commented 6 years ago

This isn't really an issue, but i just wanted to get some feedback about something

So I spent the better part of the weekend trying to catch myself up to speed on what you're doing here, and I decided to try my own variation on your work here by starting with a few trivial observations in the comments there. All of this is super exciting to follow, your latest blog posts, the old kmett posts and talks, and now this repo.

I guess I was interested in starting from the point of the Free DSL, rather than the comonad whose Co supports that DSL. Ultimately you will arrive there, but you never have to "find the right one" so to speak. However, there's a lot boilerplate and I haven't spent any time thinking about the composability of components defined like this.

I guess my main question is, do you find this starting point interesting? If so, what direction do you recommend trying to explore?

martyall commented 6 years ago

I just saw this in the comments section https://github.com/paf31/purescript-react-explore/blob/master/src/React/Explore.purs#L25 , which is interesting because as I said above, I previously thought I had been saving myself some work. Do you know a simple proof of this fact?

paf31 commented 6 years ago

Actually, I'm pretty sure that's wrong. It's true in some simple cases, like when f is representable, but not in general, I think.

martyall commented 6 years ago

I think I can actually add something to this -- I didn't really understand you're connections to Halogen in the comments until I spent time today reading some of their source (I have never used it, only looked at some of the examples).

I thought you were talking about defining a free dsl made uniquely for every component, what they would often callQuery, but now I think I understand that you're referring to-- something that would exist application wide, like HalogenM.

I'm fine closing this whenever, don't know if it will be helpful for someone else.