effing-mad 0.1.0 released

101 points rosefromthedead_

At long last, the algebraic effects library that has been on everyone's mind is now available on crates.io, in all its fully documented glory. effing-mad tries to make algebraic effects feel native in Rust through some shady macro business, and this release brings some nice changes over the crate's state as of my last post:

  • the functor_eff module, which provides effect-aware versions of some standard library higher order functions such as Option::map, has been renamed to higher_order and its interface is now a bit less clunky.
  • an effect for nondeterminism has been added and lives in effects::nondet. This is similar to the list monad in Haskell, and allows a computation to split itself into zero or more "branches" and give each branch a different value from a list, eventually producing a list of results.
  • the effects::future module has been added, in which some horrible incantations live that can convert an effectful computation to a future and vice versa.
  • there is a lot more documentation now.

So go, go and write some of those async gens that boats was talking about\* :). Put disk I/O in your Result::map_err. The world is your oyster when your effects are composable and typed! But oysters are only available on nightly.

^\* ^iteration ^effect ^not ^included. ^maybe ^next ^version!