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