I'm trying to learn haskell from a book with exercises. I can't get through this one and I don't know what's the problem. So I to declare a << definition. In the case of 'a' has less divisors than proper divisors 'b' have, it should be true. Like 6 << 10, 6 have 4 divisors and 10 has 2 proper divisor so it should be False. I have made a definition for divisors and proper divisors, but when I'm trying to use them it just won't happen.
divisors :: Integer -> [Integer]
divisors a = [n | n <- [1..a], a `mod` n == 0]
properDivisors :: Integer -> [Integer]
properDivisors a = [n | n <- [2..a `div` 2], a `mod` n == 0]
(<<) :: Num a => a -> a -> Bool
x << y = divisors x < properDivisors y
The (<<) :: Num a => a -> a -> Bool is fixed.