The meetings are not recorded, but we try to post some meeting minutes afterwards. Also, feel free to post agenda items ahead of time in this thread.
I want to warmly invite you to the next Monday meetup (its 12:00 UTC this time). We are going to have a lightweight intro to purescript-typeable by @ajnsit!
I’ve extended Monadys meetup to 2 hours (it is quite possible that it will take a usual hour or hour and half - we will see). I think that it is enough time to have a Q&A session related to typeable and to make a usual sharing round too and discuss… other libs like wai/ warp / halo or topics like codegen…
We can also schedule next lightweight / informal presentations for the future meetups. I hope that we can even start making some preparations for a bit more serious recorded presentations.
Just a quick reminder that tomorrow at this time we are going to be already during the meetup so please don’t forget to join on time
My slides from the talk - https://speakerdeck.com/ajnsit/purescript-typeable
Great talk, thanks Anupam!
Thanks a lot @ajnsit for a really interesting presentation and answering all the questions!
I’m not sure if I’m able to recap the whole discussion details (sorry if I missed something) around the presentation and other topics but I try to quickly summarize it here:
@ajnsit presented a really nice intro to typeables and walked us through the lib. Please check the slides if you are interested in the topic - they are really detailed.
It is hard to sum it up as it was nice walk through the topic starting from the basics. During the Q&A session we have discussed application of the lib. Anupam shared link to another library (for writing extensible interpreters) where he wants to use the typeable in the near future: https://github.com/ajnsit/purescript-tagless .
Additionally we have discussed the difference between this approach and optics which requires more explicite typing and direct composition of lenses. This approach requires usually some refactoring when the structure at hand changes. Typeable in some sens provide a way to write more generic code for data manipulation because you don’t have o commit to a specific shape of your data type.
Portability to other backends requires an additional investigation and is somewhat open question.
@Woody88 described the status of his http backend libraries. There are updates on multiple fronts here and these libs are gaining real maturity:
swerve provides quite extensive set of examples which is based on servant docs (am I right?)
In swerve we can define response types using rows and handling them through
warp can be easily integrated with existing express middlewares (thanks to collaboration with @robertdp I think).
http-types is already and wai should be soon portable to alternate backends.
@robertdp shortly described motivation behind react-halo which can help you build components with complex logic with resource management.
We have also discussed possible “PureScript selling points”. It was really interesting and dynamic discussion - we were able to hear many different opinions.
The main question remained open: is it better for PS community to focus and improve the current main backend and lower entry point for JS developers or rather quite the opposite - could the portability of the compiler be the main promo point and purerl or backends like the purescript-python (which can target ML people too) should be the main strategy for wider adoption.
A bit wider adoption is probably needed if we all want to work in our favorite language on a day to day basis
Thanks a lot to all of you for the meetup and see you soon!
I know that Andrew is really open to discussion about the details of this patterns and possible other approaches. So please prepare not only popcorn but also some questions and suggestions
I’d go further even and say that since what i’ve done is simply package as a cookbook recipe stuff that was out there already (notably in @JordanMartinez’ reference materials, in turn derived from various concrete and less-concrete proposals in the blogosphere)…that what i’m particularly interested in is how other people have approached this in building PureScript applications.
In my experience, it’s quite easy to have a clean application architecture on paper which nonetheless fails to scale up in some particular way, be it performance, maintainability, security, etc.
So i’ll try to walk thru the recipe stuff fairly swiftly to level-set everyone on the call and then it’d be super if people can contribute additional insights from their working experiences.
(edit to add: it would be good to codify other approaches in recipes too, and even to have pros and cons for their use)
Would it be a good idea to open a pr with a new recipe implementing the same thing using free monads & purescript-run?
I think that’d be great, personally.
On a related note, the
react-realworld project just refactored from one version of the capability pattern to another.
It allows the implementation to be injected at runtime, so it doesn’t require different monads for client-side logic, server-side logic and testing logic.
And throw in some automatic fixture generation, for easier testing (messy first attempt):
Just a short reminder that tomorrow around this time we have another PS meetup. We have an interesting main and starting point which is @afc presentation about capability pattern.
Please join us if you want to discuss applications design and effects systems in PureScript… or anything else PS related.
Here are the notes from today’s meetup. I locked it to prevent further anonymous editing, but feel free to send me a DM for any change requests.
I want to thanks Andrew again for this cool presentation and link directly from here to the slides: https://github.com/afcondon/purescript-capability-pattern/blob/main/Capability%20Patterns.pdf
As Andrew predicted the topic rises a lot of questions around application architecture and a given approach scalability / maintainability. It would be lovely if we could compare and discuss other approaches (somewhat hybrid approach proposed by @robertdb above or plain purescript-run design) on the next meetups too. It would be also nice to hear more real life stories from production deployments or just larger code bases.
If you would like to share / discuss / present a library, learning experience report, theoretical topic, practical problem / solution or anything else PS related as a bit larger presentation (outside of the usual sharing session) please don’t hesitate to announce it here so everybody can plan their presence and benefit from the presentation and discussion.
@Adrielus You were asking about AST annotations at the last meeting. Have you seen the Trees That Grow paper? Apparently it’s going to be used in GHC at some point in the future… I don’t know how relevant it is to you, because it uses some GHC Haskell-specific things (GADTs, type families, pattern synonyms), but it might be a source of ideas? https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/trees-that-grow.pdf
Just a quick reminder that tomorrow we are going to have yet another PS meetup (2021-02-15T00:00:00Z).
Following @milesfrain great idea from the previous meetup I’ve created an open notebook for this meeting here which we can use before and during the event to plan and record the topics, questions etc.
Please join us (using our usual jitsi room) if you would like to share or discuss anything PS related!