Specifications using Haskell type constraints for "stencil"-style computations on arrays