Fix names of unsigned shift and rotate operators
Rewrite division as shift for unsigned numerators

Now only applies to unsigned expressions, since in C shift right is
implementation defined for signed types.
Optimize nested constant right shifts
Add `positiveRange` and `isPositive`
Add `Monotonic` class

The `Monotonic` class allows querying an expression for sub-expressions in
which the expression is monotonic.
Add `Monotonic` instances relying on default implementations
Add optimization for `min` with monotonic decreasing arguments
Add monotonicDec for ShiftRU
Adapted to syntactic 1.10 with new tree drawing functions
Support GHC 7.8
Calculate bounds correctly for mutable arrays

Avoid allocation of very long Haskell arrays when evaluating mutable arrays
of length 0. `0-1=upperbound` for unsigned types, in this case `Length`.
Merge branch 'ghc7.8'
Relax constraints on tasty packages
Add type signature
Merge pull request #82 from Feldspar/monotonic

Perform optimizations based on the monotonicity of expressions
Merge branch 'master' into merge-master
Export safe functions from MultiDim.
Merge pull request #83 from pjonsson/merge-master

Merge master and export safe functions from MultiDim.