// Core collections need no imports or mandatory type arguments.
let values = List(10, "hello", 1.5, true, null)
values.append("last")
print(values)
print(cast<Int64>(values.get(0)) + 5)
print(values.get_or(index: 99, default: "missing"))

let record = Dictionary()
record.set(key: "name", value: "Aner")
record.set(key: "count", value: values.len())
record.set(key: "optional", value: null)
print(record.get("name"))
print(record.contains("optional"))
print(record.get("optional"))
print(record.get_or(key: "unknown", default: "missing"))
print(record.keys())

// Integer 1, float 1.0, text "1", and true stay distinct.
let unique = Set(1, "1", 1.0, true, null, 1)
print(unique.len())
print(unique.to_list())
print(unique.union(Set("new", 1)).to_list())

// Sorting permits mixed numbers and preserves each stored type.
let numbers = List(3, 1.5, 1, -2.0)
numbers.sort()
print(numbers)
let words = List("pear", "apple", "banana")
words.sort()
print(words)
let flags = List(true, false, true)
flags.sort()
print(flags)
// List(1, "two").sort() would report R2901 before changing the List.
