enumFromTo n m | n <= m = n : enumFromTo (succ n) m | otherwise = []
enumFromTo 6 10 :: [Int] = [6,7,8,9,10]
enumFromTo 42 1 :: [Integer] = []