#include "share/atspre_staload.hats" typedef pair = '{ name = string, value = string } fn sort_pairs {n : int} (pairs : &array (pair, n) >> _, n : size_t n) : void = let implement array_quicksort$cmp (x, y) = strcmp (x.name, y.name) in array_quicksort (pairs, n) end implement main0 () = let val pairs_list : list (pair, 9) = $list ('{name = "Warsaw", value = "Poland"}, '{name = "Prague", value = "Czech Republic"}, '{name = "London", value = "United Kingdom"}, '{name = "Paris", value = "France"}, '{name = "Madrid", value = "Spain"}, '{name = "Berlin", value = "Germany"}, '{name = "Rome", value = "Italy"}, '{name = "Moscow", value = "Russia"}, '{name = "Budapest", value = "Hungary"}) var pairs_array : @[pair][9] val () = array_initize_list (pairs_array, 9, pairs_list) val () = sort_pairs (pairs_array, i2sz 9) var i : [i : nat | i <= 9] int i in for (i := 0; i <> 9; i := succ i) println! (pairs_array[i].name, " -> ", pairs_array[i].value) end