equal to PossibleMove ?
isStatePossibleMove :: State -> Bool
isStatePossibleMove PossibleMove = True
isStatePossibleMove _ = False

unJust :: Maybe a -> a
unJust (Just a) = a
unJust _ = undefined
   
deleteTail :: [a] -> Int -> Int -> [a]
deleteTail lst n k | n == k = [(lst !! n)]
     
posToPoint :: (Int, Int) -> (Float, Float)
posToPoint (x, y) = ((a) * cellWidth, (b) * cellHeight)
    where a = fromIntegral (x) :: Float
          b = fromIntegral (y) :: Float
-- сравнивает координаты
posToPoint (x, y) = ((a) * cellWidth, (b) * cellHeight)
    where a = fromIntegral (x) :: Float
          b = fromIntegral (y) :: Float
-- сравнивает координаты