diff --git a/haskellscrabble.cabal b/haskellscrabble.cabal
--- a/haskellscrabble.cabal
+++ b/haskellscrabble.cabal
@@ -1,8 +1,8 @@
--- Initial haskellscrabble.cabal generated by cabal init.  For further 
+-- Initial haskellscrabble.cabal generated by cabal init.  For further
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                haskellscrabble
-version:             1.3.2
+version:             1.3.3
 synopsis:            A scrabble library capturing the core game logic of scrabble.
 description:         A scrabble library which enforces legal transitions between moves. Intended to facilitate the development of a playable game.
 homepage:            http://www.github.com/happy0/haskellscrabble
@@ -10,18 +10,18 @@
 license-file:        LICENSE
 author:              Gordon Martin
 maintainer:          gordonhughmartin@gmail.com
--- copyright:           
+-- copyright:
 category:            Game
 build-type:          Simple
 cabal-version:       >=1.8
 
 library
-  exposed-modules: 
+  exposed-modules:
     Wordify.Rules.Pos,
     Wordify.Rules.Pos.Internal,
     Wordify.Rules.LetterBag,
     Wordify.Rules.LetterBag.Internal,
-    Wordify.Rules.Board, 
+    Wordify.Rules.Board,
     Wordify.Rules.Board.Internal,
     Wordify.Rules.Tile,
     Wordify.Rules.Dictionary,
@@ -34,10 +34,10 @@
 
   other-modules:       Wordify.Rules.Game.Internal
 
-  build-depends:       base < 5, containers, array, random, mtl, transformers, QuickCheck, 
+  build-depends:       base < 5, containers, array, random, mtl, transformers, QuickCheck,
                        parsec, unordered-containers, semigroups, errors < 2.0, listsafe, safe, split, arrows
   hs-source-dirs:      src
-  
+
 test-suite tests
   type: exitcode-stdio-1.0
   hs-source-dirs: test .
diff --git a/src/Wordify/Rules/Board.hs b/src/Wordify/Rules/Board.hs
--- a/src/Wordify/Rules/Board.hs
+++ b/src/Wordify/Rules/Board.hs
@@ -34,11 +34,11 @@
   allSquares (Board squares) = Map.toList squares
 
   {- |
-    Places a tile on a square and yields the new board, if the 
+    Places a tile on a square and yields the new board, if the
     target square is empty. Otherwise yields 'Nothing'.
   -}
   placeTile :: Board -> Tile -> Pos -> Maybe Board
-  placeTile board tile pos = 
+  placeTile board tile pos =
     (\sq -> insertSquare board pos (putTileOn sq tile)) <$> unoccupiedSquareAt board pos
 
   insertSquare :: Board -> Pos -> Square -> Board
@@ -49,13 +49,13 @@
 
   {- | Returns the square at a given position if it is not occupied by a tile. Otherwise returns Nothing.-}
   unoccupiedSquareAt :: Board -> Pos -> Maybe Square
-  unoccupiedSquareAt board pos = 
+  unoccupiedSquareAt board pos =
     squareAt board pos >>= (\sq -> if isOccupied sq then Nothing else Just sq)
 
   {- | Returns the square at a given position if it is occupied by a tile. Otherwise returns Nothing.-}
   occupiedSquareAt :: Board -> Pos -> Maybe Square
   occupiedSquareAt board pos = squareAt board pos >>= squareIfOccupied
- 
+
   {- | All letters immediately above a given square until a non-occupied square -}
   lettersAbove :: Board -> Pos -> Seq (Pos,Square)
   lettersAbove board pos = walkFrom board pos above
@@ -77,15 +77,15 @@
   -}
   emptySquaresFrom :: Board -> Pos -> Int -> Direction -> [Pos]
   emptySquaresFrom board startPos numSquares direction =
-    let changing = [constant .. 15]
-    in  L.take numSquares $ 
+    let changingOnwards = [changing .. 15]
+    in  L.take numSquares $
             L.filter (isJust . unoccupiedSquareAt board) $
-                 mapMaybe posAt $ zipDirection (repeat constant) changing
+                 mapMaybe posAt $ zipDirection (repeat constant) changingOnwards
     where
-        constant = if direction == Horizontal then yPos startPos else xPos startPos
+        (constant, changing) = if direction == Horizontal then (yPos startPos, xPos startPos) else (xPos startPos, yPos startPos)
         zipDirection = if (direction == Horizontal) then flip L.zip else L.zip
-     
 
+
   {- | Pretty prints a board to a human readable string representation. Helpful for development. -}
   prettyPrint :: Board -> String
   prettyPrint board = rowsWithLabels ++ columnLabelSeparator ++ columnLabels
@@ -98,10 +98,10 @@
       columnLabelSeparator = "  " ++ (Prelude.take (15 * 5) $ repeat '-') ++ "\n"
       columnLabels = "      " ++ (concat $ Prelude.take (15 * 2) . L.intersperse "    " . map ( : []) $ ['A' .. ])
 
-      squareToString square = 
+      squareToString square =
         case (tileIfOccupied square) of
           Just sq -> maybe " |_| " (\lt -> " |" ++ lt : "| ") $ tileLetter sq
-          Nothing -> 
+          Nothing ->
             case square of
               (Normal _) -> "  N  "
               (DoubleLetter _) -> "  DL "
@@ -122,12 +122,12 @@
         \sq -> return (nextPos, sq)
 
   {- |
-    Creates an empty board. 
+    Creates an empty board.
   -}
   emptyBoard :: Board
   emptyBoard = Board (Map.fromList posSquares)
     where
-      layout = 
+      layout =
         [["TW","N","N","DL","N","N","N","TW","N","N","N","DL","N","N","TW"]
        ,["N","DW","N","N","N","TL","N","N","N","TL","N","N","N","DW","N"]
        ,["N","N","DW","N","N","N","DL","N","DL","N","N","N","DW","N","N"]
