Test multiple GHCs on Travis-CI
Some playing to support path planning.

The idea is to encode path lengths in each cell, an idea that is called
a "Dijkstra map" by one author. The obvious way of doing this is to
iteratively update distances to targets by considering all non-wall
neighbors on each iteration.

The problem with applying the distance transform to this use case is
that you can not decompose an arbitrary 2D path into horizontal and
vertical components. This commutative decomposition is a key part of
making the distance transform fast by considering only one dimension at
a time. For paths on a graph, you can not simply search horizontally,
then pair that result with a vertical search. For example, suppose the
shortest path from the origin, o, to the target, t, is a zig-zag:

o --
      |
      ---
           |
           t

A distance transform approach would sweep out from 'o' to the right
along the top row of the field suggested here. The next phase would
sweep down, allowing us to compute the squared Euclidean distance. For a
path with impenetrable barriers, however, we would need to iterate these
phases, and we would need to consider traversability during each phase
so as not to sweep a distance metric through a wall. This iteration
isn't a terrible idea as it should eat through free space quite
efficiently, but determining if iteration should stop would require a
change-detection step.
Fixed .cabal file typo