{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
module T5342 (increaseAreas) where

import Control.Monad
import Data.List (sort)

nubSorted :: Eq a => [a] -> [a]
nubSorted = undefined

cellsAround :: (Num a, Num b, Ord a, Ord b) => [(a, b)] -> [(a, b)]  
cellsAround = undefined

increaseAreas :: (Num a, Num b, Ord a, Ord b) => [[(a, b)]] -> [[(a, b)]]  
increaseAreas areas 
 = nubSorted $ sort $
     do
         area <- areas
         cell2 <- cellsAround area
         return $ sort $ cell2 : area
