revP :: Placer -> Placer flipP :: Placer -> Placer
revP placer
revP
returns a placer which places
the boxes in the opposite order. flipP
transforms a placer into
a mirror symmetric placer with respect to the line x=y.
placer :: Placer
verticalP = flipP horizontalP horizontalP = flipP verticalP flipP (flipP placer) = placer revP (revP placer) = placer