Flame: A PureScript front-end framework inspired by the Elm architecture

  • Purescript-Concur is simpler, and allows you to use elm-architecture as well, but also allows you to use your existing functional programming toolkit to the fullest. It also has react bindings - https://github.com/purescript-concur/purescript-concur-react.

    Here's what a counter example looks like -

        counter count = do
          button [onClick] [text (show count)]
          counter (count + 1)
    
    Check out a comparison with elm-architecture at https://ajnsit.github.io/concur-documentation/ch03-01-replic....

  • Elm handicaps my attempts of "making impossible states impossible" because:

    - I can't have Sets of arbitrary Types they must be `comparable`. I cannot create a custom comparable type.

    - Records, Bool and custom Union Types are not `comparable`

    - Bool and Simple Union Types could have been comparable if their comparison worked like they were Enumerated Types. Elm does not have Enumerated types.

    Basically https://github.com/elm/compiler/issues/1008 made me look for better alternatives.

  • Impressive metrics https://flame.asafe.dev/benchmarks

  • I'm really happy to see more PureScript support! I recently built a playground for purs in the browser: https://app.qvault.io/playground/purs

  • Nice, looks very clean.

    As in Elm, I’ve never fully understood why the events emit a value of some message type that gets interpreted into a function from ‘state -> state’ instead of handling with a state transformation directly.

    Feels like boilerplate to me. I can see situations where this approach is useful, but should it be the default?

    I guess you can always change your message type to ‘a -> a’ and interpret with ‘id’ if you want to.

  • Amazed to see PureScript is still around, I guess.

    It was everywhere on conferences like 5 years ago.

  • Misread that as "PostScript" and was confused but curious.