PureScript Online Meetup 2021 July 5
====
@Adriel has worked on a [canvas rendering library](https://github.com/lunarcast/lunarlog/tree/develop/packages/geometry/)
- Presented the support for events, layouts, padding, etc
- Based on TEA (right now at least)
- High level wrapper of a [geometry typescript package](https://thi.ng/geom)
- Passing implicit parameters with [a hacky typeclass](https://github.com/lunarcast/lunarlog/blob/develop/packages/loglude/src/Ask.purs)
- [Cancelable monad](https://github.com/lunarcast/lunarlog/blob/develop/packages/loglude/src/Cancelable.purs)
- Support for [custom components](https://github.com/lunarcast/lunarlog/blob/develop/packages/geometry/src/Shapes/Text.purs)
- [Flexbox-inspired layouting system demo](https://twitter.com/yugiohxlight/status/1410933266010497030) and [implementation](https://github.com/lunarcast/lunarlog/blob/develop/packages/geometry/src/Shapes/Flex.purs)
- Discussion about testing & generating bindings from typescript types
- Discussion about creating an organization dedicated to bindings for [thi.ng](thi.ng) repositories.
@Paluh has shown us his work on providing beginner friendly error messages
@Tomek has shown us his [resource managment game](http://edu.tprimke.net/projects/edusim/sim/opt.html):
- Custom prect bindings with an emphasis on output size
Discussion about the pros and cons of using [ReasonMl](https://reasonml.github.io/) over Purescript.
Pros:
- much faster compilation times
- much better error messages
- much more readable generated code & runtime representations of types
- Purescript doesnt have nice tuple support
- Pretty nice [reference docs](https://reasonml.github.io/docs/en/overview)
Cons:
- More basic type system
- Closer to javascript
More tuple discussion:
- @Paluh demonstrated the use of /\ for nicer tuple syntax
- @Paluh also demonstrated the compiler support for multi-value pattern matching
- Discussion about `let in` vs `do let`
- Discussion about debug functions (`traceM`, `spy` etc)
Discussion about practicallity issues with the purescript type system compared to the typescript type system:
- Case study: material ui bindings and the complicated code for doing simple mix and matching on records (record merging, optional & required props, prop inheritence & overriding).