// Sorts a list // sort : List -> List (Sort Nil) = Nil (Sort (Cons x xs)) = (Insert x (Sort xs)) // Insert : U60 -> List -> List (Insert v Nil) = (Cons v Nil) (Insert v (Cons x xs)) = (SwapGT (> v x) v x xs) // SwapGT : U60 -> U60 -> U60 -> List -> List (SwapGT 0 v x xs) = (Cons v (Cons x xs)) (SwapGT 1 v x xs) = (StrictCons x (Insert v xs)) (StrictCons e !t) = (Cons e t) // Generates a random list (Rnd 0 s) = (Nil) (Rnd n s) = (Cons s (Rnd (- n 1) (% (+ (* s 1664525) 1013904223) 4294967296))) // Sums a list (Sum Nil) = 0 (Sum (Cons x xs)) = (+ x (Sum xs)) (Main n) = (Sum (Sort (Rnd (* 30 1000) 1)))