-- sq x returns the square of x sq :: Integer -> Integer sq x = x * x -- absolute x returns the absolute value of x absolute :: Integer -> Integer absolute x | x >= 0 = x absolute x | x < 0 = -x -- (alternative solution) absolute' :: Integer -> Integer absolute' x | x >= 0 = x | x < 0 = -x -- power x n returns x to the power n power :: Integer -> Integer -> Integer power x 0 = 1 power x n | n > 0 = x * power x (n-1) -- regions n computes the number of regions formed by n lines regions :: Integer -> Integer regions 0 = 1 regions n | n > 0 = regions (n-1) + n