groupFrom :: Board -> Position -> Maybe Group
groupFrom board pos = growGroup board <$> (groupForPlayer <$> owner)
    where groupForPlayer p = Group {positions = Set.singleton pos, player = p}
          owner = mfilter isSnorkel (getPiece board pos) >>= getPlayer

-- |
-- Get all the 'Group's on the board.
groupFrom :: Board -> Position -> Maybe Group
groupFrom board pos = growGroup board <$> (groupForPlayer <$> owner)
    where groupForPlayer p = Group {positions = Set.singleton pos, player = p}
          owner = mfilter isSnorkel (getPiece board pos) >>= getPlayer

-- |
-- Get all the 'Group's on the board.
groupFrom board pos = growGroup board <$> (groupForPlayer <$> owner)
    where groupForPlayer p = Group {positions = Set.singleton pos, player = p}
          owner = mfilter isSnorkel (getPiece board pos) >>= getPlayer

-- |
-- Get all the 'Group's on the board.