Add MonadFix instance for Data.Tree (#451)
authorDavid Feuer <David.Feuer@gmail.com>
Sat, 23 Dec 2017 05:52:13 +0000 (00:52 -0500)
committerGitHub <noreply@github.com>
Sat, 23 Dec 2017 05:52:13 +0000 (00:52 -0500)
commit106792c3517f835848eb5abc0509548b7ebeac5f
tree19e56a5488946cbe424f6a7afc56659eb73e0edc
parent36bd13a0b5c72a3ec579b9f32fba9ea0e607017d
Add MonadFix instance for Data.Tree (#451)

* Add a `MonadFix` instance for `Tree`. This is based on an instance for
  a somewhat more general type by G. Allais.
  See [MonadTree.hs](https://gist.github.com/gallais/4c59b949c743c0a85cab55dcb73aaf7c).

* Make `>>=` for `Tree` stricter. Previously, it was too lazy to satisfy the
  `Monad` laws, and that laziness was not particularly valuable.

* Add a small test suite for `Tree`. The `Arbitrary` instance is mediocre,
  and so is the `MonadFix` test, but something definitely seems better than
  nothing!

* Bump QuickCheck version to 2.7.1 for `genericShrink`.

Fixes #452
.travis.yml
Data/Tree.hs
changelog.md
containers.cabal
tests/tree-properties.hs [new file with mode: 0644]