Release 2.0.0
Release 2.0.0

Breaking changes

* Values returned from the Future constructor computation
  are now type-checked to be a nullary function or void.
* Future.Guard() has been removed in favour of the new
  Future()-constructor.
* Infinitely recurring Futures (eg.
  `function recur(){ Future.of(1).chain(recur) }`) will
  now cause stack- or memory-overflow. Please use the new
  Future#recur() function to perform infinite recursion.
* The Future constructor now functions like Future.Guard:
  Its continuations ignore any calls after the first.

New features

* Cancellation. `fork()` and `value()` now return a `cancel`
  function which when called causes underlying Futures to be
  cancelled. Every Future may contain its own cancellation
  logic through a function created inside its computation.
* Every existing utility has been upgraded to contain
  appropriate cancellation logic. For example; Future.after()
  will clear its internal timeout when cancelled; releasing
  its grasp on the event loop.

Fixes

* Partially applied curried static functions no longer have
  pretty `toString` functions. This improves their performance
  by a factor of three is some situations.
* FantasyLand is no longer a dependency.
* A bug was fixed where some values could not be cast to String
  for display in error messages.

davidchambers/Fluture,fluture-js/Fluture,fluture-js/Fluture,fluture-js/Fluture,Avaq/Fluture