effing-mad 0.1.0 released
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_effmodule, which provides effect-aware versions of some standard library higher order functions such asOption::map, has been renamed tohigher_orderand 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::futuremodule 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!