tjweir / effects-toy

Playing with Haskell effect systems

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

effects-toy

This repo includes implementations of a "Hello, world!" HTTP server in several extensible effects libraries. Currently, there are implementations using:

  • fused-effects
  • eff
  • polysemy

The task itself was based in this tutorial.

Running

You can run any implementation using:

stack run <package-name> # to run the server
./ghci <package-name> # start a nice ghci repl

# for example

stack run toy-fused-effects
stack run toy-eff
stack run toy-polysemy

Because eff and fused-effects use the same module names, we cannot load both at the same time :(

Development

This repo has a nice setup fot developing with VSCode and the ghcide extension.

After installing the extension above, you need to build ghcide:

stack build ghcide --copy-compiler-tool

About

Playing with Haskell effect systems

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Haskell 99.6%Language:Shell 0.4%