control :: (Board -> [[Cell]]) -> Board -> Player -> Bool
control f b p = c' spss c
  where spss = f b
        c = playerToCell p
        c' [] _ = False
        c' (sp:sps) otherCell = all (c ==) sp || c' sps otherCell
control :: (Board -> [[Cell]]) -> Board -> Player -> Bool
control f b p = c' spss c
  where spss = f b
        c = playerToCell p
        c' [] _ = False
        c' (sp:sps) otherCell = all (c ==) sp || c' sps otherCell
control f b p = c' spss c
  where spss = f b
        c = playerToCell p
        c' [] _ = False
        c' (sp:sps) otherCell = all (c ==) sp || c' sps otherCell