Skip to content

Instantly share code, notes, and snippets.

@adamwespiser
Last active February 4, 2018 21:54
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamwespiser/e79c6379146b3f0f7cd0fc455f2c54bf to your computer and use it in GitHub Desktop.
Save adamwespiser/e79c6379146b3f0f7cd0fc455f2c54bf to your computer and use it in GitHub Desktop.
A comparison of performance between Free Monad and mtl transformers
Objective: A comparison of performance between Free Monad and mtl transformers
```Haskell
Free f a = { unFree :: f (Free f a) }
```
http://softwareengineering.stackexchange.com/questions/242795/what-is-the-free-monad-interpreter-pattern
# construction of free monad via individual functions
http://www.atamo.com/articles/free-monads-wont-detox-your-colon/
# two failed attempts at extensible effects
http://archive.is/K0R6y
# free monad benchmark
https://github.com/feuerbach/freemonad-benchmark
# free monad benchmark write up
https://ro-che.info/articles/2014-06-14-extensible-effects-failed
# idris evaluation, explicit variable passing w/ state monad
https://github.com/idris-lang/Idris-dev/blob/ad1343827cb052d23196494cd24659d2a38c220a/src/Idris/Core/Evaluate.hs#L259
# purescript codegen, mtl style
https://github.com/purescript/purescript/blob/master/src/Language/PureScript/CodeGen/JS.hs
# Cofun with cofree comonads
http://dlaing.org/cofun/
@srghma
Copy link

srghma commented Feb 4, 2018

So, what's the correct library to use?
the last Roman's post https://ro-che.info/articles/2014-12-06-abstracting-from-transformer provides link to https://github.com/feuerbach/monad-classes, as result of his research?

Related https://gist.github.com/hanshoglund/d3013b0569e6e71693de758a1dd02b6f

extensible declares to be the fastest, but I haven't found comparison with monad-classes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment