enumFromTo n m | n <= m = n : enumFromTo (succ n) m | otherwise = []
enumFromTo 6 10 :: [Int] = [6,7,8,9,10]
enumFromTo 42 1 :: [Integer] = []
enumFromTo 6 10 :: [Int] = [6,7,8,9,10]
enumFromTo 42 1 :: [Integer] = []
>>> :k! Eval (EnumFromTo 0 3) ... = [0, 1, 2, 3]