-- Area of each rectangle in the standard input stream
module Main where

import Text.Printf

main :: IO()
main = interact (showResults . map area . readTestCases)

readTestCases :: String -> [(Double,Double,Double,Double)]
readTestCases = pairUp . (map read) . words

pairUp :: [Double] -> [(Double,Double,Double,Double)]
pairUp (0.0:0.0:0.0:0.0:_) = []
pairUp (n:m:o:p:rest) = (n,m,o,p) : (pairUp rest)
pairUp (_) = error "bad input" -- must be multiple of 4 numbers in input

showResults ::  [Double] -> String
showResults = unlines . (map format)

format :: Double -> String
format a = printf "%.2f" a

area :: (Double, Double, Double, Double) -> Double
area (x,y,z,w) = abs ((x-z) * (y-w))

--  ------------For GNU Emacs ------------
--  Local Variables:
--  compile-command: "ghc -Wall area.hs"
--  End: