Interpreters with Non-Determinism Using a Free Monad
casperbp.net