makeMove :: State -> Int -> State
makeMove s i = State newBoard (nextPlayer $ player s)
    where 
        t = board s ! i
        newBoard
            | isLeft t = board s // [(i, Right $ player s)]
            | otherwise = board s
makeMove :: State -> Int -> State
makeMove s i = State newBoard (nextPlayer $ player s)
    where 
        t = board s ! i
        newBoard
            | isLeft t = board s // [(i, Right $ player s)]
            | otherwise = board s
makeMove s i = State newBoard (nextPlayer $ player s)
    where 
        t = board s ! i
        newBoard
            | isLeft t = board s // [(i, Right $ player s)]
            | otherwise = board s