diff --git a/content/case-study-foreign-integration-js-browser/index.md b/content/case-study-foreign-integration-js-browser/index.md index 0022e85..74faa65 100644 --- a/content/case-study-foreign-integration-js-browser/index.md +++ b/content/case-study-foreign-integration-js-browser/index.md @@ -44,10 +44,9 @@ main = do In the above snippet we're creating an `IORef` and pass a callback incrementing it to a foreign function that installs a button in body, counting a number of clicks (note for brevity I used a multiline syntax that is not yet available for foreign calls). The callback closes over the `IORef` and correctly updates the number after each click. - - +
+ +
Callbacks fully enable probably the most fascinating purpose of JavaScript backend, which is web programming. GHCJS has been around for quite some time now, however it is both outdated (being a GHC fork requiring separate maintenance; currently stuck on 8.10) and cumbersome to use (often necessitating a separate setup, typically through Nix). In one of my previous companies, while evaluating potential options for rewriting the frontend, I decided to use PureScript. It was close enough to Haskell and very easy to set up - it can be installed directly through `npm`, has its own `stack`-like package manager `spago` with a suite of existing bundler plugins, and a blazing fast language server. @@ -406,9 +405,9 @@ Starting up http-server, serving dist/ Behold, a material button! - +
+ +
### Bundling with `webpack` and `swc-loader`